Commit graph

18566 commits

Author SHA1 Message Date
Michael Telatynski
26b0e83ac4
Replace composer icons with Compound variants (#123)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-04 12:42:23 +00:00
Michael Telatynski
7ef8663388
Prefer wrapped Compound React icon assets (#122)
* Prefer wrapped Compound React icon assets

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

* Add eslint rule for CDT svg imports

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

* Update snapshots

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

* Fix height

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

* Iterate

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>
2024-10-04 12:42:15 +00:00
Michael Telatynski
0a9b4aecd3
Tweak default right panel size to be 320px except for maximised widgets at 420px (#110)
* Add extra buttons to room summary card

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

* Remove right panel tabs in favour of X button on each panel

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

* Update room summary card header to align close button correctly

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

* Fix typo in pinned messages heading

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

* Update snapshots

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

* Update tests

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

* Iterate

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

* Update snapshots

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

* Update screenshot

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

* Improve coverage

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

* Tweak default right panel size to be 320px except for video rooms/maximised widgets at 420px

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

* Iterate

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

* Update tests

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

* Update snapshots

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

* Track panel resizing in analytics

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

* Fix import cycle

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

* Update screenshots

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

* Improve coverage

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

* Fix tests

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

* Update snapshot

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

* Update test/components/structures/MainSplit-test.tsx

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2024-10-04 09:41:00 +00:00
Florian Duros
70418f8f3d
Add a pinned message badge under a pinned message (#118)
* Add pinned message badge for Modern Layout

* Add Bubble layout support

* Add thread support

* Add irc support

* Rename event tile badges

* Don't render footer when there is no reactions

* Add a test for `PinnedMessageBadge.tsx`

* Add a test in EventTile-test.tsx

* Add e2e test
2024-10-04 07:11:37 +00:00
Michael Telatynski
2dbaf00e71
Ditch right panel tabs and re-add close button (#99)
* Add extra buttons to room summary card

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

* Remove right panel tabs in favour of X button on each panel

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

* Update room summary card header to align close button correctly

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

* Fix typo in pinned messages heading

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

* Update snapshots

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

* Update tests

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

* Iterate

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

* Update snapshots

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

* Update screenshot

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

* Improve coverage

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

* i18n

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

* Fix base card title colours

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>
2024-10-03 08:59:41 +00:00
David Baker
67cb8b7590
Force verification even for refreshed clients (#44)
* Force verification even for refreshed cients

Set a flag on login to remember that the device needs to be verified
so that we don't forget if the user refreshes the page, but still allow
user with an existing unverified session to stay logged in.

* Hopefully make matrixchat tests pass?

Much, much tweaking to make the matrixchat tests pass again. Should
hopefully make them a bit more solid in general with judicious use of
waitFor rather than flushPromises(). Also lots of fun to stop the state
bleeding between tests.

* Manual yarn.lock manipulation

to hopefully resolve infinite package sadness

* Make final test pass(?)

Mock out the createClient method to return the same client, because
we've mocked the peg to always return that client, so if we let the
code make another one having still overridden the peg, everything becomes
cursed.

Also mock out the autodiscovery stuff rather than relying on fetch-mock.

* another waitFor

* death to flushPromises

* Put the logged in dispatch back

Actually it breaks all sorts of other things too, having fixed all the
MatrixChat tests (although this is useful anyway).

* Try displaying the screen in onClientStarted instead

* Put post login screen back in logged in

but move ready transition to avoid flash of main UI

* Rejig more in the hope it does the right thing

* Make hook work before push rules are fetched

* Add test for unskippable verification

* Add test for use case selection

* Fix test

* Add playwright test for unskippable verification

* Remove console log

* Add log message to log line

* Add tsdoc

* Use useTypedEventEmitter

* Remove commented code

* Use catch instead of empty then on unawaited promises

or in one case just await it because the caller was async anyway

* Add new mock
2024-10-03 08:55:06 +00:00
Michael Telatynski
9895a8fb4f
Disable ICE fallback based on well-known configuration (#111)
* Refactor MatrixClientBackedController.ts

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

* Disable ICE fallback based on well-known configuration

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>
2024-10-02 14:08:15 +00:00
Michael Telatynski
8a263ac1b0
Remove legacy room header and promote beta room header (#105)
* Remove legacy room header and promote beta room header

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

* Tidy up

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

* Remove unused component

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

* Prune i18n

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-02 12:10:58 +00:00
Michael Telatynski
5d9996c281
Use Compound close icon in favour of mishmash of x/close icons (#108)
* Use Compound close icon in favour of mishmash of x/close icons

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

* Update snapshots

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

* Remove stale CSS

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

* Iterate

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

* Update snapshot

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-02 10:06:17 +00:00
Michael Telatynski
f33e802627
Fix untranslated keys being rendered in /help dialog (#90)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-01 12:33:07 +00:00
Michael Telatynski
33c900e307
Remove right panel toggling behaviour on room header buttons (#100)
* Remove right panel toggling behaviour on room header buttons

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

* Remove stale test

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

* Fix tests

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-30 16:36:24 +00:00
Robin
bd793a0970
Allow joining calls and video rooms without enabling the labs flags (#95)
Since Element Call has now reached production on Element X, Element Web needs to be able to at least participate in group calls. Starting a group call or creating a video room will still require the labs flags, for now.

Note that Jitsi-based video rooms are also affected by this change. This is not because we intend to delabs them (rather, we intend to get rid of them in favor of Element Call video rooms), but because it's easiest to handle both video room variants consistently.
2024-09-30 14:07:53 +00:00
Michael Telatynski
4f391645e7
Ensure timeline search results are visible even in video rooms (#96)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-30 13:50:17 +00:00
Richard van der Hoff
f28f1d998f
Improve error display for messages sent from insecure devices (#93)
* Add labs option to exclude unverified devices

Add a labs option which will, when set, switch into the "invisible crypto"
mode of refusing to send keys to, or decrypt messages from, devices that have
not been signed by their owner.

* DecryptionFailureBody: better error messages

Improve the error messages shown for messages from insecure devices.

* playwright: factor out `createSecondBotDevice` utility

* Playwright test for messages from insecure devices

* fixup! DecryptionFailureBody: better error messages

Use compound colour tokens, and add a background colour.

* fixup! DecryptionFailureBody: better error messages

Use compound spacing tokens
2024-09-30 12:39:25 +00:00
Michael Telatynski
ef9e310a25
Pop right panel timeline when unmaximising widget to avoid double timeline (#94)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-27 14:10:33 +00:00
Michael Telatynski
34d1875534
Open room settings on room header avatar click (#88)
* Open room settings on room header avatar click

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

* Fix nested interactive elements aria fail

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

* Update things for a11y and update snapshots

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

* Fix tests

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

* Iterate tests

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-26 10:14:53 +00:00
Michael Telatynski
dd7479accb
Merge branch 'develop' of github.com:element-hq/matrix-react-sdk into t3chguy/wat/230.1
# Conflicts:
#	src/components/views/settings/CryptographyPanel.tsx
#	test/components/views/settings/tabs/user/__snapshots__/SecurityUserSettingsTab-test.tsx.snap
2024-09-25 17:02:32 +01:00
Michael Telatynski
ad94c39e50
Fix accessible label on left panel spotlight trigger (#87)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-25 10:01:38 +00:00
Richard van der Hoff
2e895da39f
Crypto: fix display of device key (#86)
* CryptographyPanel: fix display of device key

* CryptographPanel: Fix HTML nesting

you're not supposed to put <tr> directly inside <table>; doing so causes
warnings.

* Update tests
2024-09-24 15:48:37 +00:00
Michael Telatynski
3620c5ac62
Merge branch 'develop' into t3chguy/wat/230.1 2024-09-24 10:34:36 +01:00
David Langley
1f5571062e
Mobile registration optimizations and tests (#62)
* Mobile registration optimizations

- don't autocaptialize or autocorrect on username field
- show each password field in their own row
- improve position of tooltip on mobile so that it's visible

* Use optional prop rather than default prop.

* Redirect to welcome screen if mobile_registration is requested but not enabled in the config.

* autocorrect value should be "off"

* Add unit tests for mobile registration

* Fix test typo

* Fix typo
2024-09-20 11:24:39 +00:00
Florian Duros
fe657027bd
Update to use non deprecated methods to decode recovery key (#54)
* Replace `MatrixClient.keyBackupKeyFromRecoveryKey` by `decodeRecoveryKey`

* Replace `MatrixClient.isValidRecoveryKey` by local check with `decodeRecoveryKey`

* Replace old `decodeRecoveryKey` import

* Remove `matrix-js-sdk/src/crypto/recoverykey` import of  eslint exception

* Add tests for `RestoreKeyBackupDialog`
2024-09-19 15:39:20 +00:00
Florian Duros
4776f87775
Ignore chat effect when older than 48h (#48)
* Ignore effect later than 48h

* Add tests for `EffectsOverlay-test.tsx`
2024-09-19 09:39:32 +00:00
David Langley
154bf33fa1
Manually clear orphaned recaptcha challenge overlay in android webviews (#53)
* try manually clear any left over recaptcha overalys

* add alert to debug webview

* disable settings check for netlify build

* Update fix for removing challenge, as g-recaptcha-bubble-arrow is now always shown

* Remove alert for debugging webview

* Put back requirement for config setting and make sure it redirects to welcome if not present.

* Add comment to explain bodge.

* Remove unrelated code
2024-09-18 16:56:18 +00:00
Michael Telatynski
7feb5a0b49
Merge branch 'develop' into t3chguy/wat/230.1 2024-09-18 11:21:55 +01:00
Florian Duros
13e67ae0eb
Add Release announcement for the pinning message list (#46)
* Add RA for the pinning message list

* Update RoomSummaryCard-test.tsx snapshot

* Update RA labels
2024-09-18 09:26:17 +00:00
Florian Duros
59852773ad
Unlabs feature pinning (#22) 2024-09-16 14:51:59 +00:00
David Langley
20a4f0af99 Enforce config setting 2024-09-16 15:16:24 +01:00
David Langley
3d89fc3bf2 Merge branch 'develop' of https://github.com/element-hq/matrix-react-sdk into langleyd/mobile_registeration 2024-09-16 13:46:33 +01:00
David Langley
62d66f9d91 Remove accidental paste 2024-09-13 16:59:50 +01:00
David Langley
0716434aa1 Allow hs_url as param on mobile_register 2024-09-13 16:59:11 +01:00
David Langley
a89f61a357 Add error text and title with server name 2024-09-13 14:48:48 +01:00
Michael Telatynski
be59791db1
Add support for org.matrix.cross_signing_reset UIA stage flow (#34)
* Soften UIA fallback postMessage check to work cross-origin

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

* Do the same for the SSO UIA flow

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

* Add support for `org.matrix.cross_signing_reset` UIA stage flow

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

* Check against MessageEvent::source instead

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

* i18n

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

* Add tests

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

* Remove protected method

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-13 11:49:19 +00:00
David Langley
0244aaeb2f use window.dispatchEvent 2024-09-13 12:18:32 +01:00
David Langley
a6dec86374 Add mobile registration and dispatch event for mobile postmessage dance 2024-09-13 12:12:04 +01:00
Michael Telatynski
a6e98b0b63
Use strong over b for improved a11y semantics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-09-13 12:09:41 +01:00
Will Hunt
eae9d9e248
Add timezone to user profile (#20)
* [create-pull-request] automated change (#12966)

Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>

* Add timezone to right panel profile.

* Add setting to publish timezone

* Add string for timezone publish

* Automatically update timezone when setting changes.

* Refactor to using a hook

And automatically refresh the timezone every minute.

* Check for feature support for extended profiles.

* lint

* Add timezone

* Remove unintentional changes

* Use browser default timezone.

* lint

* tweaks

* Set timezone publish at the device level to prevent all devices writing to the timezone field.

* Update hook to use external client.

* Add test for user timezone.

* Update snapshot for preferences tab.

* Hide timezone info if not provided.

* Stablize test

* Fix date test types.

* prettier

* Add timezone tests

* Add test for invalid timezone.

* Update screenshot

* Remove check for profile.

---------

Co-authored-by: ElementRobot <releases@riot.im>
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-09-12 13:18:25 +00:00
Florian Duros
f31776378d
Reverse pinned message list (#19) 2024-09-12 12:43:07 +00:00
David Baker
a701e3afd7
Add config option to force verification (#29)
* Add config option to force verification

If this is set, users will not have the option to skip verification
on login (they will still be able to reload and continue unverified,
currently). Default off.

* Test for complete security dialog

* I hadn't set up prettier
2024-09-11 20:55:00 +00:00
Richard van der Hoff
433c14e5a9
Log clearer errors when picklekey goes missing (#27)
* tokens.ts: improve documentation

Improve variable naming and documentation on the methods in `tokens.ts`.

* rename restoreFromLocalStorage

Since the session data isn't actually stored in localstorage, this feels like a
misleading name.

* Lifecycle: bail out if picklekey is missing

Currently, if we have an accesstoken which is encrypted with a picklekey, but
the picklekey has gone missing, we carry on with no access token at all. This
is sure to blow up in some way or other later on, but in a rather cryptic way.

Instead, let's bail out early.

(This will produce a "can't restore session" error, but we normally see one of
those anyway because we can't initialise the crypto store.)
2024-09-11 15:13:04 +00:00
Florian Duros
07125f554d
Remove release announcement of new header (#23) 2024-09-11 09:17:44 +00:00
David Langley
491f0cd08a
Change license (#13)
* Copyright headers 1

* Licence headers 2

* Copyright Headers 3

* Copyright Headers 4

* Copyright Headers 5

* Copyright Headers 6

* Copyright headers 7

* Add copyright headers for html and config file

* Replace license files and update package.json

* Update with CLA

* lint
2024-09-09 13:57:16 +00:00
David Baker
f8da257769 Update repos for changelog fetching 2024-09-06 14:08:23 +01:00
Florian Duros
08d1b6ceae
Add analytics event for pinned messages 2024-09-05 16:56:18 +02:00
Florian Duros
5bfbca9eb0
Migrate all pinning checks and actions into PinningUtils (#12964) 2024-09-05 14:37:24 +00:00
Richard van der Hoff
649074273e
Log phases in the verification process (#12963)
When the EncryptionPanel (which does the work of the verification flow) changes
"phase", log it. I hope this will be helpful when diagnosing stuck
verifications.
2024-09-05 09:34:39 +00:00
Sahil Silare
cdffbdb81a
Add error handling for room publish toggle (#12941)
* feat: added error handling for room publish toggle

* chore: fixed the messages and removed `console.log`

* chore: added minor comment that was removed

* fix: addressed review comments

* fix: fixed linting
2024-09-05 09:01:10 +00:00
Florian Duros
1e3320da1e
Pinned message list: prevent sender name to overflow pinned event tile (#12947)
* Prevent sender name to overflow pinned event tile

* Add tooltip to display the sender name
2024-09-04 09:45:18 +00:00
Florian Duros
60fe70b3cc
Add a prefix to file, poll, image, video and audio in the pinned message banner (#12950)
* Move event preview to its own component

* Remove unused parameter

* Add prefix to file, audio, video and image in the pinned message banner

* Add prefix to poll in the pinned message banner

* Add tests
2024-09-04 09:07:19 +00:00
David Baker
6bfdb3e16b
Fix read receipt animation (#12923)
* Fix read receipt animation

The way it was done involved remembering dom nodes and then getting
their position later when animating the receipt to its next position,
but I'm not sure how this worked since the DOM node may not neccessarily
be in the DOM anymore. Instead, just remember the bounding box coordinates.
At worst it might go weird if the window is resized but seems fine in
practice. Also, keeping references to dom nodes feels like a fast road
to memory leaks.

Fixes https://github.com/element-hq/element-web/issues/27916

* Attempt to write a test for read receipts

and fix naming

* Another test

also change a condition to make it testable
2024-09-03 11:59:30 +00:00