* fix: fixed 'Database unexpectedly closed' is a bad error message (#25948)
* Added deviceType condition check for web and desktop
* Added Error description for web and desktop
* Changed 'error_database_closed_title' Title to '%(brand)s stopped working'
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
* refactor(platform): replace UA parsing with Platform for platform detection
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
* refactor(platform-test): added getHumanReadableName function in testcase
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
* refactor(platform): added %brand argument for description
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
* refactor by linter
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
* refactor(linter): used prettier for linter
* Enable `A thread with a redacted unread is still read after restart` (#12083)
* [create-pull-request] automated change (#12085)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
* Allow element-web hash to be specified when calling playwright tests workflow (#12087)
* add link to issue for disabled test
* [create-pull-request] automated change (#12093)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
* Add tests about room list order (#12088)
---------
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: ElementRobot <releases@riot.im>
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
The loading test, which mocks a `/versions` response, currently mocks the
response of a 2-year-old server. This will soon be incompatible with the
JS-SDK. Update the test in preparation.
* Switch Pill to using Compound Tooltips
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch E2EIcon to using Compound Tooltips
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update tests & snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate landmarks around the app in order to improve a11y
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add missing aria-label
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update screenshots which have changed a fraction due to default heading margins being different in different landmarks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Migrate InfoTooltip to use Compound Tooltip
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Migrate DecoratedRoomAvatar.tsx to Compound tooltips
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Small type tweaks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove unused props
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Migrate TextWithTooltip.tsx to Compound tooltips
This adds `contain: strict` to #matrixchat which may have side effects.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Revert accidental layout change to TextWithTooltip from inline to block
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve test coverage and simplify
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Ditch the sleep call
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve coverage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix editing event from search room view
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Handle different room for all rooms search case
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Increase coverage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Force `initialEventId` in `RoomView`
* Remove Force `initialEventId` in `RoomView`
* Add e2e tests to verify we memorize the timeline position
* Fill `viewRoomOpts` in `viewRoom`
* Reset jest mock in sliding sync test
* Add comments
* Remove redundant `forceReset` parameter
This was always true, so let's get rid of it.
Also some function renames.
* Factor out new `withSecretStorageKeyCache` helper
... so that we can use the cache without the whole of `accessSecretStorage`.
* Cache secret storage key during cross-signing reset
* Playwright test for resetting cross-signing
* CrossSigningPanel: Silence annoying react warnings
React complains if we don't include an explicit `tbody`.
* Simple unit test of reset button
* Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk
* Remove unit tests that rely on receipt timestamps
Previously, if we found a receipt for an unknown event, we would use the
receipt timestamp and declare all events before that time to be read.
Now, we ignore such "dangling" receipts until we find the event they
refer to.
This new behaviour is more correct, but does lead to more messages being
considered unread.
This commit deletes tests that checked for the old behaviour.
* Check for a missing thread in determineUnreadState
* Fix incorrect way to find room timeline
* More realistic test setup to support new receipt code
* Update snapshot to expect a room to be unread when there are no receipts
* Formatting fixes
* Update snapshot to show menu and notif button
* Disable some flaky tests
* Disable some flaky tests
* Fix test to make a threaded receipt for an event that is actually in the thread
---------
Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Always allow call.member events on new rooms
This translate to: allow group calls by default
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Do not remove the language when clearing local storage
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
* Revised comment on getting the defined language from settings
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
* Explicitly checking for language set at the device level
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
* Add test that checks if device language setting is kept after a successfull delegated authentication flow
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
* Adds test for unhappy path and adjusts to use the SettingsStore instead of going directly to localStorage
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
* Removing unnecessary variable after test refactor
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
---------
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
* Disable Twemoji emoji font by default
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Force Twemoji font in SAS Verification
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* fix misunderstanding of functional members
Signed-off-by: Timo K <toger5@hotmail.de>
* unused import
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Add menu for legacy and element call in 1:1 rooms
This allows to also initiate element call calls in 1:1 rooms
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Add ringing for matrixRTC
- since we are using m.mentions we start with the Notifier
- an event in the Notifier will result in a IncomingCall toast
- incomingCallToast is responsible for ringing (as long as one can see the toast it rings)
This should make sure visual and audio signal are in sync.
Signed-off-by: Timo K <toger5@hotmail.de>
* use typed CallNotifyContent
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests
Signed-off-by: Timo K <toger5@hotmail.de>
* change to callId
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests
Signed-off-by: Timo K <toger5@hotmail.de>
* only ring in 1:1 calls
notify in rooms < 15 member
Signed-off-by: Timo K <toger5@hotmail.de>
* call_id fallback
Signed-off-by: Timo K <toger5@hotmail.de>
* Update src/Notifier.ts
Co-authored-by: Robin <robin@robin.town>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* add tests
Signed-off-by: Timo K <toger5@hotmail.de>
* more tests
Signed-off-by: Timo K <toger5@hotmail.de>
* unused import
Signed-off-by: Timo K <toger5@hotmail.de>
* String -> string
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Robin <robin@robin.town>
* Update RoomSummaryCard navigation links
* Fix tests
* remove unneeded test
* "@vector-im/compound-web": "0.8.0"
* Fix: search button no transition on hover
* Fix: disabled invite option is not reflected in UI
* test canInviteTo
* update snapshots for CW 0.8.1
* unit test inviteToRoom
* unit test tagRoom
* add member link to roomsummarycard when using legacy room header
* use onChange instead of onClick for ToggleMenuItem favourite room
* update selectors in cypress tests
* always show people menu item
* add hover style to close button
* add padding around room name
* prettier
---------
Co-authored-by: Kerry Archibald <kerrya@element.io>
* Update room summary card header
* test coverage for public room label
* test coverage for public room label (#11841)
* fix encrypted badge selector in cypress/crypto.spec
---------
Co-authored-by: Kerry <kerrya@element.io>
* add feature flag for disabling encryption
Signed-off-by: Timo K <toger5@hotmail.de>
* prettier
Signed-off-by: Timo K <toger5@hotmail.de>
* Update src/i18n/strings/en_EN.json
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* add tests and make url flags explicit
Signed-off-by: Timo K <toger5@hotmail.de>
* remove unnecessary braces
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Make video rooms compatible with matrix RTC
Signed-off-by: Timo K <toger5@hotmail.de>
* comment fixes
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests by destroying the call. Otherwise create wont recreate for ec.
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Fix string ref issue
* Implement unreachable state
* Fix eslint failure
* Fix i18n
* Fix i18n again
* Write cypress test
* Write jest test
* Write more jest tests
* Update method name
* Use unstable prefix
* Always use prefix
This is never to going to be in the spec so always use the io.element
prefix
* Update tests
* Remove redundant code from cypress test
* Use unstable prefix
* Refactor code
* Remove supressOnHover prop
* Remove sub-text label
* Join lines
* Remove blank line
* Add jsdoc
* 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>
* add delegatedauthentication to validated server config
* dynamic client registration functions
* test OP registration functions
* add stubbed nativeOidc flow setup in Login
* cover more error cases in Login
* tidy
* test dynamic client registration in Login
* comment oidc_static_clients
* register oidc inside Login.getFlows
* strict fixes
* remove unused code
* and imports
* comments
* comments 2
* util functions to get static client id
* check static client ids in login flow
* remove dead code
* OidcRegistrationClientMetadata type
* navigate to oidc authorize url
* exchange code for token
* navigate to oidc authorize url
* navigate to oidc authorize url
* test
* adjust for js-sdk code
* login with oidc native flow: messy version
* tidy
* update test for response_mode query
* tidy up some TODOs
* use new types
* add identityServerUrl to stored params
* unit test completeOidcLogin
* test tokenlogin
* strict
* whitespace
* tidy
* unit test oidc login flow in MatrixChat
* strict
* tidy
* extract success/failure handlers from token login function
* typo
* use for no homeserver error dialog too
* reuse post-token login functions, test
* shuffle testing utils around
* shuffle testing utils around
* i18n
* tidy
* Update src/Lifecycle.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* tidy
* comment
* update tests for id token validation
* move try again responsibility
* prettier
* add friendly error messages for oidc authorization failures
* i18n
* update for new translations, tidy
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add icon to late event timestamp
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>
* Avoid error when DMing oneself
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Use Compound tooltips on MessageTimestamp to improve UX of date time discovery
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Show io.element.late_event in MessageTimestamp when known
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Avoid needing new Compound changes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Move groupers into their own directory
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Refactor date separator code to be more generic
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Render timeline separator for late event groups
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix date used in copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Move groupers into their own directory
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add comments
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add comments
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* test persistCredentials without a pickle key
* test setLoggedIn with pickle key
* lint
* type error
* extract token persisting code into function, persist refresh token
* store has_refresh_token too
* pass refreshToken from oidcAuthGrant into credentials
* rest restore session with pickle key
* retreive stored refresh token and add to credentials
* extract token decryption into function
* remove TODO
* very messy poc
* utils to persist clientId and issuer after oidc authentication
* add dep oidc-client-ts
* persist issuer and clientId after successful oidc auth
* add OidcClientStore
* comments and tidy
* expose getters for stored refresh and access tokens in Lifecycle
* revoke tokens with oidc provider
* test logout action in MatrixChat
* comments
* prettier
* test OidcClientStore.revokeTokens
* put pickle key destruction back
* comment pedantry
* working refresh without persistence
* extract token persistence functions to utils
* add sugar
* implement TokenRefresher class with persistence
* tidying
* persist idTokenClaims
* persist idTokenClaims
* tests
* remove unused cde
* create token refresher during doSetLoggedIn
* tidying
* also tidying
* OidcClientStore.initClient use stored issuer when client well known unavailable
* test Lifecycle.logout
* update Lifecycle test replaceUsingCreds calls
* fix test
* add sdkContext to UserSettingsDialog
* use sdkContext and oidcClientStore in session manager
* use sdkContext and OidcClientStore in generalusersettingstab
* tidy
* test tokenrefresher creation in login flow
* test token refresher
* Update src/utils/oidc/TokenRefresher.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* use literal value for m.authentication
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* improve comments
* fix test mock, comment
* typo
* add sdkContext to SoftLogout, pass oidcClientStore to logout
* fullstops
* comments
* fussy comment formatting
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* test persistCredentials without a pickle key
* test setLoggedIn with pickle key
* lint
* type error
* extract token persisting code into function, persist refresh token
* store has_refresh_token too
* pass refreshToken from oidcAuthGrant into credentials
* rest restore session with pickle key
* retreive stored refresh token and add to credentials
* extract token decryption into function
* remove TODO
* very messy poc
* utils to persist clientId and issuer after oidc authentication
* add dep oidc-client-ts
* persist issuer and clientId after successful oidc auth
* add OidcClientStore
* comments and tidy
* expose getters for stored refresh and access tokens in Lifecycle
* revoke tokens with oidc provider
* test logout action in MatrixChat
* comments
* prettier
* test OidcClientStore.revokeTokens
* put pickle key destruction back
* comment pedantry
* working refresh without persistence
* extract token persistence functions to utils
* add sugar
* implement TokenRefresher class with persistence
* tidying
* persist idTokenClaims
* persist idTokenClaims
* tests
* remove unused cde
* create token refresher during doSetLoggedIn
* tidying
* also tidying
* OidcClientStore.initClient use stored issuer when client well known unavailable
* test Lifecycle.logout
* update Lifecycle test replaceUsingCreds calls
* fix test
* tidy
* test tokenrefresher creation in login flow
* test token refresher
* Update src/utils/oidc/TokenRefresher.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* use literal value for m.authentication
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* improve comments
* fix test mock, comment
* typo
* add sdkContext to SoftLogout, pass oidcClientStore to logout
* fullstops
* comments
* fussy comment formatting
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Use Compound tooltips on MessageTimestamp to improve UX of date time discovery
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Show io.element.late_event in MessageTimestamp when known
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Avoid needing new Compound changes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update compound-web
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update identifiers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch to snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Use Compound tooltips on MessageTimestamp to improve UX of date time discovery
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
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>
* Add default desktop_builds and mobile_builds into SdkConfig.DEFAULTS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Avoid rendering app download buttons if config sets to `null`
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Disable app download onboarding task if config has no apps to download
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests and update types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix: Details element wide clickable area
* LogoutDialog-test.tsx snapshot updated
* Fixed open state clickable area for dropdowns
* Advanced changed to advanced
---------
Co-authored-by: Manan Sadana <manan.sadana@cnhteam.onmicrosoft.com>
Co-authored-by: Florian Duros <florianduros@element.io>
* test persistCredentials without a pickle key
* test setLoggedIn with pickle key
* lint
* type error
* extract token persisting code into function, persist refresh token
* store has_refresh_token too
* pass refreshToken from oidcAuthGrant into credentials
* rest restore session with pickle key
* retreive stored refresh token and add to credentials
* extract token decryption into function
* remove TODO
* very messy poc
* comments
* prettier
* comment pedantry
* working refresh without persistence
* extract token persistence functions to utils
* add sugar
* implement TokenRefresher class with persistence
* tidying
* persist idTokenClaims
* persist idTokenClaims
* tests
* remove unused cde
* create token refresher during doSetLoggedIn
* tidying
* also tidying
* update Lifecycle test replaceUsingCreds calls
* tidy
* test tokenrefresher creation in login flow
* test token refresher
* Update src/utils/oidc/TokenRefresher.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* use literal value for m.authentication
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* improve comments
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Mock `CryptoApi.getUserVerificationStatus` instead of `checkUserTrust`
* Use `CryptoApi.getUserVerificationStatus` instead of `checkUserTrust` in `UserInfo.DeviceItem`
* Use `CryptoApi.getUserVerificationStatus` instead of `checkUserTrust` in `UserInfo.DevicesSection`
* Use `CryptoApi.getUserVerificationStatus` instead of `checkUserTrust` in `UserInfo.BasicUserInfo`
* Pass `isUserVerified` props to `BasicUserInfo` children
* Removed remaining calls to `checkUserTrust` in `UserInfo-test.tsx`
* Review changes
* Update comments
* Display spinner only when crypto is initialized
* Fix duplicate `cryptoEnabled`
* Remove misleading comment in `DevicesSection`
* Fix: Clicking on pile opens members list
* onClick used on Accessible Component
* Updated snapshots for testing
* Snapshots updated after merging
---------
Co-authored-by: Manan Sadana <manan.sadana@cnhteam.onmicrosoft.com>
* Don't look for 'Updating space' message in joinrulesettings test
as it may disappear too quickly for us to see.
Fixes https://github.com/vector-im/element-web/issues/25625
* Provide mock function to avoid warning in JoinRuleSettings test
* Use `MatrixClient.CryptoApi.getUserVerificationStatus` instead of `MatrixClient.checkUserTrust` in `MemberTile.tsx`
* Add tests to `MemberTile.tsx`
* Use `mocked` instead of `spyOn`
* test persistCredentials without a pickle key
* test setLoggedIn with pickle key
* lint
* type error
* extract token persisting code into function, persist refresh token
* store has_refresh_token too
* pass refreshToken from oidcAuthGrant into credentials
* rest restore session with pickle key
* retreive stored refresh token and add to credentials
* extract token decryption into function
* remove TODO
* comments
* prettier
* comment pedantry
* fix code smell - nullish coalesce instead of ||
* more comments
* SecureBackupPanel: replace `isKeyBackupTrusted`
`MatrixClient.isKeyBackupTrusted` -> `CryptoApi.isKeyBackupTrusted`
* SecureBackupPanel: replace `getKeyBackupEnabled`
`MatrixClient.getKeyBackupEnabled` -> `CryptoApi.getActiveSessionBackupVersion`
* SecureBackupPanel: replace `deleteKeyBackupVersion`
`MatrixClient.deleteKeyBackupVersion` -> `CryptoApi.deleteKeyBackupVersion`
* Do not show session count if we have no info
We shouldn't say "zero sessions to back up" if we don't know.
* SecureBackupPanel: distinguish between server and active backup
* SecureBackupPanel: stop calling `checkKeyBackup`
`checkKeyBackup` will start key backups if they aren't already running. In my
not-so-humble opinion, the mere act of opening a settings panel shouldn't change anything.
* fix SecurityUserSettingsTab test
* Escape placeholder before injecting it into the style
In particular this adds escaping for backslashes which was previously missing.
* Update snapshots
* Add tests
* test persistCredentials without a pickle key
* test setLoggedIn with pickle key
* lint
* type error
* extract token persisting code into function, persist refresh token
* store has_refresh_token too
* pass refreshToken from oidcAuthGrant into credentials
* rest restore session with pickle key
* comments
* prettier
* Update src/Lifecycle.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* comments
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Use new crypto-api for cross user verification
* update verification flow with new APIs
* Replace some calls to `checkUserTrust`
A start on https://github.com/vector-im/crypto-internal/issues/147
* Enable cypress tests
* update tests
* Delegate decisions on event shields to the js-sdk
* rerender after editing events
This is required because a transition from "valid event" to "unencrypted event"
no longer triggers a state change, so the component does not render
itself. Previously, this would be a transition from `verified:
E2EState.Normal` to `verified: null`.
* Update tests
* prettier
* Test coverage
---------
Co-authored-by: Florian Duros <florianduros@element.io>
* Implement denied request mask and logic
Signed-off-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
* refactor / fix deny requests isues
* fix tests create denied message test
Signed-off-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
* add another test for the primary action for denied request
Signed-off-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
* fix linter issues
Signed-off-by: nurjinn jafar <nurjin.jafar@nordeck.net>
* regenerate translation
Signed-off-by: nurjinn jafar <nurjin.jafar@nordeck.net>
* fix translation and minor refactoring
Signed-off-by: nurjinn jafar <nurjin.jafar@nordeck.net>
* segment into 4
* Remove parallel from Cypress command to avoid talking to Cypress Cloud
* Re-add --parallel flag for Percy
* Prevent event propagation when clicking icon buttons (#11515)
* Prevent event propagation when clicking icon buttons
* Inhibit view user on click behaviour for room header face pile
* Update snapshot
* Add a 'm.relates_to' to edits in receipt tests and disable failing tests (#11501)
* Add a 'm.relates_to' to edits in receipt tests
* Disable a test that fails with real edits
* Wait for the room to be read after we mark it as read
* Skip tests that are failing because of inconsistencies between local and CI behaviour
* Allow creating public knock rooms (#11481)
* Allow creating public knock rooms
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
* Apply PR feedback
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
* Apply PR feedback
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
---------
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
* Collect `console.debug` logs during cypress tests (#11478)
In order for the logs collected by cypress to actually be useful, we really
need `cons:debug`.
* Migrate more strings to translation keys (#11522)
* Only show Search button in RoomSummaryCard if new room UI enabled (#11524)
* Only show Search button in RoomSummaryCard if new room UI enabled
* Update snapshot
* Update vector-im (#11526)
* Update vector-im
* Update snapshots of Compound Avatars
* Update snapshots of Compound Avatars
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Migrate more strings to translation keys (#11530)
* Fix regression around FacePile with overflow (#11527)
* Work around compound-web AvatarStack not applying overlap to non-Avatars
* Fix FacePile overflow tile not being layed out correctly
* Use RoomStateEvent.Update for knocks (#11516)
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
* Cypress tests for event shields (#11525)
* Factor downloadKey out to `utils.ts`
* Add a new `describe` block for event shields
* create a beforeEach block
* Cypress tests for event shields
* Document how to match the CI config for Cypress (#11531)
* Document how to match the CI config for Cypress
* Clarify language about needing Chrome
* Move Cypress info into the Cypress-specific docs
* Migrate more strings to translation keys (#11532)
---------
Signed-off-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
Signed-off-by: nurjinn jafar <nurjin.jafar@nordeck.net>
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
Co-authored-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
Co-authored-by: Kerry Archibald <kerrya@element.io>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Johannes Marbach <johannesm@element.io>
Co-authored-by: Germain <germains@element.io>
Co-authored-by: Charly Nguyen <1422657+charlynguyen@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Add support for rendering custom emojis in reactions
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Include custom reaction short names in tooltips
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Use custom reaction shortcode for accessibility
This uses the shortcode in the following places:
* The aria-label of the reaction buttons
* The alt text for the reaction image
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Remove explicit instantiation of `customReactionName` variable and add types
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Put custom reaction images behind a labs flag
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Use UnstableValue for finding the shortcode
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Move calculation of whether to render custom reaction images up to ReactionRow
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Make alt text more friendly when custom reaction doesn't have shortcode
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Add test for ReactionsRowButton
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Apply suggestions from code review
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Don't use Optional
Signed-off-by: Sumner Evans <sumner@beeper.com>
* Fix ReactionsRowButton test
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Signed-off-by: Sumner Evans <sumner@beeper.com>
---------
Signed-off-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix performance issues with useRoomMembers
With the current implementation it would create a new function, with leading: true, rendering the whole throttling useless
* Add public room indicator
* Format room members count better
* Add public room test
* Add search to room summary card
* Update settings UI
* Update snapshot
* Remove default title attribute
There is a little-known feature where, if you have verified a user (eg, via the
emoji game), then when you mouse-over a message that they sent, it gets a green
highlight.
We also show a brown bar sometimes, and according to the CSS there may be a
yellow bar too?
Very few people seem to know this exists, and even if you do know it exists
nobody seems to understand what exactly the various colours are supposed to be.
So, rather than porting this magic mystery feature to Rust Crypto, let's rip it
out.
* Add E2E status in room header
* Clearer logic for dmRoomList
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* Add test for E2E shield
* Remove dead code
---------
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* Add face pile to rooms
* Migrate FacePile to use Compound
* Fix CI
* Use FacePile component in room header
* Add facepile tests
* Make dead code CI happy
* Lint
* Fix tests
* Fix CSS selectors
* Update room face pile snapshot
* Use useMemo instead of useState and useEffect
* Remove unused imports
* Update snapshot
* Update snapshot
* Use consistent colouring of username with avatar
* Upgrade Compound to fix Firefox issue
* Use the approapriate color shade for usernames
* Use the approapriate color shade for usernames
* Upgrade Compound
* Fix tests
* Fix incompatibility of Soft Logout with Element-R
This `countSessionsNeedingBackup` isn't available in Element-R, and I don't
really understand the logic behind changing the message when we have sessions
that are awaiting backup. Let's just rip it out.
* i18n
* update snapshot
* 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
* Add Voice and Video call in room header
* Add thread icon in room header
* Add room notification icon to room header
* Fix linting
* Add tests for buttons in room header
* Add JSDoc
* micro optimisations
* Fix call disabled when hanging up
* Fix disabled state change on members count update
* Exclude functional members from members count optionally
* i18n
* Add mechanism to check only one instance of the app is running
This isn't used yet, but will form part of the solution to
https://github.com/vector-im/element-web/issues/25157.
* disable instrumentation for SessionLock
* disable coverage reporting
* exclude SessionLock in sonar.properties
* Revert "disable coverage reporting"
This reverts commit 80c4336f76ec8e47e376b6744ef612a73299d14f.
* only disable session storage
* use pagehide instead of visibilitychange
* Add `checkSessionLockFree`
* Give up waiting for a lock immediately when someone else claims
* Update src/utils/SessionLock.ts
* Use Intl for names of languages
* Tweak Intl language style from "American English" -> "US English"
* Update tests
* Fix tests
* Consolidate languageHandler-test files
* Improve coverage
* Consistent casing for languages in dropdown
* Update LanguageDropdown.tsx
* Delint & update snapshot
* Fix tests
* Improve coverage
`of` will fallback to the given code with fallback=code (default)
* util for account url
* test cases
* disable multi session selection on device list
* remove sign out all from context menus when oidc-aware
* comment
* remove unused param
* typo
* dont show account deactivation for externally managed accounts
* Update snapshots - field ID changed
---------
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* util for account url
* test cases
* disable multi session selection on device list
* remove sign out all from context menus when oidc-aware
* comment
* remove unused param
* redirect to auth provider when signing out
* open auth provider in new tab, refresh sessions on return
* correct comment
* fix bad copy paste
* try to make sonar happy
* Update for latest revision of MSCs
* Update SessionManagerTab-test.tsx
* Make InteractiveAuthCallback async and await it
---------
Co-authored-by: Hugh Nimmo-Smith <hughns@matrix.org>
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* util for account url
* test cases
* disable multi session selection on device list
* remove sign out all from context menus when oidc-aware
* comment
* remove unused param
* typo
* Use Intl to generate better internationalised date formats
* Get `Yesterday` and `Today` from Intl also
* Correct capitalisation blunder
* Fix formatTime include weekday
* Iterate
* Fix tests
* use jest setSystemTime
* Discard changes to cypress/e2e/settings/general-user-settings-tab.spec.ts
* Discard changes to res/css/_components.pcss
* Discard changes to res/css/views/elements/_LanguageDropdown.pcss
* Discard changes to src/components/views/elements/LanguageDropdown.tsx
* Add docs & tests for getDaysArray & getMonthsArray
* Discard changes to test/components/structures/__snapshots__/MatrixChat-test.tsx.snap
* Consolidate consts
* Improve testing & documentation
* Update snapshot
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Iterate
* Clarify comments
* Update src/DateUtils.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Specify hourCycle
* Discard changes to test/components/views/settings/devices/DeviceDetails-test.tsx
* Update comments
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Iterate search public spaces UX
* Tweak iconography in spotlight
* Delabs `Exploring public spaces`
* Tweak msc3827 v1.4 support discovery
* i18n
* Delete stale test
* Fix tests
* Iterate
* Iterate PR based on review
* Improve types
* Add shortcut to search for public spaces to create space menu
* Update import
* Add org.matrix.msc3827.stable filtering
* Fix tests
* silence some errors
* Remove last instance of componentWillMount
* Load SAS Emoji translations from @matrix-org/spec
* Fix import
* Test normalisation on both sides
* update comment for @richvdh
* Delint
* Treat lists with a single empty item as plain text, not Markdown.
This allows users to send simple messages such as `-`, `+`, `*` and
`2021.` without Element Web mangling them into a nonsensical empty list.
As soon as any non-whitespace content is added to the item, it switches
back to treating it as a list of one item.
Fixesvector-im/element-web#7631.
* Fix type errors.
* Lint.
---------
Co-authored-by: Michael Weimann <michaelw@matrix.org>
Co-authored-by: Johannes Marbach <johannesm@element.io>
* Update Jest to more recent release
I want to use things like `jest.advanceTimersByTimeAsync`
* more jest updates
* add dep on types/prettier
* fix LegacyRoomHeader-test
* fix MatrixChat-test
* fix RoomView-test
* fix PollHistory-test
* update SidebarUserSettingsTab-test
* fix PipContainer-test
* fix UserOnboardingPage-test
* fix WidgetContextMenu-test.tsx
* Avoid `mockImplementation` for mock `matchMedia` impl
`mockImplementation` is (now) reset by `jest.resetAllMocks` and
`jest.restoreAllMocks`, which we don't really want here.
Fixes `theme-test`
* Move `mediaDevices` mock out of `setupManualMocks`
This doesn't work well in test suites with multiple tests, because the
`mockReturnValue` is reset for subsequent tests.
In any case, having it mocked out automagically is *magical*. Let's make it
opt-in.
* fix FormattingButtons-test.tsx
* fix DeviceListenerTest
* fix RoomTile-test
* Move `mediaDevices` mock out of `setupManualMocks`
This doesn't work well in test suites with multiple tests, because the
`mockReturnValue` is reset for subsequent tests.
In any case, having it mocked out automagically is *magical*. Let's make it
opt-in.
* clarify ts-ignore
* This addresses two issues:
1. Include non-matching DMs in Spotlight suggestions if the userId of the DM is included in the user directory search results
2. The user directory search results order is kept when there is no relevant activity between users, instead of sorting by MXID
* Applying feedback from PR:
1. Updated comments
2. Renamed users to userDirectorySearchResults
3. Makes sure linter is happy
* 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
* Switch to importing models/room-state & models/room-member from main js-sdk export
* Fix cypress-axe import
* Fix more imports
* Fix cypress-axe import
* Fix bad merge
* 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
* Support adding space-restricted joins on rooms not members of those spaces
* add react dependencies
* Add snapshot test
* Fix snapshot stability
* Update snapshot
* Increase coverage
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* 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
* Fix cypress-axe import
* Fix cypress-axe import
* Remove oobData from RoomHeader
It is never used as the RoomHeader is not shown unless a Room model exists
* Make room model mandatory on the RoomHeader
* Create useRoomName hook
Mark RoomName component as deprecated
* Pass out-of-band data to relevant RoomHeader component
* Mark LegacyRoomHeader as deprecated
* Fix incorrect search&replace in _RoomHeader.pcss
* lintfix
* Mark room as optional in room topic hook
* Fix i18n
* Discard use of useCallback
* Change export of useRoomName
* fix ts issue
* lints
* Add room topic to room header
* lintfix
* lintfix & clamp to one line
* Revert optimisations to DecoratedRoomAvatar
* Add test for opening the room summary
* Make transition honour prefer-reduced-motion
* Integrate @vector-im/compound-web
* Use compound type styles
* Use latest version of @vector-im/compound-web
* Change component name
* Fallback when room is undefined
* fix snapshot
* Create useRoomName hook
Mark RoomName component as deprecated
* Pass out-of-band data to relevant RoomHeader component
* Mark LegacyRoomHeader as deprecated
* Fix incorrect search&replace in _RoomHeader.pcss
* lintfix
* Mark room as optional in room topic hook
* Fix i18n
* Discard use of useCallback
* Change export of useRoomName
* fix ts issue
* lints
* Add room topic to room header
* lintfix
* lintfix & clamp to one line
* Revert optimisations to DecoratedRoomAvatar
* Add test for opening the room summary
* Make transition honour prefer-reduced-motion
* Fallback when room is undefined
* fix snapshot
* Create useRoomName hook
Mark RoomName component as deprecated
* Pass out-of-band data to relevant RoomHeader component
* Mark LegacyRoomHeader as deprecated
* Fix incorrect search&replace in _RoomHeader.pcss
* lintfix
* Fix i18n
* Discard use of useCallback
* Change export of useRoomName
* fix ts issue
* lints
`MatrixClient.crypto` is going away, so let's switch over to `getCrypto()`.
There doesn't seem to be anything else relying on the `crypto` stub in
`mockClientMethodsCrypto()`, so let's get rid of that.
* Remove display of Key backup signatures
This is *fiddly* to support in Element-R, and we don't really think it's
offering any value.
* update snapshot
* clean up i18n
* Update all non-major dependencies
* Add isLocation to ComposerEvent analytics events
* Remove cypress-each as it is incompatible with modern typescript
* Roll back eslint-plugin-deprecate
* Remove stale comment
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Prevent re-filtering user directory results in spotlight
As they were already filtered by the server and may be fuzzier than any filtering we can do locally,
e.g. matching against email addresses or other fields not available to the client
* deduplicate work
* Improve coverage
* Do not show "Forget room" button in Room View header for guest users
You can observe this problem by opening this in a new private tab:
https://app.element.io/#/room/#matrix:matrix.org
This is a public room with guest access enabled and Element will use a
guest account to display it.
Showing a "Forget room" button in the header for guest users is
pointless. Clicking on it leads to a `M_GUEST_ACCESS_FORBIDDEN` error.
Signed-off-by: Slavi Pantaleev <slavi@devture.com>
* Iterate
---------
Signed-off-by: Slavi Pantaleev <slavi@devture.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* utils to persist clientId and issuer after oidc authentication
* add dep oidc-client-ts
* persist issuer and clientId after successful oidc auth
* add OidcClientStore
* comments and tidy
* format
* Do not filter users post search
Signed-off-by: Maximilian Malek <maximilian.malek@uni-graz.at>
* Iterate
* Iterate
---------
Signed-off-by: Maximilian Malek <maximilian.malek@uni-graz.at>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
See https://github.com/electron/electron/pull/30702 - this has the benefit of the js-sdk and LiveKit not having to add custom logic for Electron
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Offer to unban user during invite if inviter has sufficient permissions
* Improve unban check in MultiInviter
* Improve coverage
* Update src/utils/MultiInviter.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Events which are still in the process of being sent should *not* be included
in the `EventTimeline`. Doing so means that we will attempt to render them
twice, which makes react explode.
Fixes https://github.com/vector-im/element-web/issues/25770
* enable feature_intentional_mentions with v1.7
* org.matrix.msc3952.mentions -> m.mentions
* update push rules test util
* only support stable version 1.7
* use stable values for msc3952 push rules
* use stable intentional mentions rule sin test models
* unstable feature in settings controller
* add delegatedauthentication to validated server config
* dynamic client registration functions
* test OP registration functions
* add stubbed nativeOidc flow setup in Login
* cover more error cases in Login
* tidy
* test dynamic client registration in Login
* comment oidc_static_clients
* register oidc inside Login.getFlows
* strict fixes
* remove unused code
* and imports
* comments
* comments 2
* util functions to get static client id
* check static client ids in login flow
* remove dead code
* OidcRegistrationClientMetadata type
* navigate to oidc authorize url
* exchange code for token
* navigate to oidc authorize url
* navigate to oidc authorize url
* test
* adjust for js-sdk code
* login with oidc native flow: messy version
* tidy
* update test for response_mode query
* tidy up some TODOs
* use new types
* add identityServerUrl to stored params
* unit test completeOidcLogin
* test tokenlogin
* strict
* whitespace
* tidy
* unit test oidc login flow in MatrixChat
* strict
* tidy
* extract success/failure handlers from token login function
* typo
* use for no homeserver error dialog too
* reuse post-token login functions, test
* shuffle testing utils around
* shuffle testing utils around
* i18n
* tidy
* Update src/Lifecycle.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* tidy
* comment
* update tests for id token validation
* move try again responsibility
* prettier
* use more future proof config for static clients
* test util for oidcclientconfigs
* rename type and lint
* correct oidc test util
* store issuer and clientId pre auth navigation
* adjust for js-sdk changes
* update for js-sdk userstate, tidy
* update MatrixChat tests
* update tests
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* autoapprove Element Call oidc requests
Signed-off-by: Timo K <toger5@hotmail.de>
* update comment
Signed-off-by: Timo K <toger5@hotmail.de>
* add tests for oidc element-call
Signed-off-by: Timo K <toger5@hotmail.de>
* fix ES lint
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* test util for oidcclientconfigs
* rename type and lint
* correct oidc test util
* store issuer and clientId pre auth navigation
* update for js-sdk userstate, tidy
* force to allow calls without video and audio in embedded mode
* Check device access permission and introduce a only screen share call mode
* Fix strict typ check issue
* Fix i18n check issue
* Add unit tests for device selection
* Fix mocked media device query
* Handle newlines in user pills
Fixes: vector-im/element-web#10994
* Fix typo in comment
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Refactor link generation for better readability
* Use `<br>` instead of `<br/>`
* Fix copy/paste error
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* hide unsupported login elements
* Update src/components/structures/auth/Login.tsx
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* 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
* add delegatedauthentication to validated server config
* dynamic client registration functions
* test OP registration functions
* add stubbed nativeOidc flow setup in Login
* cover more error cases in Login
* tidy
* test dynamic client registration in Login
* comment oidc_static_clients
* register oidc inside Login.getFlows
* strict fixes
* remove unused code
* and imports
* comments
* comments 2
* util functions to get static client id
* check static client ids in login flow
* remove dead code
* OidcRegistrationClientMetadata type
* navigate to oidc authorize url
* navigate to oidc authorize url
* test
* adjust for js-sdk code
* update test for response_mode query
* use new types
* strict
* tidy
* Use new `CryptoEvent.VerificationRequestReceived` event
https://github.com/matrix-org/matrix-js-sdk/pull/3514 deprecates
`CryptoEvent.VerificationRequest` in favour of
`CryptoEvent.VerificationRequestReceived`. Use the new event.
* Factor out `getDeviceCryptoInfo` function
I seem to be writing this logic several times, so let's factor it out.
* Factor out `getUserDeviceIds` function
Another utility function
* VerificationRequestToast: `getStoredDevice` -> `getDeviceCryptoInfo`
* SlashCommands: `getStoredDevice` -> `getDeviceCryptoInfo`
* MemberTile: `getStoredDevicesForUser` -> `getUserDeviceIds`
* Remove redundant mock of `getStoredDevicesForUser`
* Update linkify to 4.1.1
Fixes: vector-im/element-web#23806
* Empty commit to nudge CI
* Remove obsolete `any` types
* Allow hyphens in domainpart
* Improve test name
* add delegatedauthentication to validated server config
* dynamic client registration functions
* test OP registration functions
* add stubbed nativeOidc flow setup in Login
* cover more error cases in Login
* tidy
* test dynamic client registration in Login
* comment oidc_static_clients
* register oidc inside Login.getFlows
* strict fixes
* remove unused code
* and imports
* comments
* comments 2
* util functions to get static client id
* check static client ids in login flow
* remove dead code
* OidcRegistrationClientMetadata type
* use registerClient from js-sdk
* use OidcError from js-sdk
* util functions to get static client id
* check static client ids in login flow
* remove dead code
* add trailing slash
* comment error enum
* spacing
* PR tidying
* more comments
* add ValidatedDelegatedAuthConfig type
* Update src/Login.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update src/Login.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update src/utils/ValidatedServerConfig.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* rename oidc_static_clients to oidc_static_client_ids
* comment
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* force disable encryption on room creation
* test allowChangingEncryption
* move into utils/room directory
* tests
* unit test CreateRoomDialog
* remove debug
* wait for constructor promises to settle
* test case for force_disable
* comment
* set forced value after resolving checkUserIsAllowedToChangeEncryption
* tidy and comments
* use label text in test
* disable encryption switch in room settings when force disabled
* force disable encryption on room creation
* test allowChangingEncryption
* move into utils/room directory
* tests
* unit test CreateRoomDialog
* remove debug
* wait for constructor promises to settle
* test case for force_disable
* comment
* set forced value after resolving checkUserIsAllowedToChangeEncryption
* tidy and comments
* use label text in test
* add failing test
* WIP - pause work until we can implement with new patch release of RTE
* focus tests purely on the body output
* remove unused import
* Speed up `waitForMember` if user already in room
`waitForMember` waits for a user to join, or be invited, to a room. But if the
user is already in the room (ie, we miss the `NewMember` event), we end up
timing out after 1500ms.
We can save 1.5s here by returning immediately.
* fix strict type errors
* stfu SonarCloud
* fix logic error
* update types
* extract message content to variable
* use the new messageContent property
* sort out mention types to make them a map
* update getMentionAttributes to use AllowedMentionAttributes
* add plain text handling
* change type and handling for attributes when creating a mention in plain text
* tidy, add comment
* revert TS config change
* fix broken types in test
* update tests
* bump rte
* fix import and ts errors
* fix broken tests
* Rename classes of appTileBodyClass
Include mx_AppTileBody_fadeInSpinner in mx_AppTileBody, the class name applied by default
* Apply a common CSS declaration to mx_AppTileBody
* Strictify style rule specificity to avoid visual regressions - mx_AppTileBody--*
* Run prettier
* Change --normal to --large
* Edit and add comments
When you add, edit, or remove style rules from mx_appTileBody without causing a visual regression, it is imperative to keep in mind which selector should be worked on. The comments should help developers who are not familiar with the style codebase to avoid a regression.
* Rename classes of appTileBodyClass
Include mx_AppTileBody_fadeInSpinner in mx_AppTileBody, the class name applied by default
* Apply a common CSS declaration to mx_AppTileBody
* Strictify style rule specificity to avoid visual regressions - mx_AppTileBody--*
* Run prettier
* Change --normal to --large
* Edit and add comments
When you add, edit, or remove style rules from mx_appTileBody without causing a visual regression, it is imperative to keep in mind which selector should be worked on. The comments should help developers who are not familiar with the style codebase to avoid a regression.
* Update a Jest snapshot
* Update a Jest snapshot
* Move Room context threadId our of RoomView state
* Allow maintaining a different right panel width for thread panels
* Fix types
* Fix types
* Add tests
* Increase coverage
* Increase coverage
* Add comments
* Update src/components/structures/MainSplit.tsx
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* 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
* lintfix
* Use correct SpyInstance import
* Using npm build of design tokens
* Update references to `VerificationRequestEvent`
* Update references to `Phase`
* update references to legacy `PHASE_*` constants
* Replace `request.canAccept` with `canAcceptVerificationRequest`
* Replace `VerificationRequest` with the interface throughout
* Minor strict type fixes
* Add a couple of tests
* Add a Jest snapshot of AppPermission
* Move the test inside 'for a pinned widget' category
* Make only spinner message bold
* Set font size specified with "mx_AppPermission_smallText" by default
- Add "mx_AppPermission_largeText" for elements whose size has not been specified with mx_AppPermission_smallText
- Create _AppWarning.pcss for AppWarning
* Make AppPermission panel scrollable, keeping the content at the center
* Run prettier
* Use Heading component
* Use Icon component
* Fix the test
* Add a snapshot to track AppTile in AppsDrawer
* Conform to the naming policy - AppsContainer resizer
* Nest 'mx_AppsContainer_resizer_container_handle' to enforce the style
- mx_AppsContainer_resizer
- mx_AppsContainer_resizer_container
- mx_AppsContainer_resizer_container_handle
* Rename "mx_AppsContainer_resizer" to "mx_AppsDrawer_resizer"
PersistentVResizer is defined by mx_AppsDrawer (see const "classes")
* get rough funcitonality working
* try to tidy up types
* fix merge error
* fix signature change error
* type wrangling
* use onBeforeInput listener
* add onBeforeInput handler, add logic to onPaste
* fix type error
* bring plain text listeners in line with useInputEventProcessor
* extract common function to util file, move tests
* tidy comment
* tidy comments
* fix typo
* add util tests
* add text paste test
* add comments to rough first solution
* allow eventRelation prop to pass to both composers
* use eventRelation in image paste
* add image pasting to rich text mode of rich text editor
* extract error handling to function
* type the error handler
* add tests
* make behaviour mimic SendMessage
* add sad path tests
* refactor to use catch throughout
* update comments
* tidy up tests
* add special case and change function signature
* add comment
* bump rte to 2.2.2
* Use new `VerificationRequest.getQRCodeBytes()`
* Use new `VerificationRequest.otherDeviceId`
* Remove references to `VerificationRequest.channel`
* Replace references to `VerificationRequest.{requesting,receiving}UserId`
Normally these are guarded by `request.initiatedByMe` so we can trivially
replace it with `request.otherUserId` or `client.getUserId()`. In one place we
actually need to apply some logic.
* increase test coverage
* Even more test coverage
* Even more test coverage
* Use `getShowSasCallbacks()` and `getShowQrCodeCallbacks()`
... instead of type-casting
* Update method names
These methods got renamed in the js-sdk PR
* Fix strict typing errors
* Inline `VerificationRequest.{invalid,ready,started,done,cancelled}`
These methods are all just shortcuts for checks on `phase`, so let's get rid of
them
* update test
* Add some more tests
* even more coverage
* fix tests
* When joining room in sub-space join the parents too
* Fix joined state not updating on sync
* Add membership check
* Update tests
* Improve coverage
* Make TS happier
* Make TS happier
* add aria-label to default homeserver checkbox
* test ServerPickerDialog
* remove debug
* strict fixes
* dont validate unselected server field on ServerPickerDialog
* i18n
* account password section
* account email and phone numbers
* update cypress selectors
* use settingsection for General section
* use semantic headings for profile settings
* fix show advanced spacing
* udpate snapshot
* use semantic headings in mjolnir settings
* remove debug
* unit test UI changes for mjolnir settings
* account password section
* account email and phone numbers
* update cypress selectors
* use settingsection for General section
* use semantic headings for profile settings
* fix show advanced spacing
* udpate snapshot
* Basic test for IncomingSasDialog
* Basic test for VerificationPanel
* Replace references to IGeneratedSas and ISasEvent
* Some secret references to the callbacks types
* Update references to `QrCodeEvent`, `SasEvent` and `VerificationEvent`
* Update tests to demonstrate broken behaviour
* Fixes and comments
* Remove exception swallowing
This seems like it causes more problems than it solves.
* Use aria descriptions instead of labels for TextWithTooltip
to prevent clobbering the reading of the content
* Update snapshot
* Fix snapshots
* Iterate
* Update snapshots
* delint
* Remove mx_MemberInfo_profileField
* Merge mx_MemberInfo_profile with mx_MemberInfo_container
* Remove redundant div elements
* Update a Jest snapshot
* allow testids in settings sections
* use semantic headings in LabsUserSettingsTab
* put back margin var
* use SettingsTab wrapper
* use semantic headings for deactivate acc section
* use semantic heading in manage integratios
* i18n
* use currentColor in warning-triangle svg, update use in RoomStatusBar
* use semantic headings for discovery section
* test manage integration settings
* test deactivate account section display
* remove SettingsFieldset margins
* threepids styles
* remove debug
* test discovery email and phone
* Pass device id to widget
Implement the [comment in MSC 3819](https://github.com/matrix-org/matrix-spec-proposals/pull/3819#discussion_r1099833846) which requests passing a device id to a widget.
This is based on the previous work in the matrix-widget-api: https://github.com/matrix-org/matrix-widget-api/pull/78
Signed-off-by: Oliver Sand <oliver.sand@nordeck.net>
* Include all data that is shared in the permissions screen
* Update matrix-widget-api to version 1.4.0
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
* Fix type and test
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
---------
Signed-off-by: Oliver Sand <oliver.sand@nordeck.net>
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
Co-authored-by: Dominik Henneke <dominik.henneke@nordeck.net>
* Settings panels: avoid exceptions with rust crypto
If we are using rust crypto, `client.crypto` is undefined. We'll need to fix
these up better in future, but for now, just return early.
* Update tests
* Use icon component for buttons on mx_AppTileMenuBar_widgets
* Remove redundant declarations
* Add a Percy snapshot test
* Set color value to mx_Icon, fill and stroke with currentColor
* Iterate
* split SettingsSection out of SettingsTab, replace usage
* correct copyright
* use semantic headings in GeneralRoomSettingsTab
* use SettingsTab and SettingsSubsection in room settings
* fix VoipRoomSettingsTab
* use SettingsSection components in space settings
* settingssubsection text component
* use semantic headings in HelpUserSetttings tab
* use ExternalLink components for external links
* test
* strict
* lint
* semantic heading in labs settings
* semantic headings in keyboard settings tab
* semantic heading in preferencesusersettingstab
* tidying
* use new settings components in eventindexpanel
* findByTestId
* prettier
* semantic headings and style refresh for crypto settings
* e2e panel
* use semantic headings in User settings appearance tab
* update selectors in tests
* tidy
* split SettingsSection out of SettingsTab, replace usage
* correct copyright
* use semantic headings in GeneralRoomSettingsTab
* use SettingsTab and SettingsSubsection in room settings
* fix VoipRoomSettingsTab
* use SettingsSection components in space settings
* settingssubsection text component
* use semantic headings in HelpUserSetttings tab
* use ExternalLink components for external links
* test
* strict
* lint
* semantic heading in labs settings
* semantic headings in keyboard settings tab
* semantic heading in preferencesusersettingstab
* tidying
* use new settings components in eventindexpanel
* findByTestId
* prettier
* semantic headings and style refresh for crypto settings
* e2e panel
* semantic headings and cleanup in Sidebar user settings
* semantic heading in voice user settings
* sonarcloud bug and test
* split SettingsSection out of SettingsTab, replace usage
* correct copyright
* use semantic headings in GeneralRoomSettingsTab
* use SettingsTab and SettingsSubsection in room settings
* fix VoipRoomSettingsTab
* use SettingsSection components in space settings
* settingssubsection text component
* use semantic headings in HelpUserSetttings tab
* use ExternalLink components for external links
* test
* strict
* lint
* semantic heading in labs settings
* semantic headings in keyboard settings tab
* semantic heading in preferencesusersettingstab
* tidying
* use new settings components in eventindexpanel
* findByTestId
* prettier
* semantic headings and style refresh for crypto settings
* e2e panel
* test cross signing panel
* strict
* more strict
* tweak
* test eventindexpanel
* strict fixes
* Take a Jest snapshot of a widget (AppTile)
* Fix the comment
* Update test/components/views/elements/AppTile-test.tsx
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Add container
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix roving tab index getting confused after dragging space order
* Fix roving tab index for drag reordering
* delint
* Add test
* Make types happier
* Remove snapshot
* allow testids in settings sections
* use semantic headings in LabsUserSettingsTab
* put back margin var
* use SettingsTab wrapper
* use semantic headings for deactivate acc section
* use semantic heading in manage integratios
* i18n
* explicit cast to boolean
* Update src/components/views/settings/shared/SettingsSubsection.tsx
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* test manage integration settings
* test deactivate account section display
* remove debug
* fix cypress test
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* settingssubsection text component
* use semantic headings in HelpUserSetttings tab
* test
* strict
* lint
* semantic heading in labs settings
* semantic headings in keyboard settings tab
* semantic heading in preferencesusersettingstab
* tidying
* findByTestId
* prettier
* allow testids in settings sections
* use semantic headings in LabsUserSettingsTab
* use semantic headings in usersettingspreferences
* rethemendex
* put back margin var
* allow testids in settings sections
* use semantic headings in LabsUserSettingsTab
* use semantic headings in usersettingspreferences
* rethemendex
* put back margin var
* Replace: %s/mx_RightPanel_headerButton/mx_RoomHeader_button/g
* Conform the selectors to our naming policy: with flag (--)
- %s/mx_RoomHeader_button_highlight/mx_RoomHeader_button--highlight/g
- %s/mx_RoomHeader_button_unread/mx_RoomHeader_button--unread/g
* Update a Jest snapshot
* Move the declarations and Sass variables
- Move Sass variables to the place where they are used
* insert mentions as links styled as pills
* post merge fix and update test
* update comments, move typeguard out
* create a text node instead of setting innerText
* update test
* update test
* fix broken cypress test, remove .only
* make it able to deal with inserting in middle of blank lines
* update comment
* fix strict null error
* use typeguard
* avoid implicit truth check
* add hook tests
* add comment
* Update test/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners-test.tsx
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
---------
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* allow testids in settings sections
* use semantic headings in LabsUserSettingsTab
* put back margin var
* explicit cast to boolean
* Update src/components/views/settings/shared/SettingsSubsection.tsx
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Send correct receipts when viewing a room
* Fix strict type issues
* Handle promises
* Handle more primises
* Add generic array type
* Replace existende check with type predicate
* Fix wrong variable check
* Improve comment about initial read marker
* Use read_markers API for fully read receipts
* Log public receipt fallback
* Rename variables in new code to be aligned to the spec
* Add end-2-end test for read markers and receipts
* Optimize mx_RoomView_myReadMarker
- Replace the compound selector with a type selector
- Nest the type selector in "mx_RoomView_myReadMarker_container"
* Conform the style rules to the naming policy
Including "container" in a class name is redundant as our naming policy tells that a string followed by an underscore (_) represents a container if it contains an element.
* Run prettier
* Replace `mx_RoomView_myReadMarker hr` with `mx_RoomView_myReadMarker`
- Remove a unit
- Hide hr's parent (mx_RoomView_myReadMarker) on Percy snapshots
* Change the class name from `mx_RoomView_myReadMarker` to `mx_MessagePanel_myReadMarker`
The read marker is specified on MessagePanel.tsx, and should be named so to avoid confusion.
- Create _MessagePanel.pcss for the style rules of MessagePanel
* Update permalinks.spec.ts
* Fix the state shown for call in rooms
We split out a separate state for 'missed' separate to 'ended' which
caused confusion as the state got set to this when it shouldn't have,
so calls that wouldn't have been shown as missed were.
Remove the csutom call state and just have the missed state as a
variant of the ended state. Re-order the if clauses so they hit the
right ones. Also don't pass the callState variable into renderContent()
which is a class method and so has access to the same info anyway.
* Fix test
* i18n (reorder only)
* Fix test
* Fix types
* Add test for legacy call event tile
* Update @types/jest to 29.2.6
This adds the correct types for the contexts field on mock objects, which I'll need shortly
* Enable pagination for overlay timelines
* Add regression test for emoji picker order mangling after clearing filter
* Fix regression in emoji picker order mangling after clearing filter
* Iterate
* Update src/components/views/emojipicker/EmojiPicker.tsx
* DeviceListener: use new `getUserDeviceInfo` method
https://github.com/matrix-org/matrix-js-sdk/pull/3272 added a new
`CryptoApi.getUserDeviceInfo` method, which also works with rust crypto. Update
DeviceListener to use it, thus making many of the cypress tests work on Element
Web R.
* add missing await
... mostly to silence the quality gate
* fix matrix search link
* fix matrix search link
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
* fix: allow full link search
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
* fix: allow full link search on new search feature
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
* improve transformSearchTerm function
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
* improve transformSearchTerm function
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
* add review changes
* Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
added review correction
changed the transformSearchTerm function to use parsePermaLink
removed extra spaces
* add angle brackets to copyright email title
* removed extra space
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
* Update src/utils/SearchInput.ts
Co-authored-by: Travis Ralston <travpc@gmail.com>
* fixed spolight dialog search for room and user links
* added tests for transformSearchTerm
* removed transformSearchTerm from room search bar
* replaces two test cases to one that should return the primaryEntityId if the search term was a permalink
* corrected ts issues
* changed type of transformSearchTerm to string
* changed return value from empty string to the original search term if the primaryEntityId of the parsedLink is null
* changed return value from empty string to the original search term if the primaryEntityId of the parsedLink is null
* refactored transformSearchTerm and added a new test case
* rewrote transformSearchTerm doc
* changed mocked return values of test case - should return the original search term if the search term is a permalink and the primaryEntityId is null
* lint corrections
---------
Signed-off-by: Boluwatife Omosowon <boluomosowon@gmail.com>
Co-authored-by: Boluwatife Omosowon <boluwatifeomosowon@Jesus-Loves-You.local>
Co-authored-by: Travis Ralston <travpc@gmail.com>
* change interface to discriminated union
* fix ts errors
* use definite assertion operator
* use | undefined, instead of assertion operator
* correct the button press arguments for dial button
* update props to have `Props` suffix
* add comment
* remove unnecessary default
* remove unnecessary comment
* make classname match filename
* setup test file
* export consts for testing
* add initial test
* add another DialPad test
* fix imports
* muted-to-the-bottom POC
* split muted rooms in natural algorithm
* add previous event to account data dispatch
* add muted to notification state
* sort muted rooms to the bottom
* only split muted rooms when sorting is RECENT
* remove debugs
* use RoomNotifState better
* add default notifications test util
* test getChangedOverrideRoomPushRules
* remove file
* test roomudpate in roomliststore
* unit test ImportanceAlgorithm
* strict fixes
* test recent x importance with muted rooms
* unit test NaturalAlgorithm
* test naturalalgorithm with muted rooms
* strict fixes
* comments
* add push rules test utility
* strict fixes
* more strict
* tidy comment
* document previousevent on account data dispatch event
* simplify (?) room mute rule utilities, comments
* remove debug
* split SettingsSection out of SettingsTab, replace usage
* correct copyright
* use semantic headings in GeneralRoomSettingsTab
* use SettingsTab and SettingsSubsection in room settings
* fix VoipRoomSettingsTab
* use SettingsSection components in space settings
* settingssubsection text component
* use semantic headings in HelpUserSetttings tab
* use ExternalLink components for external links
* test
* strict
* lint
* split SettingsSection out of SettingsTab, replace usage
* correct copyright
* use semantic headings in GeneralRoomSettingsTab
* use SettingsTab and SettingsSubsection in room settings
* fix VoipRoomSettingsTab
* use SettingsSection components in space settings
* split SettingsSection out of SettingsTab, replace usage
* correct copyright
* use semantic headings in GeneralRoomSettingsTab
* use SettingsTab and SettingsSubsection in room settings
* fix VoipRoomSettingsTab
* add the handlers for when autocomplete is open plus rough / handling
* hack in using the wysiwyg autocomplete
* switch to using onSelect for the behaviour
* expand comment
* add a handle command function to replace text
* add event firing step
* fix TS errors for RefObject
* extract common functionality to new util
* use util for plain text mode
* use util for rich text mode
* remove unused imports
* make util able to handle either type of keyboard event
* fix TS error for mxClient
* lift all new code into main component prior to extracting to custom hook
* shift logic into custom hook
* rename ref to editorRef for clarity
* remove comment
* try to add cypress test for behaviour
* remove unused imports
* fix various lint/TS errors for CI
* update cypress test
* add test for pressing escape to close autocomplete
* expand cypress tests
* add typing while autocomplete open test
* refactor to single piece of state and update comments
* update comment
* extract functions for testing
* add first tests
* improve tests
* remove console log
* call useSuggestion hook from different location
* update useSuggestion hook tests
* improve cypress tests
* remove unused import
* fix selector in cypress test
* add another set of util tests
* remove .only
* remove .only
* remove import
* improve cypress tests
* remove .only
* add comment
* improve comments
* tidy up tests
* consolidate all cypress tests to one
* add early return
* fix typo, add documentation
* add early return, tidy up comments
* change function expression to function declaration
* add documentation
* fix broken test
* add check to cypress tests
* update types
* update comment
* update comments
* shift ref declaration inside the hook
* remove unused import
* update cypress test and add comments
* update usePlainTextListener comments
* apply suggested changes to useSuggestion
* update tests
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* hack to fix console noise from unfaked timers and clearAllModals
* remove old debug logging in AsyncWrapper
* pass room to room settings tabs
* add errorboundary for roomsettingsdialog
* apply strictnullchecks to tabs/room
* dedupe code to set toom in roomsettingdialog
* add unit tests
* test SecurityRoomSettingsTab
* remove snapshot
* strict fixes
* more tests
* 2% more test coverage
* remove roomName from RoomSettingsDialogs state
* Fix all rooms search generating permalinks to wrong room id
* Iterate
* Add comment
* Iterate
* Add coverage
* Iterate
* Add comment
* Restore src/utils/permalinks/Permalinks.ts
* Update src/components/structures/RoomSearchView.tsx
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Use `getUserDeviceInfo` instead of `downloadKeys` and `getStoredDevicesForUser`
* Use new `getUserDeviceInfo` api in `UserInfo.tsx` and `UserInfo-test.tsx`
* Fix missing fields
* Use `getUserDeviceInfo` instead of `downloadKeys`
* Move `ManualDeviceKeyVerificationDialog.tsx` from class to functional component and add tests
* Fix strict errors
* Update snapshot
* Add snapshot test to `UserInfo-test.tsx`
* Add test for <BasicUserInfo />
* Remove useless TODO comment
* Add test for ambiguous device
* Rework `<BasicUserInfo />` test
* RovingTabIndex handle looping around start/end
* Make TabbedView expose aria tabpanel/tablist/tab roles
* Fix right panel being wrongly specified as aria tabs
Not all right panels map to the top right header buttons so we cannot describe it as a tabpanel relation
* tsc strict
* Update snapshots
* Fix ARIA AXE violation
* Update tests
* Use `cli.getUserDeviceInfo` instead of `cli.downloadKeys` to create a room
* Use `client.getCrypto().getUserDeviceInfo` instead of `client.getUserDeviceInfo`
* Update `createRoom-test.ts` to use `getUserDeviceInfo`
* Remove duplicate field
* Honour feature toggles in guest mode
* Suppress TS warning about returning null MatrixClient
* Revert "Suppress TS warning about returning null MatrixClient"
Don't ts-ignore this - we will eventually fix it via the strict work.
This reverts commit 0c657e6afd4c69d07c39bc2783184f36feaf940f.
* Conform more of the codebase to `strictNullChecks`
* Iterate
* Iterate
* Iterate
* Iterate
* Conform more of the codebase to `strictNullChecks`
* Iterate
* Update record key
* Add missing aria-expanded attributes
* Improve autoComplete for phone numbers & email addresses
* Fix room summary card heading order
* Fix missing label on timeline search field
* Use appropriate semantic elements for dropdown listbox
* Use semantic list elements in keyboard settings tab
* Use semantic list elements in spotlight
* Fix types and i18n
* Improve types
* Update tests
* Add snapshot test
* Conform more of the codebase to `strictNullChecks`
* Conform more of the codebase to `strictNullChecks`
* Fix types
* Conform more of the codebase to `strictNullChecks`
* Conform more of the codebase to `strictNullChecks`
* Properly translate errors in AddThreepid.ts
Part of https://github.com/vector-im/element-web/issues/9597
* Use translated message
* Avoid returning undefined ever
* More usage
* Introduce UserFriendlyError
* Use UserFriendlyError
* Add more usage instead of normal error
* Use types and translatedMessage
* Fix lints
* Update i18n although it's wrong
* Use unknown for easier creation from try/catch
* Use types
* Use error types
* Use types
* Update i18n strings
* Remove generic re-label of HTTPError
See https://github.com/matrix-org/matrix-react-sdk/pull/10432#discussion_r1156468143
The HTTPError already has a good label and it isn't even translated if we re-label it here in this way generically
Probably best to just remove in favor of thinking about a translations in general from the `matrix-js-sdk`, see https://github.com/matrix-org/matrix-js-sdk/issues/1309
* Make error message extraction generic
* Update i18n strings
* Add tests for email addresses
* More consistent error logging to actually see error in logs
* Consistent error handling
* Any is okay because we have a fallback
* Check error type
* Use dedicated mockResolvedValue function
See https://github.com/matrix-org/matrix-react-sdk/pull/10432#discussion_r1163344034
* Remove dependency on `org.matrix.e2e_cross_signing` unstable feature
Currently, we have some code that relies on the server declaring support for an
`unstable_feature` called `org.matrix.e2e_cross_signing`. There is nothing in
the spec that requires this, so this would make us incompatible with some
server implementations.
The features in question were added in spec v1.1, so we can test for that
instead.
* fix unit test
* Simplify `isDeviceVerified` definitions
Currently, we have two similar but different definitions of `isDeviceVerified`,
and they both do a lot of wrangling that relies on js-sdk internals. We can
simplify it a lot by just calling `MatrixClientPeg.checkDeviceTrust`.
* fix tests
* more test fixes
* Improve typing in constructor of RoomPermalinkCreator
* Provide via servers if present when navigating to predecessor room from Advanced Room Settings
* Show an error tile when the predecessor room is not found
* Test for MatrixToPermalinkConstructor.forRoom
* Test for MatrixToPermalinkConstructor.forEvent
* Display a tile for predecessor event if it contains via servers
* Fix missing case where event id is provided as well as via servers
* Refactor RoomPredecessor tests
* Return lost filterConsole to its home
* Comments for IState in AdvancedRoomSettingsTab
* Explain why we might render a tile even without prevRoom
* Guess the old room's via servers if they are not provided
* Fix TypeScript errors
* Adjust regular expression (hopefully) to avoid potential catastrophic backtracking
* Another attempt at avoiding super-liner regex performance
* Tests for guessServerNameFromRoomId and better implementation
* Further attempt to prevent backtracking
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* add /me handling
* use typeguards to avoid fighting TS
* improve clarity and use of typeguards
* add createMessageContent tests
* remove completed TODO
* improve comments
* remove duplication and renaming of argument
* pass handleCommand prop down and use it in WysiwygAutocomplete
* allow a command to generate a query from buildQuery
* port command functionality into the sendMessage util
* tidy up comments
* remove use of shouldSend and update comments
* remove console log
* make logic more explicit and amend comment
* uncomment replyToEvent block
* update util test
* remove commented out test
* use local text over import from current composer
* expand tests
* expand tests
* handle the FocusAComposer action for the wysiwyg composer
* remove TODO comment
* remove TODO
* test for action dispatch
* fix failing tests
* tidy up tests
* fix TS error and improve typing
* fix TS error
* amend return types for sendMessage, editMessage
* fix null content TS error
* fix another null content TS error
* use as to correct final TS error
* remove undefined argument
* try to fix TS errors for editMessage function usage
* tidy up
* add TODO
* improve comments
* update comment