Robin
942e28f3c2
Improve the layouts on small mobile calls
...
Due to an oversight of mine, 2440037639 actually removed the ability to see the one-on-one layout on mobile. This restores mobile one-on-one calls to working order and also avoids showing the spotlight tile unless there are more than a few participants.
2024-08-01 13:49:49 -04:00
Robin
0bfec65405
Refactor layout selection into smaller chunks
2024-08-01 13:49:49 -04:00
Robin and GitHub
f89342713a
Merge pull request #2528 from robintown/remote-spotlight
...
More strongly prefer putting a remote speaker in the spotlight
2024-08-01 13:24:57 -04:00
Robin
5a0b81b57f
More strongly prefer putting a remote speaker in the spotlight
...
If no one had spoken yet, we were still showing the local user in the spotlight. We should instead eagerly switch to showing an arbitrary remote participant in this case.
2024-08-01 12:48:47 -04:00
Robin and GitHub
2b67a9cfbe
Merge pull request #2486 from robintown/delete-fullscreen
...
Delete the unused full screen code
2024-07-29 09:28:07 -04:00
Robin and GitHub
a3ce333352
Only show the expand button in spotlight layout ( #2510 )
...
It has no effect in any layout other than spotlight, and we've decided to hide it rather than spending effort to make it do something.
2024-07-26 12:57:49 +02:00
Robin and GitHub
d5faa5ea90
Don't show the speaker in the spotlight in large grids ( #2511 )
...
We've concluded that this behavior is actually more distracting than it is helpful, and we want to try out what it's like to just have the importance ordering and visual cues help you find who's speaking.
2024-07-26 12:51:34 +02:00
Robin and GitHub
5becd2e175
Fix a crash when using the duplicate tiles option ( #2512 )
2024-07-26 12:51:09 +02:00
Robin and GitHub
3b38a5322c
Give tiles a minimum area rather than a minimum width and height ( #2513 )
...
This seems to result in more sensible cropping and allocation of space across the board, in my testing.
2024-07-26 12:50:44 +02:00
Robin and GitHub
d062871f41
Don't consider microphone mute state in importance ordering ( #2515 )
...
We're finding that if we reorder participants based on whether their mic is muted, this just creates a lot of distracting layout shifts. People who speak are automatically promoted into the speaker category, so there's little value in additionally caring about mute state.
2024-07-26 11:27:22 +02:00
Robin and GitHub
2de4705fa7
Merge pull request #2509 from robintown/icon-imports
...
Import Compound icons in the new recommended way
2024-07-25 14:26:41 -04:00
Robin
12e233970c
Import Compound icons in the new recommended way
...
The Compound design tokens package is now set up to generate React components for every icon, so we no longer need to use our more error-prone method of importing the SVGs.
2024-07-25 13:15:45 -04:00
Robin and GitHub
10b915c707
Merge pull request #2501 from robintown/layout-reactivity
...
Make layout reactivity less brittle
2024-07-25 12:51:39 -04:00
Robin
5544695f21
Use clearer names
2024-07-25 12:50:28 -04:00
Robin and GitHub
63afda05bc
Merge pull request #2502 from robintown/shortcut-a11y
...
Improve accessibility of keyboard shortcuts
2024-07-25 08:24:13 -04:00
Robin
380f49fccc
Improve accessibility of keyboard shortcuts
...
Ensure that they don't interfere with say, using spacebar to press a button, and also ensure that they won't do surprising things like scroll the page at the same time.
2024-07-24 18:42:21 -04:00
Robin
447bac3280
Make layout reactivity less brittle
...
Follow-up to ea2d98179c
This took a couple of iterations to find something that works without creating update loops, but I think that by automatically informing Grid whenever a layout component is re-rendered, we'll have a much easier time ensuring that our layouts are fully reactive.
2024-07-24 17:03:27 -04:00
Robin and GitHub
c74cebcc4b
Merge pull request #2492 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2024-07-24 14:17:48 -04:00
Robin and GitHub
9cbd146e24
Merge pull request #2491 from element-hq/renovate/matrix-widget-api
...
Update dependency matrix-widget-api to v1.7.0
2024-07-24 11:14:46 -04:00
Robin
509bb4f1b0
Use LTS Node in CI
2024-07-24 11:12:36 -04:00
Robin
3be3a32f3d
Update TypeScript target to match matrix-js-sdk
...
And work around https://github.com/microsoft/TypeScript/issues/55132
2024-07-24 11:07:46 -04:00
Robin
17adfc5777
Upgrade matrix-js-sdk
2024-07-24 10:17:47 -04:00
Robin and GitHub
35e2d2c432
Merge pull request #2494 from robintown/spotlight-fix
...
Quick and dirty fix to spotlight reactivity
2024-07-22 10:55:20 -04:00
Robin
ea2d98179c
Quick and dirty fix to spotlight reactivity
2024-07-22 10:52:20 -04:00
Robin and GitHub
4173fd113b
Merge pull request #2485 from element-hq/new-call-layouts
...
New call layouts
2024-07-19 09:08:51 -04:00
Robin
364b78abda
Delete the unused full screen code
...
We no longer allow individual tiles to be put in full screen, because we're seeing what it's like to just stretch the spotlight tile edge-to-edge and keep the margins minimal.
2024-07-18 11:48:06 -04:00
Robin
507b1fc52d
Merge branch 'livekit' into new-call-layouts
2024-07-18 11:38:35 -04:00
Robin and GitHub
6812c35a40
Merge pull request #2463 from robintown/rest-of-the-layouts
...
Implement most of the remaining layout changes
2024-07-18 11:34:47 -04:00
Robin
377b7ff5de
Explain each layout
2024-07-18 11:33:20 -04:00
Robin
4955535374
Use more consistent names for layout types
2024-07-18 11:24:18 -04:00
Robin
0664f978e3
Merge branch 'new-call-layouts' into rest-of-the-layouts
2024-07-18 11:21:56 -04:00
Robin and GitHub
bcc06d86ff
Merge pull request #2417 from robintown/one-on-one-layout
...
New one-on-one layout
2024-07-18 11:09:11 -04:00
Robin
7526826b0c
Improve aspect ratios on mobile
2024-07-18 11:01:21 -04:00
Robin
b4e0df75c0
Merge branch 'new-call-layouts' into one-on-one-layout
2024-07-18 10:28:17 -04:00
Robin and GitHub
d561a41666
Merge pull request #2416 from robintown/grid-spotlight-speaker
...
Show speaker in the spotlight in large grids
2024-07-18 10:17:31 -04:00
Robin
e04affe93e
Justify the use of a participant count threshold
2024-07-18 10:00:26 -04:00
Robin and GitHub
24870deead
Merge pull request #2382 from robintown/spotlight-layout
...
New spotlight layout
2024-07-18 08:50:31 -04:00
Robin
7fcd7125c1
Merge branch 'new-call-layouts' into spotlight-layout
2024-07-18 08:48:50 -04:00
Robin
1efa594430
Use Array.some where it's appropriate
2024-07-17 16:06:48 -04:00
Robin and GitHub
caea4b250e
Merge pull request #2381 from robintown/observable-hooks
...
Replace react-rxjs with observable-hooks
2024-07-17 15:56:31 -04:00
Robin
0a8c6c1454
Merge branch 'new-call-layouts' into observable-hooks
2024-07-17 15:55:50 -04:00
Robin and GitHub
d4a2617f7b
Merge pull request #2380 from robintown/pin-always-show
...
Add toggle to always show yourself
2024-07-17 15:45:29 -04:00
Robin and GitHub
e05c6f1bdf
Merge pull request #2369 from robintown/duplicate-tiles
...
Add a developer option to duplicate tiles
2024-07-17 15:41:53 -04:00
Robin
2bc56dbff2
Use fewer ML-style variable names
2024-07-17 15:40:02 -04:00
Robin
a59875dab5
Explain what each sorting bin means
2024-07-17 15:37:41 -04:00
Robin
8c21e8f277
Use a more descriptive string
2024-07-17 14:55:45 -04:00
Robin and GitHub
d8634eed3d
Merge pull request #2484 from element-hq/renovate/react-i18next-15.x
...
Update dependency react-i18next to v15
2024-07-17 13:14:11 -04:00
Robin
2440037639
Implement most of the remaining layout changes
...
Includes the mobile UX optimizations and the tweaks we've made to cut down on wasted space, but does not yet include the change to embed the spotlight tile within the grid.
2024-07-12 15:50:17 -04:00
Robin
a16f235277
Fix crash in spotlight mode while connecting
...
Because we were hiding even the local participant during initial connection, there would be no participants, and therefore nothing to put in the spotlight. The designs don't really tell us what the connecting state should look like, so I've taken the liberty of restoring it to its former glory of showing the local participant immediately.
2024-07-12 15:49:45 -04:00
Robin
45c89a2298
Delete the legacy grid system
2024-07-12 15:49:43 -04:00
Robin
7979493371
Implement the new one-on-one layout
2024-07-12 15:47:56 -04:00
Robin
e0b10d89b5
Add model for one-on-one layout
2024-07-12 15:47:56 -04:00
Robin
183d2d9050
Show speaker in the spotlight in large grids
2024-07-12 15:47:35 -04:00
Robin
12b719da95
Make layout reactivity a little more fine-grained
2024-07-12 15:47:00 -04:00
Robin
dfda7539d6
Only switch to spotlight for remote screen shares
2024-07-12 15:47:00 -04:00
Robin
7f40ce8dde
Fix advance buttons showing up for the spotlight speaker
2024-07-12 15:47:00 -04:00
Robin
ec1b020d4e
Add indicators to spotlight tile and make spotlight layout responsive
2024-07-12 15:47:00 -04:00
Robin
54c22f4ab2
Clean up spotlight tile code
2024-07-12 15:47:00 -04:00
Robin
ffbbc74a96
Implement the new spotlight layout
2024-07-12 15:47:00 -04:00
Robin
34c45cb5e2
Get the right grid offset even when offsetParent is a layout element
2024-07-12 15:47:00 -04:00
Robin
af0bd795b5
Replace react-rxjs with observable-hooks
...
react-rxjs is the library we've been using to connect our React components to view models and consume observables. However, after spending some time with react-rxjs, I feel that it's a very heavy-handed solution. It requires us to sprinkle <Subscribe /> and <RemoveSubscribe /> components all throughout the code, and makes React go through an extra render cycle whenever we mount a component that binds to a view model. What I really want is a lightweight React hook that just gets the current value out of a plain observable, without any extra setup. Luckily the observable-hooks library with its useObservableEagerState hook seems to do just that—and it's more actively maintained, too!
2024-07-12 15:46:33 -04:00
Robin
0d485ef97f
Use always show flag in importance ordering
2024-07-12 15:43:24 -04:00
Robin
5647619b36
Add always show toggle to the UI
2024-07-12 15:43:24 -04:00
Robin
8a414012a0
Add always show flag to view model
2024-07-12 15:43:24 -04:00
Robin
e33fbd77d1
Split local and remote user media into different classes
2024-07-12 15:43:24 -04:00
Robin
fdc6d4a1b6
Add a developer option to duplicate tiles
...
This is useful for testing how the UI behaves with different numbers of participants.
2024-07-12 14:55:29 -04:00
Robin and GitHub
a534356dd9
Merge pull request #2368 from robintown/settings-refactor
...
Refactor settings to use observables
2024-07-12 14:50:46 -04:00
Robin and GitHub
f847692953
Merge pull request #2325 from robintown/unified-grid
...
Unified grid layout
2024-07-12 14:50:35 -04:00
Robin and GitHub
486430d1f0
Merge pull request #2478 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-design-tokens to v1.6.0
2024-07-12 14:19:29 -04:00
Robin
599d6fd007
Address review feedback
2024-07-12 14:15:27 -04:00
Robin
14fc1481f3
Address some review feedback
2024-07-12 14:01:32 -04:00
Robin and GitHub
82a56c8204
Merge pull request #2471 from element-hq/renovate/major-vitest-monorepo
...
Update dependency vitest to v2
2024-07-09 10:42:23 -04:00
Robin
41083c0f9e
Refactor settings to use observables
...
Also removing some unused settings along the way.
2024-07-03 15:29:32 -04:00
Robin
20602c122b
Implement the new unified grid layout
...
Here I've implemented an MVP for the new unified grid layout, which scales smoothly up to arbitrarily many participants. It doesn't yet have a special 1:1 layout, so in spotlight mode and 1:1s, we will still fall back to the legacy grid systems.
Things that happened along the way:
- The part of VideoTile that is common to both spotlight and grid tiles, I refactored into MediaView
- VideoTile renamed to GridTile
- Added SpotlightTile for the new, glassy spotlight designs
- NewVideoGrid renamed to Grid, and refactored to be even more generic
- I extracted the media name logic into a custom React hook
- Deleted the BigGrid experiment
2024-07-03 15:29:08 -04:00
Robin and GitHub
5ad2a27a92
Merge pull request #2462 from element-hq/renovate/github-actions
...
Update docker/build-push-action action to v6.3.0
2024-07-03 15:25:13 -04:00
Robin and GitHub
8a6101cd14
Merge pull request #2456 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2024-06-24 10:37:18 -04:00
Robin
4db7c2bc68
Fix type errors
2024-06-24 10:31:50 -04:00
Robin and GitHub
0c39398493
Merge pull request #2447 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-design-tokens to v1.3.0
2024-06-21 10:39:03 -04:00
Robin and GitHub
949145f04b
Merge pull request #2446 from element-hq/renovate/major-testing-library-monorepo
...
Update dependency @testing-library/react to v16
2024-06-21 10:32:30 -04:00
Robin
8578dcadf2
Add missing peer dependencies
2024-06-21 10:30:39 -04:00
Robin and GitHub
a031c0e128
Merge pull request #2445 from element-hq/renovate/major-sentry-javascript-monorepo
...
Update dependency @sentry/react to v8
2024-06-21 10:25:04 -04:00
Robin
591833505f
Adapt to breaking changes
2024-06-21 10:23:30 -04:00
Robin and GitHub
f7ad5074d8
Merge pull request #2452 from element-hq/renovate/i18next-parser-9.x
...
Update dependency i18next-parser to v9
2024-06-21 10:14:39 -04:00
Robin and GitHub
e0aef74bf5
Merge pull request #2454 from element-hq/renovate/uuid-10.x
...
Update dependency uuid to v10
2024-06-21 10:13:01 -04:00
Robin and GitHub
255f6b1814
Merge pull request #2451 from element-hq/renovate/i18next-browser-languagedetector-8.x
...
Update dependency i18next-browser-languagedetector to v8
2024-06-21 10:11:59 -04:00
Robin and GitHub
4c491b5363
Merge pull request #2450 from element-hq/renovate/eslint-plugin-unicorn-54.x
...
Update dependency eslint-plugin-unicorn to v54
2024-06-21 10:11:23 -04:00
Robin and GitHub
61c808d4cf
Merge pull request #2455 from element-hq/renovate/github-actions
...
Pin dependencies
2024-06-21 10:00:40 -04:00
Robin
13ef3183e2
Tell Renovate that we're trying to pin actions to specific tags
...
It thought that we were just trying to follow the latest commit on these actions, when in reality we want to follow the latest tag and pin its commit hash.
2024-06-21 09:57:48 -04:00
Robin and GitHub
982181ccd4
Merge pull request #2444 from robintown/more-renovate
...
Refine Renovate config further
2024-06-21 09:10:16 -04:00
Robin
c46549b2b6
Refine Renovate config further
...
By getting it to pin GitHub Actions to specific commits, which hardens our workflows, and fixing a warning about matchPackageNames
2024-06-20 16:00:52 -04:00
Robin and GitHub
8fa038c61f
Merge pull request #2441 from robintown/renovate-noise
...
Reduce noise coming from Renovate updates
2024-06-20 15:44:38 -04:00
Robin
869d9b43cb
Reduce noise coming from Renovate updates
...
What I've tried to do here is to group most dependency updates together and put them on a weekly schedule. Some of our more sensitive dependencies such as LiveKit and Compound have been put into separate groups, so we still receive frequent updates for them.
2024-06-20 15:43:21 -04:00
Robin and GitHub
974a2fe49b
Merge pull request #2438 from element-hq/dependabot/npm_and_yarn/ws-8.17.1
...
Bump ws from 8.16.0 to 8.17.1
2024-06-20 11:00:16 -04:00
Robin and GitHub
207a5f047c
Merge pull request #2430 from robintown/update-js-sdk
...
Update matrix-js-sdk
2024-06-20 10:54:27 -04:00
Robin
d3c63f9314
Update matrix-js-sdk
...
To pull in https://github.com/matrix-org/matrix-js-sdk/pull/4252
2024-06-20 10:52:06 -04:00
Robin and GitHub
f9ef037cea
Merge pull request #2435 from element-hq/hughns/visibilitychange
...
Use correct DOM event name for visibility changes in useWakeLock
2024-06-20 10:19:05 -04:00
Robin and GitHub
53d1f717c9
Merge pull request #2406 from element-hq/renovate/testing-library-monorepo
...
Update dependency @testing-library/react to v14.3.1
2024-06-04 12:11:35 -04:00
Robin and GitHub
0a69664186
Merge pull request #2405 from element-hq/renovate/sentry-vite-plugin-2.x-lockfile
...
Update dependency @sentry/vite-plugin to v2.18.0
2024-06-04 12:10:26 -04:00
Robin and GitHub
51a8d2b718
Merge pull request #2404 from element-hq/renovate/opentelemetry-instrumentation-user-interaction-0.x
...
Update dependency @opentelemetry/instrumentation-user-interaction to ^0.38.0
2024-06-04 12:00:35 -04:00
Robin and GitHub
2d76a3780d
Merge pull request #2402 from element-hq/renovate/vite-5.x-lockfile
...
Update dependency vite to v5.2.12
2024-06-04 11:59:30 -04:00