Commit graph

33912 commits

Author SHA1 Message Date
Suguru Hirahara
0d2af83dbe
Add E2E test: invite-dialog.spec.ts (#10693)
* Add `invite-dialog.spec.ts`

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Apply the latest status

The ARIA role of the buttons in 'mx_HeaderButtons' was recently changed from 'tab' to 'button'

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

---------

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-05-04 13:09:26 +00:00
Kerry
692d73dfe8
Use semantic headings in user settings Help & About (#10752)
* 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
2023-05-03 22:35:43 +00:00
Kerry
37b7dfe943
use ExternalLink components for external links (#10758)
* use ExternalLink components for external links

* test

* strict
2023-05-03 21:26:26 +00:00
Richard van der Hoff
42e6c9839c
Replace remaining use of checkDeviceTrust (#10716)
* Fix remaing use of `checkDeviceTrust`

Followup to #10663

* fix strict type-checking error
2023-05-03 14:02:58 +00:00
Suguru Hirahara
af3a0e3d59
Update some class names of AppTile (AppTileMenuBar_iconButton) on the naming policy (#10778) 2023-05-03 12:42:36 +00:00
Suguru Hirahara
62569e209e
Remove unused prop from ResizeHandle - reverse (#10771)
It was added by 928b6d47c8 and soon deprecated by e5d1b3328c
2023-05-03 12:25:33 +00:00
Suguru Hirahara
9b7e7864c9
Merge styles of _EmailAddresses.pcss and _PhoneNumbers.pcss (#10679)
* Rename: `mx_ExistingPhoneNumber_*` to `mx_PhoneNumber--existing_*`

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Rename: `mx_ExistingEmailAddress_*` to `mx_EmailAddress--existing_*`

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Merge styles for maitainability: `mx_GeneralUserSettingsTab_discovery_existing_*`

`mx_EmailAddress--existing_*` and `mx_PhoneNumber--existing_*` adopt the same declarations, so maintaining them with common selectors should improve the maintainability.

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com

* Rename: `mx_EmailAddress--existing_*` and `mx_PhoneNumber--existing_*` to `mx_GeneralUserSettingsTab_discovery_existing_*`

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove empty selectors

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove a duplicate selector: `.mx_GeneralUserSettingsTab_discovery--existing`

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Rename the button

The button with the class name 'mx_GeneralUserSettingsTab_discovery_existing_button' is used for various types of action, so 'confirm' seems to be a bit misleading.

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Include: `mx_GeneralUserSettingsTab_discovery_existing_*`

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Run prettier

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* lint

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Review

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

---------

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com
2023-05-03 11:34:32 +00:00
Kerry
5a73d8e1b0
Use semantic headings in space settings (#10751)
* 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
2023-05-03 01:55:55 +00:00
Kerry
4736f0e44c
Use semantic headings for room settings content (#10734)
* split SettingsSection out of SettingsTab, replace usage

* correct copyright

* use semantic headings in GeneralRoomSettingsTab

* use SettingsTab and SettingsSubsection in room settings

* fix VoipRoomSettingsTab
2023-05-02 21:14:36 +00:00
Kerry
58c942be45
split SettingsSection out of SettingsTab, replace usage (#10735)
* split SettingsSection out of SettingsTab, replace usage

* correct copyright

* fix VoipRoomSettingsTab
2023-04-30 22:37:40 +00:00
Michael Weimann
35376996b0
Revert "Implement new toast UI (#10467)" (#10740)
This reverts commit 7632f36624.
2023-04-28 14:56:26 +00:00
Michael Telatynski
f819853cad
Fix autocomplete not resetting properly on message send (#10741) 2023-04-28 13:31:02 +00:00
Michael Telatynski
0d1020c66f
Fix start_sso not working with guests disabled (#10720)
* Fix start_sso not working with guests disabled

* Remove confusing prop
2023-04-28 10:16:07 +00:00
David Baker
4c72cceb70
Fix soft crash with Element call widgets (#10684)
There was a race condition somewhere which would cause a soft crash
of the whole app because WidgetPip here gets the currently active
widget given a widget ID and room, but this can race and be null.

Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2023-04-28 08:13:26 +00:00
Michael Telatynski
1281c0746b
Conform more of the codebase to strictNullChecks (#10731) 2023-04-28 09:45:36 +01:00
Michael Telatynski
457c1d011a
Add UIFeature.locationSharing to hide location sharing (#10727)
* Add UIFeature.locationSharing to hide location sharing

* Iterate
2023-04-28 07:46:33 +00:00
Michael Weimann
d084c34ea2
Send correct receipt when marking a room as read (#10730) 2023-04-28 06:07:25 +00:00
Suguru Hirahara
326e217d3f
Enable Jest and Percy snapshots for PreferencesUserSettingsTab (#10701)
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-04-27 18:11:48 +00:00
Michael Telatynski
f5d05f3284
Memoize field validation results (#10714)
* Memoize field validation results

* Make validation memoization opt-in
2023-04-27 11:34:02 +00:00
Michael Telatynski
a629ce3a53
Use generics to better type TabbedView (#10726) 2023-04-27 12:55:29 +01:00
Michael Telatynski
96bcfc58aa
Fix error about being unable to pass ref to function component (#10707) 2023-04-27 09:46:39 +00:00
Michael Telatynski
e1f7b0af2c
Offload some more waveform processing onto a worker (#9223) 2023-04-27 11:02:20 +01:00
alunturner
ca25c8f430
Commands for plain text editor (#10567)
* 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>
2023-04-27 07:37:47 +00:00
Michael Telatynski
0a22ed90ef
Consolidate login errors (#10722) 2023-04-27 09:05:31 +01:00
Kerry
223892bf0e
Bail out of RoomSettingsDialog when room is not found (#10662)
* 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
2023-04-27 01:20:02 +00:00
Michael Telatynski
2b3e0b47ba
Fix all rooms search generating permalinks to wrong room id (#10625)
* 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>
2023-04-26 17:35:20 +00:00
Florian Duros
5328f6e5fe
Element-R: Populate device list for right-panel (#10671)
* 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
2023-04-26 10:23:32 +00:00
Michael Telatynski
6166dbb661
Make existing and new issue URLs configurable (#10710)
* Make existing and new issue URLs configurable

* Apply a deep merge over sdk config to allow sane nested structures

* Defaultize

* Fix types

* Iterate

* Add FeedbackDialog snapshot test

* Add SdkConfig snapshot tests

* Iterate

* Fix tests

* Iterate types

* Fix test
2023-04-26 09:36:00 +00:00
Michael Telatynski
e4610e4672
Posthog properly handle Analytics ID changing from under us (#10702)
* Posthog properly handle Analytics ID changing from under us

* Update tests
2023-04-26 08:03:35 +00:00
Michael Weimann
857e22f943
Fix condition of logging possible room list corruption (#10685)
* Revert condition of logging possible room list corruption

* Fix loop condition
2023-04-26 07:57:33 +00:00
Michael Telatynski
8783021e53
Fix Clock being read as an absolute time rather than duration (#10706)
* Fix Clock being read as an absolute time rather than duration

* Round durations and update snapshots
2023-04-25 17:10:46 +01:00
Michael Telatynski
a1a087f755
Fix usages of ARIA tabpanel (#10628)
* 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
2023-04-25 09:31:54 +01:00
Michael Telatynski
961b843662
Merge pull request from GHSA-xv83-x443-7rmw
* Escape HTML for plaintext search results

* Add tests
2023-04-25 09:30:32 +01:00
Michael Telatynski
619a9e8542
Conform more of the codebase with strictNullChecks (#10703) 2023-04-25 09:28:48 +01:00
Florian Duros
db40479910
Element-R: Starting a DMs with a user (#10673)
* 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
2023-04-24 14:19:08 +00:00
Richard van der Hoff
d7bb8043ea
Replace uses of checkDeviceTrust with getDeviceVerificationStatus (#10663)
matrix-org/matrix-js-sdk#3287 and matrix-org/matrix-js-sdk#3303 added a new API called getDeviceVerificationStatus. Let's use it.
2023-04-24 14:19:46 +01:00
Andy Balaam
aa8c0f5cc7
Honour feature toggles in guest mode (#10651)
* 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.
2023-04-24 10:02:17 +00:00
Tulir Asokan
2486e7a90a
Fix default content in devtools event sender (#10699)
It regressed from `{\n\n}` to an empty string in #10391

Signed-off-by: Tulir Asokan <tulir@maunium.net>
2023-04-24 08:24:28 +00:00
Eric Eastwood
16ab5e9db0
Properly translate errors in ChangePassword.tsx so they show up translated to the user but not in our logs (#10615)
* Properly translate errors in `ChangePassword.tsx`

So they show up translated to the user but not in our logs.

Part of https://github.com/vector-im/element-web/issues/9597 and also fixes it
since it's the last piece mentioned (there could be other cases we log translated strings)

Fix https://github.com/vector-im/element-web/issues/9597

* Make more useful

* Update i18n strings

* No need to checkPassword since field validation already covers this

See https://github.com/matrix-org/matrix-react-sdk/pull/10615#discussion_r1167363765

Both of the error cases are covered by the logic in `verifyFieldsBeforeSubmit()` just above
and there is no way `checkPassword` would ever throw one of these errors since they are
already valid by the time it reaches here.

* Update i18n strings

* Revert "No need to checkPassword since field validation already covers this"

This reverts commit 7786dd151028e6fbf04d1a38a9c2cd47a3fbfc4b.

* Update i18n strings

* Add todo context to note that we can remove this logic in the future

* Ensure is an error

* Remove else

See https://github.com/matrix-org/matrix-react-sdk/pull/10615#discussion_r1173477053
2023-04-24 09:41:09 +01:00
Michael Telatynski
96c8267f71
Improve types to match reality (#10691) 2023-04-24 07:29:01 +00:00
Robin
7c4d0ceddc
Fix a crash when a call ends while you're in it (#10681) 2023-04-21 13:54:27 +00:00
Suguru Hirahara
64997e6f69
Remove obsolete mx_InviteDialog_transferButton class (#10687)
The class has been introduced by 2cc6bcec29be908ac45bf181272e2542aadd73f9 ("Much theming & visual of transfer window dial pad"), and removed by c829cb948031f83d1422867ff54af9ebc2047ba9 ("Use flexbox to layout buttons") from _InviteDialog.scss on the same PR. The class has not used anywhere else since then.

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-04-21 13:24:40 +00:00
Michael Telatynski
fdfe800b2c
Fix lack of screen reader indication when triggering auto complete (#10664) 2023-04-21 09:49:05 +00:00
Michael Telatynski
be5928cb64
Conform more of the codebase to strictNullChecks (#10672)
* Conform more of the codebase to `strictNullChecks`

* Iterate

* Iterate

* Iterate

* Iterate

* Conform more of the codebase to `strictNullChecks`

* Iterate

* Update record key
2023-04-21 11:50:42 +01:00
Michael Telatynski
792a39a39b
ARIA Accessibility improvements (#10675)
* Fix confusing tab indexes in EventTilePreview

* Stop using headings inside buttons

* Prefer labelledby and describedby over duplicated aria-labels

* Improve semantics of tables used in settings

* Fix types

* Update tests

* Fix timestamps
2023-04-21 09:48:48 +00:00
Michael Telatynski
782060a26e
ARIA Accessibility improvements (#10674)
* 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
2023-04-20 17:13:30 +00:00
Michael Telatynski
2da52372d4
Add arrow key controls to emoji and reaction pickers (#10637)
* Add arrow key controls to emoji and reaction pickers

* Iterate types

* Switch to using aria-activedescendant

* Add tests

* Fix tests

* Iterate

* Update test

* Tweak header keyboard navigation behaviour

* Also handle scrolling on left/right arrow keys

* Iterate
2023-04-20 14:56:21 +00:00
Michael Telatynski
0d9fa0515d
Fix typing tile duplicating users (#10678) 2023-04-20 14:44:54 +00:00
Suguru Hirahara
467c52a2ae
Add E2E test - general-user-settings-tab.spec.ts (#10658)
* Add E2E test: `general-user-settings-tab.spec.ts`

Initial implementation

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* lint

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Check an input area for a new email address too

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

---------

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-04-20 13:18:19 +00:00
Michael Telatynski
483b53c148
Translate credits in help about section (#10676) 2023-04-20 12:18:13 +00:00