Commit Graph

2594 Commits (3052025dd0770c0f2e35c83244224df99ca83a2f)

Author SHA1 Message Date
Andy Balaam df11b90fd6
Set up key backup using non-deprecated APIs (#12005) 2023-12-06 17:54:47 +00:00
maheichyk 74ea0d134e
Fix rejoin of knock rooms (#11980)
Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
Co-authored-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
2023-12-04 10:20:24 +00:00
Andy Balaam 926907309a
Stop displaying verification done messages in timeline (#11932)
* Stop displaying verification done messages in timeline

* i18n fixes
2023-12-01 09:12:38 +00:00
Andy Balaam f63160f384
Simplify display of verification requests in timeline (#11931)
* Simplify display of verification requests in timeline

* Comment explaining the purpose of MKeyVerificationRequest
2023-11-30 17:41:47 +00:00
Andy Balaam 8b7f49e74e
Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk (#11903)
* 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>
2023-11-29 13:36:52 +00:00
Andy Balaam c5377bc228
Prevent flaky Jest test by pre-loading WASM (#11975)
Fixes https://github.com/vector-im/element-web/issues/26650
2023-11-29 10:11:53 +00:00
Kerry 1ffa1c9c18
Fix: Space scope header overflow (#11933)
* fix spacing for scope header

* extract scope header into component, apply line clamp

* update ThirdPartyMemberInfo styles

* pass onClose to ThirdPartyRoomMemberInfo

* rethemendex

* add View3pidInvite to actions enum, replace uses

* extract out action handler

* push card instead, test

* comment

* reinstate data-testid

* fix typo in styles
2023-11-29 08:25:34 +00:00
Kerry cd985d6d6a
make room info button to open room details (#11951) 2023-11-28 21:15:21 +00:00
Andy Balaam e76a37e01f
Update tests in anticipation of matrix-js-sdk#3901 (#11956)
* Update tests in anticipation of matrix-js-sdk#3901

* Formatting
2023-11-28 13:59:03 +00:00
Timo 372737d075
Always allow call.member events on new rooms (#11948)
* 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>
2023-11-28 12:13:31 +00:00
Kerry 0bbb9e8c89
Right panel: view third party invite info without clearing history (#11934)
* add View3pidInvite to actions enum, replace uses

* extract out action handler

* push card instead, test

* comment
2023-11-27 22:30:57 +00:00
Michael Telatynski 6f50405e34
Default bundled emoji font to on (#11935)
* Update Settings.tsx

* Update tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshot

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update assertion

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-27 09:59:09 +00:00
Milton Moura 76b7aa2d33
Keep device language when it has been previosuly set, after a successful delegated authentication flow that clears localStorage (#11902)
* 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>
2023-11-24 15:51:28 +00:00
Michael Telatynski 6a6deea7d8
Fix js-sdk types for TImestampToEventResponse (#11928)
* Fix js-sdk types for TImestampToEventResponse

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update DateSeparator-test.tsx

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-24 11:40:07 +00:00
Michael Telatynski ee485ffcfd
Default to system emoji font (#11925)
* 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>
2023-11-23 13:04:05 +00:00
Timo b5178e3733
Fix misunderstanding of functional members (#11918)
* 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>
2023-11-22 12:08:16 +00:00
Michael Weimann ecc46aeb8c
Update open in other tab message (#11916) 2023-11-22 10:46:11 +00:00
Timo 6f715ab803
Add menu for legacy and element call in 1:1 rooms (#11910)
* 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>
2023-11-22 10:35:51 +00:00
Kerry 668e3a3bd9
Fix: Video Room Chat Header Button Removed (#11911)
* "@vector-im/compound-design-tokens": "^0.1.0"

* add chat button to room header for video rooms

* cleanup useEffect, comments

* comment
2023-11-21 21:28:54 +00:00
Timo a26c2d3c78
Add ringing for matrixRTC (#11870)
* 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>
2023-11-21 17:12:08 +00:00
Kerry 20fd1111c8
set disabled state on invite to room button in memberlist (#11893) 2023-11-21 01:43:32 +00:00
Michael Telatynski 2f0eb8fb05
Fix ended polls overlapping event bubbles (#11895)
* Fix ended polls overlapping event bubbles

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>
2023-11-20 17:27:54 +00:00
Johannes Marbach 9af4038fa0 Merge branch 'develop' into johannes/webpack-5 2023-11-20 09:42:39 +01:00
Richard van der Hoff 29ed91749e
EditWysiwygComposer-test: wait for the wasm to load in beforeAll (#11904) 2023-11-19 21:15:23 +00:00
Johannes Marbach d6ea051e46 Merge branch 'develop' into johannes/webpack-5 2023-11-16 18:59:39 +01:00
Germain f96583e74a
Update RoomSummaryCard navigation links (#11812)
* 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>
2023-11-16 03:25:34 +00:00
Kerry a3f0633037
Fix: align base card close button to the right always (#11861) 2023-11-13 21:57:20 +00:00
Johannes Marbach ccee4c9cdb Merge branch 'develop' into johannes/webpack5-workers 2023-11-13 15:43:50 +01:00
Valere 9595dbb015
Report crypto sdk in posthog (#11834)
* Report crypto sdk in posthog

* fix import

* do not use the setting as not live
2023-11-13 14:16:12 +00:00
Johannes Marbach 84d7d43a0d Load web workers in a way that Webpack 5 can bundle them 2023-11-11 16:03:08 +01:00
Germain 722c5ad493
Update room summary card header (#11823)
* 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>
2023-11-11 07:24:48 +00:00
Timo 62f41f0961
Add feature flag for disabling encryption in Element Call (#11837)
* 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>
2023-11-10 16:46:02 +00:00
Charly Nguyen 47a4e4a52a
Adapt the rendering of extra icons in the room header (#11835)
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
2023-11-09 11:23:30 +00:00
Timo 224b9171dd
Make video rooms compatible with matrix RTC (#11829)
* 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>
2023-11-07 12:29:05 +00:00
R Midhun Suresh 90419bdffd
Implement new unreachable state and fix broken string ref (#11748)
* 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
2023-11-07 10:14:30 +00:00
R Midhun Suresh 9bb50119c7
Fix broken Timeline panel jest test (#11827)
* Fix broken test

* Set localTimeStamp for each event
2023-11-03 14:36:06 +00:00
Andy Balaam f48cee238a
Fix a test that would otherwise be broken by matrix-js-sdk#3817 (#11826) 2023-11-02 15:41:45 +00:00
Charly Nguyen 01e7e01153
Allow adding extra icons to the room header (#11799)
* Allow adding extra icons to the room header

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>

* Apply PR feedback

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>
2023-11-01 12:03:10 +00:00
Timo 860764c057
Use new matrixRTC calling (#11792)
* 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>
2023-10-30 15:14:27 +00:00
Johannes Marbach c7c51d764f
Deserialise spoilers back into slash command form (#11805)
* Deserialise spoilers back into slash command form

Fixes: vector-im/element-web#26344

* Appease the linter
2023-10-26 13:35:02 +00:00
Florian Duros 48a89a236a
Element-R: Add current version of the rust-sdk and vodozemac (#11785)
* Add current version of the rust-sdk and vodozemac

* Use `CryptoAPI#getVersion` for old crypto

* Update i18n

* Fix test

* Remove wrong comment
2023-10-25 15:34:03 +00:00
Ole Wieners 4ff35f0471
Fix unfederated invite dialog (#9618)
* clarify error message for unfederated room invites

* hide external user suggesetions

* rename some descriptors

* fix i18n

* add warning for unfederated spaces

* i18n

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-25 10:08:10 +00:00
Germain f784a085fd
New right panel visual language (#11664)
* New right panel visual language

* Upgrade Compound

* Align old room header with right panel

* Rigth panel look and feel

* Fix linting and e2e tests

* Update snapshot

* Add test

* Lint

* Remove screenshot local script

* Update snapshots and UI based on feedback

* fix i18n key

* Update right panel visuals

* Fix tests

* lintfixes

* fix tests

* fix tests

* Add tests for search icon

* Fix invite dialog spec
2023-10-20 13:30:37 +00:00
Kerry 1d9c24e96e
OIDC: add friendly errors (#11184)
* 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>
2023-10-19 02:46:37 +00:00
Michael Telatynski 4ff307b562
Iterate `io.element.late_event` decoration (#11760)
* 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>
2023-10-17 12:31:41 +00:00
Michael Telatynski fd08e74275
Avoid error when DMing oneself (#11754)
* 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>
2023-10-17 09:37:08 +00:00
Michael Telatynski 5ff965106a
Render timeline separator for late event groups (#11739)
* 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>
2023-10-16 14:14:04 +00:00
Kerry d9d52fba8c
OIDC: use delegated auth account URL from `OidcClientStore` (#11723)
* 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>
2023-10-15 23:03:25 +00:00
Kerry 84ca519b3f
OIDC: revoke tokens on logout (#11718)
* 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>
2023-10-15 21:35:25 +00:00
Michael Telatynski fe3ad78a02
Show `io.element.late_event` in MessageTimestamp when known (#11733)
* 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>
2023-10-14 12:25:36 +00:00
Michael Telatynski 4605fd7396
Use Compound tooltips on MessageTimestamp to improve UX of date time discovery (#11732)
* 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>
2023-10-13 11:26:12 +00:00
Michael Telatynski 255f0f59f5
Disable upgraderoom command without developer mode enabled (#11744)
* Disable upgraderoom command without developer mode enabled

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-13 09:48:32 +00:00
Michael Telatynski bdf2ebd301
Avoid rendering app download buttons if disabled in config (#11741)
* 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>
2023-10-13 09:43:39 +00:00
Germain 9ea04a539b
Add data attribute to know what header is used (#11735)
* Add data attribute to know what header is used

* Simplify room header type

* update snapshot
2023-10-12 13:17:51 +00:00
renovate[bot] 3bd6dd9143
Update vector-im (#11621)
* Update vector-im

* Update snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-12 11:12:59 +00:00
Manan Sadana 7dc40e6613
Fix: <detail> HTML elements clickable area too wide. (#11666)
* 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>
2023-10-12 08:50:49 +00:00
Kerry 3a025c4b21
OIDC: refresh tokens (#11699)
* 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>
2023-10-12 00:49:07 +00:00
Kerry 5d169afb8a
OIDC: register (#11727)
* update uses of ValidatedDelegatedAuthConfig to broader OidcClientConfig type

* add OIDC register flow to registration page

* pass prompt param to auth url creation

* update type

* lint

* test registration oidc button

* fix: reference state inside setState

* comment
2023-10-11 21:44:46 +00:00
Germain ac32d45bcd
Usability fixes for new room header (#11729)
* Usability fixes for new room header

* lintfix

* Apply padding to both heading and topic

* lintfix

* comment clarity

* Remove title attr
2023-10-11 14:43:01 +00:00
Florian Duros 71f2104632
Element-R: Use `MatrixClient.CryptoApi.getUserVerificationStatus` instead of `MatrixClient.checkUserTrust` in `UserInfo.tsx` (#11709)
* 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`
2023-10-11 11:45:02 +00:00
Manan Sadana 54fa9a572e
Fix: Clicking on members pile does nothing. (#11657)
* 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>
2023-10-06 06:54:25 +00:00
Andy Balaam 9efa458b68
Unflake JoinRuleSettings test (#11715)
* 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
2023-10-05 03:30:57 +00:00
Florian Duros d40092c9da
Element-R: Use `MatrixClient.CryptoApi.getUserVerificationStatus` instead of `MatrixClient.checkUserTrust` in `MemberTile.tsx` (#11701)
* Use `MatrixClient.CryptoApi.getUserVerificationStatus` instead of `MatrixClient.checkUserTrust` in `MemberTile.tsx`

* Add tests to `MemberTile.tsx`

* Use `mocked` instead of `spyOn`
2023-10-04 13:01:39 +00:00
Kerry feb7e9899b
OIDC: persist id token claims (#11691)
* persist idTokenClaims

* tests

* remove unused cde
2023-10-04 05:06:04 +01:00
Michael Telatynski e1cfde0c6e
Migrate more strings to translation keys (#11694) 2023-10-03 19:17:26 +01:00
Will Hunt 677854d318
Fix start_sso / start_cas URLs failing to redirect to a authentication prompt (#11681)
* Show screen before login if using start_sso or start_cas

* Add tests

* Fix lint

* Fix lint

* Add one for CAS

* prettier
2023-10-03 15:19:54 +00:00
Hugh Nimmo-Smith 4fd8ab933a
Use stable get_login_token and remove unstable MSC3882 support (#11001)
* Support for stable MSC3882 get_login_token

* Fix unstable name type

* Remove tests for unstable MSC3882

* Fix up tests
2023-10-03 12:15:41 +00:00
Michael Telatynski 632d8f4bc7
Update custom translations to support nested fields in structured JSON (#11685)
* Update matrix-web-i18n

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix custom translations for structured JSON nested fields

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix import

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix export

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update @matrix-org/react-sdk-module-api

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Delint

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update matrix-web-i18n

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update matrix-web-i18n

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-02 10:44:25 +00:00
R Midhun Suresh 9a76d6b9a3
Locallazy: Convert even more strings (#11679)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-02 11:43:00 +01:00
Michael Telatynski e0f4b26512
Remove focus-visible polyfill (#11677)
* Remove focus-visible polyfill

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-28 11:52:26 +00:00
Hugh Nimmo-Smith 8442f1cf10
Use .well-known to discover a default rendezvous server for use with Sign in with QR (#11655) 2023-09-28 09:37:44 +00:00
Kerry ef5a93b702
OIDC: retrieve `refreshToken` from storage (#11250)
* 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
2023-09-28 04:38:31 +00:00
Michael Telatynski fa377cbade
Migrate more strings to translation keys (#11672) 2023-09-27 17:15:22 +01:00
Kerry 0d367a7c7e
Fix: sync intentional mentions push rules with legacy rules (#11667)
* fix monitorSyncedPushRules when primary rule is disabled

* sync intentional mentions rules

* remove debug log
2023-09-27 00:03:38 +00:00
Michael Telatynski 4d0d024e86
Migrate more strings to translation keys (#11671) 2023-09-26 18:35:55 +01:00
Michael Telatynski 5252361d1e
Migrate more strings to translation keys (#11669) 2023-09-26 13:04:17 +01:00
Andy Balaam 875fcb1a32
Merge pull request #11634 from matrix-org/germain-gg/facepile-offset
Revert "Fix regression around FacePile with overflow (#11527)"
2023-09-26 09:49:37 +01:00
Michael Telatynski 54c88c57ed
Migrate more strings to translation keys (#11665) 2023-09-25 18:12:41 +01:00
Michael Telatynski 0f59298f30
Consolidate conjugation i18n strings (#11660) 2023-09-25 12:18:15 +01:00
Germain d99618263a
Merge branch 'develop' into germain-gg/facepile-offset 2023-09-25 11:33:28 +01:00
Michael Telatynski f4d056fd38
Migrate more strings to translation keys (#11651) 2023-09-22 16:39:40 +01:00
Richard van der Hoff 6fd46f3bc8
`CreateSecretStorageDialog`: stop using deprecated APIs (#11635)
* Add some tests for `CreateSecretStorageDialog`

* CreateSecretStorageDialog: stop using deprecated APIs
2023-09-22 11:03:05 +00:00
Richard van der Hoff 11f258e62e
`SecureBackupPanel`: stop using deprecated APIs, and other fixes (#11644)
* 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
2023-09-22 10:57:11 +00:00
Germain 899cc53a3e upgrade snapshots 2023-09-22 09:35:36 +01:00
Dominik Henneke 60bed46014
Add an action to upload media files according to MSC4039 (#11311)
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
2023-09-21 19:03:22 +00:00
Richard van der Hoff 902aea8bc4
LogoutDialog: Remove usage of deprecated keybackup API (#11645)
* tests for LogoutDialog

* LogoutDialog: Remove usage of deprecated keybackup API
2023-09-21 18:34:10 +00:00
Richard van der Hoff c879882558
Don't start key backups when opening settings (#11640)
* 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
2023-09-21 12:19:38 +00:00
Germain fc9caa3269
Linkify room topic (#11631) 2023-09-20 11:51:15 +00:00
Richard van der Hoff 51ec7f04b4
DeviceListener: Remove usage of deprecated keybackup API (#11614)
Primarily this means calling `CryptoApi.getActiveSessionBackupVersion` instead
of `MatrixClisnt.getKeyBackupEnabled`
2023-09-20 11:34:18 +00:00
Michael Telatynski 5cb8cbd893
Migrate more strings to translation keys (#11613) 2023-09-19 17:16:38 +01:00
maheichyk 86e86ba49f
Show knock rooms in the list (#11573)
* Show knock rooms in the list

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Pass userId to IndexedDBStore

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Revert "Pass userId to IndexedDBStore"

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Code review changes

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

---------

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
Co-authored-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
2023-09-19 11:24:35 +00:00
Michael Telatynski c839123b83
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/cr/72
# Conflicts:
#	src/components/views/rooms/RoomHeader.tsx
#	test/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap
2023-09-19 10:36:29 +01:00
Johannes Marbach 3fbf38f17d
Escape placeholder before injecting it into the style (#11607)
* Escape placeholder before injecting it into the style

In particular this adds escaping for backslashes which was previously missing.

* Update snapshots

* Add tests
2023-09-19 05:58:53 +00:00
Kerry 46072caa3a
OIDC: persist refresh token (#11249)
* 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>
2023-09-19 00:06:19 +00:00
Richard van der Hoff cf2340bcad
Replace event verification logic with new code in js-sdk (#11528)
* 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>
2023-09-18 17:12:18 +00:00
Florian Duros 579b0dd10a
ElementR: Cross user verification (#11364)
The hard work has been done in previous PRs in the js-sdk, so this is now just a case of updating a few call sites to use the new APIs.
2023-09-18 17:34:00 +01:00
RMidhunSuresh 2f69013f6d
Merge branch 'develop' into germain-gg/notifications-labs 2023-09-15 16:28:59 +05:30
Johannes Marbach 3608d52c4a
Default intentional mentions (#11602)
* Default intentional mentions

* wait for autocomplete to settle before submitting edit

* lint

* Update strings

---------

Co-authored-by: Kerry Archibald <kerrya@element.io>
2023-09-14 11:36:15 +00:00
Michael Telatynski e301fe474b
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/cr/72
# Conflicts:
#	test/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap
2023-09-14 11:33:22 +01:00
RMidhunSuresh 1ba419fe11
Merge branch 'develop' into germain-gg/notifications-labs 2023-09-14 12:14:08 +05:30