Commit graph

13032 commits

Author SHA1 Message Date
Michael Telatynski
0ab476b828
Upgrade @types (#9261)
* Upgrade @types

* Make typescript happier
2022-09-12 11:58:05 +01:00
Kerry
61904778f5
Device manager - add verify current session button (PSG-527) (#9252)
* add verify current session button

* i18n

* strict type issues
2022-09-08 17:35:53 +02:00
Matthew Hodgson
eb97b9674c
add NotifPanel dot back. (#9242)
partially fixes https://github.com/vector-im/element-web/issues/17641
provides a dot, but not a badge. fixes chronic bug 87.
2022-09-08 15:53:57 +01:00
Michael Telatynski
52fc8ff255
Fix html export not including images (#9260)
* Fix html export not including images

* Respect showPlaceholder

* Add tests
2022-09-08 10:00:58 +00:00
Janne Mareike Koschinski
851606c7ed
Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field (#9259) 2022-09-08 07:44:45 +00:00
Michael Telatynski
c76cc9aee1
Handle M_INVALID_USERNAME on /register/available (#9237)
* Handle M_INVALID_USERNAME on /register/available

* Add tests

* Make typescript check happier
2022-09-07 21:47:20 +00:00
kegsay
a215027c6b
Implement MSC3575: Sliding Sync (#8328)
* Add labs flag for sliding sync; add sliding_sync_proxy_url to config.json

* Disable the labs toggle if sliding_sync_proxy_url is not set

* Do validation checks on the sliding sync proxy URL before enabling it in Labs

* Enable sliding sync and add SlidingSyncManager

* Get room subscriptions working

* Hijack renderSublists in sliding sync mode

* Add support for sorting alphabetically/recency and room name filters

* Filter out tombstoned rooms; start adding show more logic

list ranges update but the UI doesn't

* update the UI when the list is updated

* bugfix: make sure the list sorts numerically

* Get invites transitioning correctly

* Force enable sliding sync and labs for now

* Linting

* Disable spotlight search

* Initial cypress plugins for Sliding Sync Proxy

* Use --rm when running Synapse in Docker for Cypress tests

* Update src/MatrixClientPeg.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/rooms/RoomSublist.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/settings/controllers/SlidingSyncController.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/rooms/RoomSublist.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* WIP add room searching to spotlight search

* Only read sliding sync results when there is a result, else use the local cache

* Use feature_sliding_sync not slidingSync

* Some review comments

* More review comments

* Use RoomViewStore to set room subscriptions

* Comment why any

* Update src/components/views/rooms/RoomSublist.tsx

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix cypress docker abstraction

* Iterate sliding sync proxy support

* Stash mostly functional test

* Update sliding sync proxy image

* i18n

* Add support for spaces; use list ID -> index mappings

- Mappings are more reusable and easier to understand than
  racing for index positions.
- Register for all spaces immediately on startup.

* When the active space is updated, update the list registration

* Set spaces filter in the correct place

* Skeleton placeholder whilst loading the space

* Filter out spaces from the room list

* Use the new txn_id promises

* Ensure we actually resolve list registrations

* Fix matrix-org/sliding-sync#30: don't show tombstoned search results

* Remove unused imports

* Add SYNCV3_SECRET to proxy to ensure it starts up; correct aliases for SS test

* Add another basic sliding sync e2e test

* Unbreak netlify

* Add more logging for debugging duplicate rooms

* If sliding sync is enabled, always use the rooms result even if it's empty

* Drop-in copy of RoomListStore for sliding sync

* Remove conditionals from RoomListStore - we have SlidingRoomListStore now

* WIP SlidingRoomListStore

* Add most sliding sync logic to SlidingRoomListStore

Still lots of logic in RoomSublist. Broken things:
 - Join count is wrong completely.
 - No skeleton placeholder when switching spaces.

* Migrate joined count to SS RLS

* Reinstate the skeleton UI when the list is loading

* linting

* Add support for sticky rooms based on the currently active room

* Add a bunch of passing SS E2E tests; some WIP

* Unbreak build from git merge

* Suppress unread indicators in sliding sync mode

* Add regression test for https://github.com/matrix-org/sliding-sync/issues/28

* Add invite test flows; show the invite list

The refactor to SS RLS removed the invite list entirely.

* Remove show more click as it wasn't the bug

* Linting and i18n

* only enable SS by default on netlify

* Jest fixes; merge conflict fixes; remove debug logging; use right sort enum values

* Actually fix jest tests

* Add support for favourites and low priority

* Bump sliding sync version

* Update sliding sync labs to be user configurable

* delint

* To disable SS or change proxy URL the user has to log out

* Review comments

* Linting

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/stores/room-list/SlidingRoomListStore.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Review comments

* Add issue link for TODO markers

* Linting

* Apply suggestions from code review

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* More review comments

* More review comments

* stricter types

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-09-07 15:42:39 +00:00
Stefan Muhle
4c4a63fb5e
Add the clipboard read permission for widgets (#9250)
Signed-off-by: Stefan Muhle <stefan.muhle@nordeck.net>

Signed-off-by: Stefan Muhle <stefan.muhle@nordeck.net>
2022-09-07 04:07:52 +00:00
Michael Telatynski
b91f0ed7ba
Improve partial translation or to have usage context (#9244) 2022-09-06 13:27:36 +01:00
Michael Weimann
9f7165ed63
Use room name as room intro (#9231)
* Use roon name for room intro

* Fix types

* Revert caption var change

* Fix type issue
2022-09-06 09:54:53 +02:00
Robin
4524291331
Fix the picture-in-picture component being off screen (#9246) 2022-09-06 04:28:01 +00:00
grimhilt
6d03cb35b7
Fix voice messages with multiple composers (#9208)
* Allow having multiple voice messages in composers

Co-authored-by: grimhilt <grimhilt@users.noreply.github.com>
Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2022-09-05 12:04:37 +02:00
Kerry
85f92308f9
Device manager - hide unverified security recommendation when only current session is unverified (PSG-639) (#9228)
* scroll to filtered list from security recommendations

* test sessionmanager scroll to

* stable snapshot

* fix strict errors

* prtidy

* dont show security rec section when only curent session is unverified
2022-09-05 09:10:12 +00:00
Michael Telatynski
219f4fae3d
Fix suggested rooms going missing (#9236) 2022-09-02 13:04:16 +00:00
Michael Telatynski
3e8da6ffa4
Fix tooltip infinitely recursing (#9235) 2022-09-02 09:03:53 +00:00
RiotRobot
c89c02f4e0 Merge branch 'master' into develop
# Conflicts:
#	src/events/EventTileFactory.tsx
#	yarn.lock
2022-08-31 16:36:50 +01:00
Travis Ralston
37a527c61f Convert several internal maps to real maps 2022-08-31 09:21:11 -06:00
Kerry
54a66bd242
Device manager - scroll to filtered list from security recommendations (PSG-640) (#9227)
* scroll to filtered list from security recommendations

* test sessionmanager scroll to

* stable snapshot

* fix strict errors

* prtidy

* use smooth scrolling
2022-08-31 14:34:22 +02:00
Robin
0d6a550c33
Prepare for Element Call integration (#9224)
* Improve accessibility and testability of Tooltip

Adding a role to Tooltip was motivated by React Testing Library's
reliance on accessibility-related attributes to locate elements.

* Make the ReadyWatchingStore constructor safer

The ReadyWatchingStore constructor previously had a chance to
immediately call onReady, which was dangerous because it was potentially
calling the derived class's onReady at a point when the derived class
hadn't even finished construction yet. In normal usage, I guess this
never was a problem, but it was causing some of the tests I was writing
to crash. This is solved by separating out the onReady call into a start
method.

* Rename 1:1 call components to 'LegacyCall'

to reflect the fact that they're slated for removal, and to not clash
with the new Call code.

* Refactor VideoChannelStore into Call and CallStore

Call is an abstract class that currently only has a Jitsi
implementation, but this will make it easy to later add an Element Call
implementation.

* Remove WidgetReady, ClientReady, and ForceHangupCall hacks

These are no longer used by the new Jitsi call implementation, and can
be removed.

* yarn i18n

* Delete call map entries instead of inserting nulls

* Allow multiple active calls and consolidate call listeners

* Fix a race condition when creating a video room

* Un-hardcode the media device fallback labels

* Apply misc code review fixes

* yarn i18n

* Disconnect from calls more politely on logout

* Fix some strict mode errors

* Fix another updateRoom race condition
2022-08-30 15:13:39 -04:00
Kerry
50f6986f6c
Device manager - updated dropdown style in filtered device list (PSG-689) (#9226)
* add FilterDropdown wrapper on Dropdown for filter styles

* test and fix strict errors

* fix comment
2022-08-30 19:11:33 +02:00
Kerry
825a0af4a9
Device manager - device type and verification icons on device tile (PSG-637) (#9197)
* add unknown device icon

* add device type and verification icon component

* test

* stylelint

* fix securitycard spacing

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-08-29 10:48:00 +00:00
Gustavo Santos
27de00a859
Add missing space in SecurityRoomSettingsTab (#9222) 2022-08-26 06:39:30 +00:00
ElementRobot
877fa9c5c4
Fix progress bar regression throughout the app (#9219) (#9221)
* Fix useSmoothAnimation enablement not working properly by getting rid of it

Passing duration=0 is more logical and less superfluous

* Refactor UploadBar to handle state more correctly

* Change ProgressBar to new useSmoothAnimation signature and default animated to true for consistency

* Add type guard

* Make types stricter

* Write tests for the ProgressBar component

* Make the new test conform to tsc --strict

* Update UploadBar.tsx

* Update UploadBar.tsx

* Update UploadBar.tsx

(cherry picked from commit 9b99c967f4)

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-08-25 16:47:48 +01:00
Michael Telatynski
9b99c967f4
Fix progress bar regression throughout the app (#9219)
* Fix useSmoothAnimation enablement not working properly by getting rid of it

Passing duration=0 is more logical and less superfluous

* Refactor UploadBar to handle state more correctly

* Change ProgressBar to new useSmoothAnimation signature and default animated to true for consistency

* Add type guard

* Make types stricter

* Write tests for the ProgressBar component

* Make the new test conform to tsc --strict

* Update UploadBar.tsx

* Update UploadBar.tsx

* Update UploadBar.tsx
2022-08-25 16:39:00 +01:00
Michael Telatynski
6407cd4c0d
Reuse empty string & space string logic for event types in devtools (#9218)
* Reuse empty string & space string logic for event types in devtools

* Fix edge case behaviours

* Make tsc quality higher

* Make remainder of tsc happy
2022-08-25 11:08:52 +00:00
Michael Telatynski
13c9755ff3
Make types happier 2022-08-24 10:28:59 +01:00
Janne Mareike Koschinski
94d292a6ec
Reduce amount of requests done by the onboarding task list (#9194)
* Significantly reduce work of useUserOnboardingContext
* Wrap UserOnboardingButton to avoid unnecessary work when it's not shown
* Remove progress from user onboarding button
2022-08-22 13:48:54 +02:00
Janne Mareike Koschinski
e8eefeb937
Avoid hardcoding branding in user onboarding (#9206)
* Avoid hardcoding branding in user onboarding
* Make spotlight test more reliable
2022-08-22 12:11:24 +02:00
maheichyk
ef0ba77f14
End jitsi call when member is banned (#8879)
* Jitsi call is ended when member is banned

* cypress tests for widget PIP close on leave/kick/ban

* copyright updated

* import changes

* import changes, lint fixed

* import changes

* smaller spec changes to fix problems

* stale import removed, win.matrixcs.RoomStateEvent.Events is used

* fixed problem with kick, smaller test optimisations

* comment removed

Co-authored-by: mikhail.aheichyk <mikhail.aheichyk@nordeck.net>
Co-authored-by: Oliver Sand <oliver.sand@nordeck.net>
2022-08-19 15:09:26 +01:00
Šimon Brandner
488babaf65
Release message right-click context menu out of labs (#8613) 2022-08-18 09:18:36 +02:00
Šimon Brandner
3eecd68175
Fix context menu being opened when clicking message action bar buttons (#9200) 2022-08-18 09:18:18 +02:00
Michael Telatynski
e269c6895d
Fix url preview AXE and layout issue & add percy test (#9189) 2022-08-17 16:07:18 +00:00
Michael Telatynski
27a7263965
Attempt to fix Failed to execute 'removeChild' on 'Node' (#9196)
* Switch tooltips to use React Portals

* Remove redundant React key to simplify reconciliation

* Fix cleanup and it.each test

* Update snapshots due to style order difference
2022-08-17 13:35:33 +00:00
Michael Telatynski
3461573df9
Standardise sane capitalisation in verification modal (#9198) 2022-08-17 14:05:20 +01:00
Kerry
e5fedfcd74
Device manager - expandable session details in device list (PSG-644) (#9188)
* add expandable device details to session list

* test device expansion in filtered list

* test expanded device id management from sessionmanager tab

* i18n

* update snapshot

* update snapshots

* use css instead of br
2022-08-17 11:58:34 +02:00
Kerry
6f2c761fb4
Device manager - device list filtering (PSG-648) (#9181)
* add device filtering

* improve dropdown styling

* test device filtering

* update type imports

* fix types

* security card margin

* more specific type for onFilterOptionChange
2022-08-16 14:05:10 +00:00
Kerry
9bf77963ee
Device manager - add verification details to session details (PSG-644) (#9187)
* extract security card for session verification to shared comp

* add card to device details

* tidy

* fix section spacing

* update snapshots
2022-08-16 11:45:09 +00:00
Kerry
0dffc582e7
Device manager - current session expandable details (PSG-644) (#9185)
* split current device section into component

* add dropdown button for currentsession device details

* test currentdevicesection

* remove unnecc beforeEach

* update type imports

* i18n and lint
2022-08-15 17:30:18 +02:00
Kerry
0c5ad457f0
Device manager - security recommendations section (PSG-639) (#9179)
* display inactive status on device tile

* unify DeviceSecurityVariation type, add correct icon to inactive ui

* move types into type file

* move DeviceSecurityVariation into types

* add security recommendations section

* add view all stubbed buttons

* undeo debug

* test security recs

* remove debug

* use css for card spacing
2022-08-15 08:40:26 -04:00
Janne Mareike Koschinski
9eaf48b176
The Welcome Home Screen: Return Button (#9089)
* Implement button to return to user onboarding screen
* Add analytics events
* Increase stability of lazy loading test
2022-08-12 12:55:31 +02:00
Travis Ralston
8db7766a40
Add safety to the spotlight search dialog (#9177)
* Add safety to the spotlight search dialog

Fixes https://github.com/vector-im/element-web/issues/22851

This test was triggering the mentioned bug only occasionally because it was dependent on when the search settled: if it settled early then the length was wrong. In testing, the dialog was caught multiple times to have passed the length chat but update to show duplicated results before the test closed the client, indicating a race condition within the tests.

To fix this, we just make sure everything settles before moving on. We do this on unaffected tests too to ensure they don't regress later.

The affected test was "should find group DMs by usernames or user ids".

* Update cypress/e2e/spotlight/spotlight.spec.ts

Co-authored-by: Robin <robin@robin.town>

Co-authored-by: Robin <robin@robin.town>
2022-08-11 22:26:25 +00:00
Kerry
4a5ed2f899
Device manager - label devices as inactive (PSG-638) (#9175)
* filter devices by security recommendation

* display inactive status on device tile

* unify DeviceSecurityVariation type, add correct icon to inactive ui

* tidy

* avoid dead code warning
2022-08-11 21:39:38 +00:00
Michael Weimann
964d538db9
Hide sticker picker for local rooms (#9174)
* Disable stickers for local rooms

* Use prop
2022-08-11 17:51:24 +02:00
Kerry
7b52145461
Device manager - device security recommendation card (PSG-637) (#9158)
* add security card and style

* deprecate warning and verified svgs that use hard coded color

* style icons, test

* i18n

* stylelint

* redo lost lint fixes

* fix svg ref

* actually fix svg

* fix stupid copy pasting

* use rgba for e2e light variations

* add security card and style

* deprecate warning and verified svgs that use hard coded color

* style icons, test

* i18n

* stylelint

* fix svg ref

* actually fix svg

* fix stupid copy pasting

* use rgba for e2e light variations

* use device security card in current session section

* lint

* update snapshot test after dev merge
2022-08-11 10:39:14 +00:00
Kerry
0be622e7f0
Device manager - other sessions list (PSG-637) (#9155)
* add session manager tab to user settings

* fussy import ordering

* i18n

* basic sorted list outline

* rename to filtered device list

* exclude current device session from other sessions list

* test other sessions section
2022-08-11 09:45:35 +00:00
Kerry
09aade2907
Device manager - device details section (#9169)
* add device metadata table

* test devicedetails

* handle missing last activity metadata

* remove debugs

* revert tile style changes

* fuss with indentation

* code formatting
2022-08-11 09:13:17 +00:00
Kerry
f020ed0b13
Device manager - extract device deletion logic into util (#9168)
* extract deletedevices logic into util fn

* unit test deleteDevices

* test devicespanel device deletion

* remove debug logs

* i18n

* assert more on deleteMultipleDevices calls
2022-08-10 16:26:48 +00:00
Kerry
b7872f2ff7
Device manager - data fetching (PSG-637) (#9151)
* add session manager tab to user settings

* fussy import ordering

* i18n

* extract device fetching logic into hook

* use new extended device type in device tile, add verified metadata

* add current session section, test

* tidy

* update types for DeviceWithVerification
2022-08-10 18:14:59 +02:00
Michael Telatynski
3d0982e9a6
Space panel accessibility improvements (#9157)
* Move the UserMenu out of the SpacePanel ul list

* Apply aria-selected to the spacepanel treeview

* Fix typing
2022-08-10 12:14:54 +00:00
Michael Telatynski
394e181854
Define interface for RLS to ease wiring in Sliding Sync (#9150)
* Define iface for RLS

* Iterate interface
2022-08-09 20:46:59 +01:00