* Add method to await space store setup
Otherwise, the room list store will get incorrect information about
spaces and thus will produce an incorrect roomlist.
* Implement a way to filter by active space
Implement a way to filter by active space
* Fix broken jest tests
* Fix typo
* Rename `isReady` to `storeReadyPromise`
* Fix mock in test
* Remove redundant `UserIdentityWarning` test
Since the refactoring in https://github.com/element-hq/element-web/pull/29067,
this test is redundant.
It is also flaky and hard to understand. Time for it to die.
* delint
* Update the store on action
* Add more tests
* Add newlines between case blocks
* Make code more readable
- Make if/else more consistent
- Add comment on findAndAddRoom()
* Add more tests
* Remove redundant code
On a timeline action, we return early if payload.room is falsy.
So then why do we need to retry fetching the room?
I think this can be removed but will ask others if there's some
conext I'm missing.
* Fix test
* Remove more redundant code
* Add more tests
* Explain intention in comment
* Emit only once even when adding multiple rooms
* Add missing tsdoc
* Implement enough of the new store to get a list of rooms
* Make it possible to swap sorting algorithm
* Don't attach to window object
We don't want the store to be created if the labs flag is off
* Remove the store class
Probably best to include this PR with the minimal vm implmentation
* Create a new room list store that wraps around the skip list
* Create a minimal view model
* Fix CI
* Add some basic tests for the store
* Write more tests
* Add some jsdoc comments
* Add more documentation
* Add more docs
* Enable @babel/plugin-proposal-decorators
Only needed because we consume js-sdk code directly so its own transpiling isn't in play
This should separately be fixed, we should not need to have a superset of js-sdk's babel plugins
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* fix: /tmp/element-web-config may already exist preventing the container from booting up
* Update docker/docker-entrypoint.d/18-load-element-modules.sh
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
(cherry picked from commit 45497905be)
Co-authored-by: Itay Grudev <itay+github.com@grudev.com>
* fix: /tmp/element-web-config may already exist preventing the container from booting up
* Update docker/docker-entrypoint.d/18-load-element-modules.sh
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* feat(new room list): add space menu in view model
* test(new room list): add space menu in view model
* feat(new room list): add space menu in room list header
* chore: update i18n
* test(new room list): add tests for space menu
* test(new room list): update room list tests
* test(e2e): add tests for space menu
* Implement a skip list for storing rooms
This data structure stores rooms in a given sorted order and allows for
very fast insertions and deletions.
* Export function to get last timestamp of room
* Write tests for the skip list
* Implement enough of the new store to get a list of rooms
* Make it possible to swap sorting algorithm
* Fix comment
* Don't attach to window object
We don't want the store to be created if the labs flag is off
* Remove the store class
Probably best to include this PR with the minimal vm implmentation
* DeviceListener: improve logging
use a LogSpan to tie together logs from the same run, and add some more logs
for various cases
* Regression playwright test
* Remove unused mocking of `getCrossSigningId`
DeviceListener no longer reads this thing
* Clean up unit tests
Remove redundant describe block
* Remove the "out of sync" toast when we are no longer out of sync
Receiving the crypto secrets via secret sharing should make the toast go away.
* Dynamically load Element Web modules in Docker entrypoint
* Iterate
* Drop environment for PR runs
* Iterate
---------
(cherry picked from commit 8ef84349b5)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* chore: update `@vector-im/compound-design-tokens` & `@vector-im/compound-web` to last version
* chore: use `error-solid` icon instead of `error`
* chore: update jest snapshot
* fix: `AccessibleButton` lint
* Dynamically load Element Web modules in Docker entrypoint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Drop environment for PR runs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* feat(new room list): add compose menu in header for spaces
* test(new room list): add tests for space
* test(e2e new room list): update space test
* chore: formatting and reuse type var
* Use EditInPlace for identity server picker.
* Exclude picker from default dialog button styles.
* Remove unused import.
* Update test
* Remove unused css
* Update test
* drop only
* Add a test for setting an ID server.
* Add a unit test for SetIdServer
* fix tests
* Reformat mx_Dialog button :not list to use a more readable selector.
* Reformat other :not sections
* forgot a comma
* We're in 2025 now.
* Update copyright + use class methods.
* feat: create new header
* test: add tests to view model
* test: add tests to view
* feat: add header to new room list
* test(e2e): update RoomListView snapshot
* test(e2e): add tests for room list header
* refactor: minor code improvement
* Move CSS for ResetIdentityPanel into EncryptionCard
This allows it to be re-used in other components. It's a *bit* magic
that EncryptionCard applies style to divs within it, although it
somewhat makes sense that it wants them styled a particular way.
The alternative would be to add another component for a div child of
encryption card like EncryptionCardButtons that just makes it flexbox
and centered: I'm not sure which is better.
* Update snapshot
* Update snapshot
* Do it the other way
Because we only want it in the destructive cards, not the other ones.
* Use flex component
* Also use gap prop and update snapshots
* Fix justification
* Snaspshots again
* Set align-items to normal
As center affected the list items too. Also add it to the flex
component because it didn't have it as an option.