element-call-Github/src
Robin 169ccd9de5 Start refactoring some business logic into view models
As Element Call grows in complexity, it has become a pain point that our business logic remains so tightly coupled to the UI code. In particular, this has made testing difficult, and the complex semantics of React hooks are not a great match for arbitrary business logic. Here, I show the beginnings of what it would look like for us to adopt the MVVM pattern. I've created a CallViewModel and TileViewModel that expose their state to the UI as rxjs Observables, as well as a couple of helper functions for consuming view models in React code.

This should contain no user-visible changes, but we need to watch out for regressions particularly around focus switching and promotion of speakers, because this was the logic I chose to refactor first.
2023-12-01 17:09:21 -05:00
..
@types Specify keySeparator 2023-11-20 13:47:36 +00:00
analytics ``` 2023-11-20 13:20:19 +00:00
auth I18n'ise hardcoded strings 2023-11-22 20:07:30 +00:00
button prettier the world 2023-11-20 13:38:01 +00:00
config Format code 2023-10-11 10:42:04 -04:00
e2ee Update comment 2023-11-21 09:59:07 +00:00
form Format code 2023-10-11 10:42:04 -04:00
graphics Add background gradient 2023-09-13 17:53:12 +02:00
home Merge pull request #1902 from vector-im/dbkr/hide_rooms_no_key 2023-11-21 15:26:45 +00:00
icons Start refactoring some business logic into view models 2023-12-01 17:09:21 -05:00
input ``` 2023-11-20 13:20:19 +00:00
livekit Start refactoring some business logic into view models 2023-12-01 17:09:21 -05:00
otel Format code 2023-10-11 10:42:04 -04:00
popover Format code 2023-10-11 10:42:04 -04:00
profile Format code 2023-10-11 10:42:04 -04:00
room Start refactoring some business logic into view models 2023-12-01 17:09:21 -05:00
settings Fix submit label (#1951) 2023-11-30 17:31:12 +01:00
sound Remove the unused exports with help of ts-prune 2023-06-05 19:11:38 +02:00
state Start refactoring some business logic into view models 2023-12-01 17:09:21 -05:00
tabs Format code 2023-10-11 10:42:04 -04:00
typography Format code 2023-10-11 10:42:04 -04:00
video-grid Start refactoring some business logic into view models 2023-12-01 17:09:21 -05:00
App.tsx Merge branch 'livekit' into eslint-upgrade 2023-10-11 10:30:57 -04:00
array-utils.ts Format code 2023-10-11 10:42:04 -04:00
Avatar.tsx Format code 2023-10-11 10:42:04 -04:00
Banner.module.css Adopt the Compound color system 2023-08-28 17:14:40 -04:00
Banner.tsx Upgrade eslint-plugin-matrix-org to 1.2.1 2023-09-22 18:07:06 -04:00
ClientContext.tsx ``` 2023-11-20 13:20:19 +00:00
DisconnectedBanner.module.css Adopt the Compound color system 2023-08-28 17:14:40 -04:00
DisconnectedBanner.tsx ``` 2023-11-20 13:20:19 +00:00
FullScreenView.module.css Fix copyright pt. 2: CSS files 2023-01-03 16:58:38 +00:00
FullScreenView.tsx I18n'ise hardcoded strings 2023-11-22 20:07:30 +00:00
Header.module.css Replace the avatar stack in the header with an icon 2023-09-27 18:12:04 -04:00
Header.tsx ``` 2023-11-20 13:20:19 +00:00
index.css Format code 2023-10-11 10:42:04 -04:00
IndexedDBWorker.ts Fix copyright headers 2023-01-03 16:55:26 +00:00
initializer.tsx Specify keySeparator 2023-11-20 13:47:36 +00:00
LazyEventEmitter.ts Format code 2023-10-11 10:42:04 -04:00
ListBox.module.css Adopt the Compound color system 2023-08-28 17:14:40 -04:00
ListBox.tsx Format code 2023-10-11 10:42:04 -04:00
main.tsx Format code 2023-10-11 10:42:04 -04:00
matrix-utils.ts Hide rooms we don't have the key for in recents list 2023-11-16 16:32:25 +00:00
media-utils.ts Format code 2023-10-11 10:42:04 -04:00
Menu.module.css Adopt the Compound color system 2023-08-28 17:14:40 -04:00
Menu.tsx Format code 2023-10-11 10:42:04 -04:00
Modal.module.css Implement the new invite modal designs 2023-09-27 17:45:18 -04:00
Modal.tsx Migrate action, common, a11y translation keys 2023-11-20 12:18:43 +00:00
olm.ts
Overlay.module.css Implement the new invite modal designs 2023-09-27 17:45:18 -04:00
Platform.ts Use native system fonts on Android and iOS 2023-09-17 12:56:13 -04:00
rtcSessionHelpers.ts Refactor livekit disconnect to use an effect hook. (#1925) 2023-11-28 19:07:08 +01:00
Toast.module.css Implement the new invite modal designs 2023-09-27 17:45:18 -04:00
Toast.tsx Format code 2023-10-11 10:42:04 -04:00
Tooltip.module.css Adopt the Compound color system 2023-08-28 17:14:40 -04:00
Tooltip.tsx Format code 2023-10-11 10:42:04 -04:00
TranslatedError.ts Fix types 2023-11-30 23:47:26 -05:00
UrlParams.ts Hide rooms we don't have the key for in recents list 2023-11-16 16:32:25 +00:00
useCallViewKeyboardShortcuts.ts Format code 2023-10-11 10:42:04 -04:00
useEvents.ts Format code 2023-10-11 10:42:04 -04:00
useLocalStorage.ts Format code 2023-10-11 10:42:04 -04:00
useLocationNavigation.ts Enable strict lints 2023-07-11 16:02:58 +01:00
useMatrixRTCSessionJoinState.ts Format code 2023-10-11 10:42:04 -04:00
useMatrixRTCSessionMemberships.ts Format code 2023-10-11 10:42:04 -04:00
useMediaQuery.ts Format code 2023-10-11 10:42:04 -04:00
useMergedRefs.ts Format code 2023-10-11 10:42:04 -04:00
usePageTitle.ts Don't touch the product name option for now 2022-12-20 17:30:47 +00:00
usePrefersReducedMotion.ts Upgrade eslint-plugin-matrix-org to 1.2.1 2023-09-22 18:07:06 -04:00
usePrevious.ts Start refactoring some business logic into view models 2023-12-01 17:09:21 -05:00
useReactiveState.ts Format code 2023-10-11 10:42:04 -04:00
UserMenu.module.css Switch to Avatar from Compound 2023-09-06 08:04:51 +02:00
UserMenu.tsx Fix the settings label (#1936) 2023-11-29 19:01:45 +01:00
UserMenuContainer.tsx Format code 2023-10-11 10:42:04 -04:00
useWakeLock.ts Upgrade eslint-plugin-matrix-org to 1.2.1 2023-09-22 18:07:06 -04:00
widget.ts Merge pull request #1772 from vector-im/dbkr/ppe2ee 2023-10-31 20:08:05 +00:00