* Move shared components to a packages/ directory
so they can be publish more sensibly
* Iterate towards split out shared-components module
* Move shared component source into src/ subdir
* Fix up imports
* Include shared components in babel-ing (again)
* Remove now unused dependencies
* Update import in storybook preview
* ...except of course they aren't unused
if we import the shared components by source
* Ignore shared components deps
* Add shared-components to i18n paths
and upgrade web-i18n to version that supports doing so
* Move storybook stuff to shared-components
* Seems we don't need this anymore...
* Remove unused deps
and remove storybook plugin from eslint
* Presumably working-directory is only valid on run steps
* Ignore dep & run prettier
* Prettier on knips.ts
* Hopefully run in right dir
* Remember how to software write
* Okay... how about THIS way?
* Oh right, they were git ignored. Sigh.
* Add concurrently
* Ignore in knip
* Better?
* Paaaaaaaackageeeeeeees
* More packages
* Move playwright snapshots
* Still need a custom snapshots dir
* Add eslint back
* Oh, now knip sees them
* Fix another import
* Don't lint shared-components with everything else
Okay, eslint & tsconfig are tied too closely for this to work and
running tsc on the shared components will need its deps installing
* Maybe lint shared components
please?
* Not quite
* Remove storybook again
Re-check if it does work without it
* Remove storybook eslint plugin
as we're not linting storybook here anymore
* Remove this too
* We do need it here though
* Simple refactor for skipLobby (and remove returnToLobby)
* Tidyup
* Remove unused tests
* Add video room support.
* Add a test for video rooms
* tidy
* Document
* refactor: move `humanize` in shared components
* feat: add `RichItem` component
* feat: add `RichList` component
* refactor: use `RichList` and `RichItem` in `InviteDialog`
* fix: exclude `InviteDialog` button to css override
* test: update selector in invite dialog
* test(e2e): update crypto test to use correct selector
* test(e2e): update invite dialog
* test: add test for `humanize.ts`
* fix: add space between the list and the input when the list is scrollable
* test(e2e): update screenshots
* Add commercial licence and update config files
* Update license in headers
* Revert "Update license in headers"
This reverts commit 7ed7949485.
* Update only spdx id
* Remove LicenseRef- from package.json
LicenseRef- no longer allowed in npm v3 package.json
This fixes the warning in the logs and failing build check.
* Use Compound close icon in favour of mishmash of x/close icons
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove stale CSS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Refactor ElementCall to use the widget lobby.
- expose skip lobby
- use the widget.data to build the widget url
Signed-off-by: Timo K <toger5@hotmail.de>
* Use shiftKey click to skip the lobby
Signed-off-by: Timo K <toger5@hotmail.de>
* remove Lobby component
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests + remove EW lobby related tests
Signed-off-by: Timo K <toger5@hotmail.de>
* remove lobby device button tests
Signed-off-by: Timo K <toger5@hotmail.de>
* i18n
Signed-off-by: Timo K <toger5@hotmail.de>
* use voip participant label
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix rounded corners in pip
Signed-off-by: Timo K <toger5@hotmail.de>
* allow joining call in legacy room header (without banner)
Signed-off-by: Timo K <toger5@hotmail.de>
* Introduce new connection states for calls.
And use them for integrated lobby.
Signed-off-by: Timo K <toger5@hotmail.de>
* New room header call join
Fix broken top container element call.
Signed-off-by: Timo K <toger5@hotmail.de>
* i18n
Signed-off-by: Timo K <toger5@hotmail.de>
* Fix closing element call in lobby view.
(should destroy call if there the user never managed to connect (not clicked join in lobby)
Signed-off-by: Timo K <toger5@hotmail.de>
* all cases for connection state
Signed-off-by: Timo K <toger5@hotmail.de>
* add correct LiveContentSummary labels
Signed-off-by: Timo K <toger5@hotmail.de>
* Theme widget loading (no rounded corner)
destroy call when switching room while a call is loading.
Signed-off-by: Timo K <toger5@hotmail.de>
* temp
Signed-off-by: Timo K <toger5@hotmail.de>
* usei view room dispatcher instead of emitter
Signed-off-by: Timo K <toger5@hotmail.de>
* tidy up
Signed-off-by: Timo K <toger5@hotmail.de>
* returnToLobby + remove StartCallView
Signed-off-by: Timo K <toger5@hotmail.de>
* comment cleanup
Signed-off-by: Timo K <toger5@hotmail.de>
* disconnect ongoing calls before making widget sticky.
Signed-off-by: Timo K <toger5@hotmail.de>
* linter + jitsi as videoChannel
Signed-off-by: Timo K <toger5@hotmail.de>
* stickyPromise type
Signed-off-by: Timo K <toger5@hotmail.de>
* fix legacy call (jistsi, cisco, bbb) reopen
when clicking call button
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests and connect resolves
Signed-off-by: Timo K <toger5@hotmail.de>
* fix "waits for messaging when connecting" test
Signed-off-by: Timo K <toger5@hotmail.de>
* Allow to skip awaiting Call session events.
This option is used in tests to spare mocking the
events emitted when EC updates the room state
Signed-off-by: Timo K <toger5@hotmail.de>
* add sticky test
Signed-off-by: Timo K <toger5@hotmail.de>
* add test for looby tile rendering
Signed-off-by: Timo K <toger5@hotmail.de>
* fix flaky test
Signed-off-by: Timo K <toger5@hotmail.de>
* add reconnect after disconnect test (video room)
Signed-off-by: Timo K <toger5@hotmail.de>
* add shift click test to call toast
Signed-off-by: Timo K <toger5@hotmail.de>
* test for allowVoipWithNoMedia in widget url
Signed-off-by: Timo K <toger5@hotmail.de>
* fix e2e tests to search for the right element
Signed-off-by: Timo K <toger5@hotmail.de>
* destroy call after test so next test does not fail
Signed-off-by: Timo K <toger5@hotmail.de>
* new call test (connection failed)
Signed-off-by: Timo K <toger5@hotmail.de>
* reset to real timers
Signed-off-by: Timo K <toger5@hotmail.de>
* dont use skipSessionAwait for tests
Signed-off-by: Timo K <toger5@hotmail.de>
* code quality (sonar)
Signed-off-by: Timo K <toger5@hotmail.de>
* refactor call.disconnect tests (dont use skipSessionAwait)
Signed-off-by: Timo K <toger5@hotmail.de>
* miscellaneous cleanup
Signed-off-by: Timo K <toger5@hotmail.de>
* only send call notify after the call has been joined (not when just opening the lobby)
Signed-off-by: Timo K <toger5@hotmail.de>
* update call notify tests to expect notify on connect.
Not on widget creation.
Signed-off-by: Timo K <toger5@hotmail.de>
* Update playwright/e2e/room/room-header.spec.ts
Co-authored-by: Robin <robin@robin.town>
* Update src/components/views/voip/CallView.tsx
Co-authored-by: Robin <robin@robin.town>
* review
rename connect -> start
isVideoRoom not dependant on feature flags
rename allOtherCallsDisconnected -> disconnectAllOtherCalls
Signed-off-by: Timo K <toger5@hotmail.de>
* check for EC widget
Signed-off-by: Timo K <toger5@hotmail.de>
* dep array
Signed-off-by: Timo K <toger5@hotmail.de>
* rename in spyOn
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Robin <robin@robin.town>
* Migrate the majority of TooltipTarget consumers to Compound Tooltip
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix CSS stacking contexts for Dialogs & PersistedElement
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch to PersistedElement sharing a CSS stacking context for z-index to continue functioning
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix Widget PIP overlay being under the widget and dragging being broken
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix border-radius on widget pip
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix majority of tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix jest retryTimes applying outside of CI
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix remaining tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix React unique key warnings
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix sticker picker
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* id not class
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix widget pip button colour in light theme
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* initial
Signed-off-by: Timo K <toger5@hotmail.de>
* cleanup1
Signed-off-by: Timo K <toger5@hotmail.de>
* bring back call timer
Signed-off-by: Timo K <toger5@hotmail.de>
* more cleanup and test removals
Signed-off-by: Timo K <toger5@hotmail.de>
* remove event
Signed-off-by: Timo K <toger5@hotmail.de>
* cleanups and minor fixes
Signed-off-by: Timo K <toger5@hotmail.de>
* add matrixRTC to stubClient
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests (some got removed)
The removal is a consequence of EW now doing less call logic.
More logic is done by the js sdk (MatrixRTCSession)
And therefore in EC itself.
Signed-off-by: Timo K <toger5@hotmail.de>
* cleanups
Signed-off-by: Timo K <toger5@hotmail.de>
* mock the session
Signed-off-by: Timo K <toger5@hotmail.de>
* lint
Signed-off-by: Timo K <toger5@hotmail.de>
* remove GroupCallDuration
Signed-off-by: Timo K <toger5@hotmail.de>
* review and fixing tests
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Move avatar to new compound implementation
* Make space avatars square
* Remove reference to the avatar initial CSS class
* remove references to mx_BaseAvatar_image
* Fixe test suites
* Fix accessbility violations
* Add ConfirmUserActionDialog test
* Fix tests
* Add FacePile test
* Fix items clipping in members list
* Fix user info avatar sizing
* Fix tests
* Switch to importing TypedEventEmitter from main js-sdk export
* Switch to importing js-sdk/matrix in cypress
* Remove duplicated imports
* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess
* Add lint rule
* Switch to importing models/Room from main js-sdk export
* Fix cypress-axe import
* Fix more imports
* Fix cypress-axe import
* Fix duplicated lint rule
* Integrate compound design tokens
The icons should not be included in this repo, and should live in the compound design token repo, but for simplicity sake at this phase of the integration they will be added here
* Delete unused or incorrect - sass variables
* Typography pass
* Deprecate _font-weights.pcss and use Compound instead
* lint fix
* Fix snapshot
* Fix typography pass feedback
* Remove unwanted e2e test
cypress tests should test functionality not visual output. And we should not test visual output by inspecting CSS properties
* lintfix
* Migration script for baseFontSize
* Updates after design review
* Update font scaling panel to use min/max size
* Fix custom font
* Fix font slider e2e test
* Update custom font
* Update new baseFontSizeV2
* Disambiguate heading props
* Fix appearance test
* change max font size
* fix e2ee test
* fix tests
* test baseFontSize migration code
* typescript strict
* Migrate baseFontSize account setting
* Change assertion for font size
* Fix font size controller test
* Use native js-sdk group call support
Now that the js-sdk supports group calls natively, our group call implementation can be simplified a bit. Switching to the js-sdk implementation also brings the react-sdk up to date with recent MSC3401 changes, and adds support for joining calls from multiple devices. (So, the previous logic which sent to-device messages to prevent multi-device sessions is no longer necessary.)
* Fix strings
* Fix strict type errors
* Add Stores and StoresContext and use it in MatrixChat and RoomView
Added a new kind of class:
- Add God object `Stores` which will hold refs to all known stores and the `MatrixClient`. This object is NOT a singleton.
- Add `StoresContext` to hold onto a ref of `Stores` for use inside components.
`StoresContext` is created via:
- Create `Stores` in `MatrixChat`, assigning the `MatrixClient` when we have one set. Currently sets the RVS to `RoomViewStore.instance`.
- Wrap `MatrixChat`s `render()` function in a `StoresContext.Provider` so it can be used anywhere.
`StoresContext` is currently only used in `RoomView` via the following changes:
- Remove the HOC, which redundantly set `mxClient` as a prop. We don't need this as `RoomView` was using the client from `this.context`.
- Change the type of context accepted from `MatrixClientContext` to `StoresContext`.
- Modify alllll the places where `this.context` is used to interact with the client and suffix `.client`.
- Modify places where we use `RoomViewStore.instance` and replace them with `this.context.roomViewStore`.
This makes `RoomView` use a non-global instance of RVS.
* Linting
* SDKContext and make client an optional constructor arg
* Move SDKContext to /src/contexts
* Inject all RVS deps
* Linting
* Remove reset calls; deep copy the INITIAL_STATE to avoid test pollution
* DI singletons used in RoomView; DI them in RoomView-test too
* Initial RoomViewStore.instance after all files are imported to avoid cyclical deps
* Lazily init stores to allow for circular dependencies
Rather than stores accepting a list of other stores in their constructors,
which doesn't work when A needs B and B needs A, make new-style stores simply
accept Stores. When a store needs another store, they access it via `Stores`
which then lazily constructs that store if it needs it. This breaks the
circular dependency at constructor time, without needing to introduce
wiring diagrams or any complex DI framework.
* Delete RoomViewStore.instance
Replaced with Stores.instance.roomViewStore
* Linting
* Move OverridableStores to test/TestStores
* Rejig how eager stores get made; don't automatically do it else tests break
* Linting
* Linting and review comments
* Fix new code to use Stores.instance
* s/Stores/SdkContextClass/g
* Update docs
* Remove unused imports
* Update src/stores/RoomViewStore.tsx
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove empty c'tor to make sonar happy
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* extract preventDefaultWrapper into utils
* add click handling to beacon list item
* add click handling to dialog sidebar
* focus in on beacons when clicked in list
* stylelint
* fussy import ordering
* test beacon focusing in beaocnviewdialog
* live location without map POC
* styles
* force map tiles to show no map for test build
* check latestlocationstate exists
* just use loading style map fallback when cant display map
* style map error for tile view
* set pointer cursor when map error is clickable
* test mbeaconbody with map display error, lint
* lint more good
* remove changes for first attempt tile
* make maperror test id more accurate
* fussy import ordering
* PR tweaks
* navigate to live location tile from left panel live warning
Signed-off-by: Kerry Archibald <kerrya@element.io>
* navigate to beacon tile from room live share warning
Signed-off-by: Kerry Archibald <kerrya@element.io>
* add cursor
Signed-off-by: Kerry Archibald <kerrya@element.io>
* test most basic paths in messageactionbar
Signed-off-by: Kerry Archibald <kerrya@element.io>
* tidy
Signed-off-by: Kerry Archibald <kerrya@element.io>
* use rtl for MessageActionBar test
Signed-off-by: Kerry Archibald <kerrya@element.io>
* make beacon_info events semi actionable
Signed-off-by: Kerry Archibald <kerrya@element.io>
* remove log
Signed-off-by: Kerry Archibald <kerrya@element.io>
* test thread exception for beacon
Signed-off-by: Kerry Archibald <kerrya@element.io>
* eat click events in beacon status to stop jumping from reply tile
Signed-off-by: Kerry Archibald <kerrya@element.io>
* set max width on beaconbody for render in thread panel