Commit graph

1020 commits

Author SHA1 Message Date
alunturner
6052db1e8a
Add list functionality to rich text editor (#9871)
* adds buttons to toggle bulleted and numbered lists on and off
* adds icons for those buttons
* css changes to timeline display
* adds tests for the new buttons, refactors existing tests
2023-01-13 15:44:35 +00:00
Germain
d4f247d1fe Merge branch 'develop' into gsouquet/threads-forceenablelabsflag 2023-01-11 11:51:57 +00:00
Patrick Cloke
da2640b7ba
Display rooms & threads as unread (bold) if threads have unread messages. (#9763)
Co-authored-by: Germain <germain@souquet.com>
Co-authored-by: Germain <germains@element.io>
Fixes https://github.com/vector-im/element-web/issues/23907
2023-01-11 11:49:03 +00:00
Germain
df03112a3b
Fix mock client missing user functions (#9887) 2023-01-11 11:33:06 +00:00
alunturner
880a86c8b1
Convert enzyme to rtl: UserInfo (#9846)
* converts tests from Enzyme to Rtl
* increases test coverage
2023-01-11 10:46:35 +00:00
Florian Duros
a691e634b0
Add edit and remove actions to link in RTE (#9864)
Add edit and remove actions to link in RTE
2023-01-11 10:10:55 +00:00
Travis Ralston
19ba620de2 Revert "Revert "Factor out MessageEvent.from() usage (#9882)""
This reverts commit 99e38ca88e.
2023-01-10 13:43:15 -07:00
Travis Ralston
edc44922c2 Revert "Revert "Remove unused/disabled room list drag&drop tests (#9883)""
This reverts commit 0453283bed.
2023-01-10 13:43:10 -07:00
Travis Ralston
0453283bed Revert "Remove unused/disabled room list drag&drop tests (#9883)"
This reverts commit 34f0229d75.
2023-01-10 13:32:11 -07:00
Travis Ralston
99e38ca88e Revert "Factor out MessageEvent.from() usage (#9882)"
This reverts commit c09ca7b4ee.
2023-01-10 13:32:07 -07:00
Travis Ralston
c09ca7b4ee
Factor out MessageEvent.from() usage (#9882)
* Factor out `MessageEvent.from()` usage

The class/function is disappearing from the events-sdk, at least in this form.

* Manually create contents for events used by cypress

The utility function is out of range of the calling code at runtime, for some reason.

* Run prettier

* Maybe this will fix the build
2023-01-10 09:20:10 -07:00
Travis Ralston
34f0229d75
Remove unused/disabled room list drag&drop tests (#9883)
It's been years since we've had drag and drop - just delete the test.
2023-01-10 09:20:02 -07:00
Johannes Marbach
c94a4abe3d
Merge pull request #9873 from matrix-org/johannes/polls-dialog-scaling
Make create poll dialog scale better (PSG-929)
2023-01-10 16:07:49 +01:00
Michael Weimann
4627456837
Prevent starting a voice message while recording a broadcast (#9844) 2023-01-10 15:51:20 +01:00
Johannes Marbach
5dfde12c1c
Merge branch 'develop' into johannes/polls-dialog-scaling 2023-01-10 12:14:50 +01:00
Kerry
b1c32995c6
Device manager - prune client information events after remote sign out (#9874)
* prune client infromation events from old devices

* test client data pruning

* remove debug

* strict

* Update src/components/views/settings/devices/useOwnDevices.ts

Co-authored-by: Michael Weimann <michaelw@matrix.org>

* improvements from review

Co-authored-by: Michael Weimann <michaelw@matrix.org>
2023-01-10 07:01:50 +01:00
Germain
7ca1b385d9 Force enable threads labs flag 2023-01-09 12:38:19 +00:00
Johannes Marbach
214fa13d7d Update snapshots 2023-01-06 17:44:36 +01:00
Michael Weimann
ab9152044c
Use the same avatar colour when creating 1:1 DM rooms (#9850) 2023-01-05 17:05:21 +01:00
grimhilt
ecfd1736e5
combine search results when the query is present in multiple successive messages (#9855)
* merge successives messages

* add tests

* fix styles

* update test to match the expected parameters

* fix types errors

* fix tsc types errors

Co-authored-by: grimhilt <grimhilt@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2023-01-05 11:37:58 +00:00
Michael Weimann
488a08a25e
Allow reactions for broadcasts (#9856) 2023-01-05 08:40:09 +01:00
alunturner
432ce3ca31
Improve switching between rich and plain editing modes (#9776)
* allows switching between modes that retains formatting
* updates rich text composer dependency to 0.13.0 (@matrix-org/matrix-wysiwyg)
* improves handling of enter keypresses when ctrlEnterTosend setting is true in plain text editor
* changes the message event content when using the new editor
* adds tests for the changes to the plain text editor
2023-01-04 12:57:09 +00:00
alunturner
3bcea5fb0b
Convert enzyme to rtl: BeaconMarker (#9840) 2023-01-04 10:00:13 +00:00
Robin
cb1af0d3de
Redesign the picture-in-picture window (#9800)
* Remove unnecessary PipContainer component

* Redesign the picture-in-picture window

* Add a hover effect to the controls

* Clarify that WidgetPip has call-specific behavior
2023-01-04 04:44:38 +00:00
Florian Duros
6b155620e4
Fix emoji in RTE editing (#9827)
Fix emoji in RTE editing
2023-01-03 15:35:14 +00:00
Marco Bartelt
1b06b72b67
static-user-onboarding-steps (#9799) 2023-01-02 14:34:34 +00:00
Michael Weimann
0f7a2ce6df
Confirm listen to a broadcast while recording (#9831) 2023-01-02 12:21:33 +00:00
Michael Weimann
3ce064731b
Migrate AppTile-Test to RTL (#9838) 2022-12-30 10:33:10 +00:00
alunturner
b034ada6fd
Convert enzyme to rtl: BasicMessageComposer (#9839) 2022-12-29 20:52:51 +00:00
Germain
adab82edae
Migrate TextualBody to RTL (#9845) 2022-12-29 16:21:00 +00:00
Germain
1e8b59ea40
Migrate Enzyme to RTL (#9842) 2022-12-29 15:35:19 +00:00
alunturner
6d2d13fdee
Enzyme to rtl: QuickThemeSwitcher (#9843) 2022-12-29 12:44:18 +00:00
Kerry
c0ba1b8a1c
Device manager - contextual menus (#9832)
* add session count to current session contextual signout

* add contextual menu to other sessions section

* typo

* i18n

* strict
2022-12-29 02:08:57 +00:00
alunturner
2e097a00c7
Convert enzyme to rtl: BeaconStatus (#9836)
* rewrite in rtl
* update snapshots
2022-12-28 16:24:46 +00:00
Michael Weimann
c257e137aa
Allow call and broadcast PiP at the same time (#9829) 2022-12-28 13:43:44 +00:00
Germain
d2763c329d
Migrate AccessibleButton-test to RTL (#9833) 2022-12-28 10:40:34 +00:00
Michael Weimann
5912c7a637
Replace broadcast instance with SDKContext (#9824) 2022-12-27 08:39:26 +01:00
Michael Weimann
32140855fb
When deleting a voice broadcast, also delete related events (#9737) 2022-12-23 15:44:01 +00:00
Florian Duros
fe0273b1a6
Add link creation to rich text editor (#9775)
Add link creation to RTE
2022-12-23 11:34:15 +00:00
Florian Duros
88c3864682
Replace some enzyme tests by @testing-library/react (#9822)
* Replace MessageComposerButtons-test.tsx enzyme by @testing-library/react

* Replace HtmlUtils-test.tsx enzyme by @testing-library/react
2022-12-23 10:46:14 +00:00
Michael Weimann
b07bd4d102
Show initial broadcast position in seekbar (#9796) 2022-12-22 14:30:42 +00:00
Germain
e9224f6fce
Add mark as read option in room setting (#9798) 2022-12-22 13:18:38 +00:00
Michael Weimann
b81582d045
Improve live voice broadcast detection by testing if the started event has been redacted (#9780) 2022-12-22 10:37:07 +00:00
Kerry
fbc3228143
Device manager - current device design and copy tweaks (#9801)
* indent device details

* udpate copy for current device security warning

* lint

* test coverage for copy

* strict
2022-12-22 01:58:29 +00:00
Kerry
9a8545bf34
Fix: Editing a poll will silently change it to a closed poll (#9809)
* add failing test case

* dont reset poll disclosure on editing
2022-12-21 21:29:11 +00:00
Michael Weimann
1614674ca9
Snap in PiP widget when content changed (#9797) 2022-12-21 13:06:26 +00:00
Florian Duros
7db2ee749f
Fix rte flaky test (#9811) 2022-12-21 11:22:17 +00:00
Germain
bef8e077f6
Unify notifications panel event design (#9754) 2022-12-21 10:25:50 +00:00
Florian Duros
d6e447b934
Load RTE component only when needed (#9804)
Use react lazy to load rte component
2022-12-20 14:59:18 +00:00
Richard van der Hoff
ad7c002f4d Merge remote-tracking branch 'origin/develop' into rav/edited_events 2022-12-20 11:20:03 +00:00
Richard van der Hoff
dc29317445 Improve display of edited events 2022-12-20 11:19:47 +00:00
Kerry
0485b74acb
Device manager - design tweaks (#9768)
* hover style on dropdown

* hover states

* device details spacing

* device details h3 -> h4

* missing fullstops

* update snapshots for new copy

* device details expand icon bigger

* hide current session security card when details expanded

* filter dropdown padding and hover state

* update cypress selector for device detail heading
2022-12-20 01:17:05 +00:00
renovate[bot]
af3715821b
Update dependency maplibre-gl to v2 (#9699)
* Update dependency maplibre-gl to v2

* update types and mocks for maplibre 2.0

* prettier + strict fix

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kerry Archibald <kerrya@element.io>
2022-12-18 23:17:15 +00:00
Faye Duxovni
4724506320
Improve decryption error UI by consolidating error messages and providing instructions when possible (#9544)
* Improve decryption error UI by consolidating error messages and providing instructions when possible

* Fix TS strict errors

* Rename .scss to .pcss

* Avoid accessing clipboard, Cypress doesn't like it

* Display DecryptionFailureBar alongside other AuxPanel bars

* Add comments

* Add small margin off-screen for visible decryption failures

* Fix some more TS strict errors

* Add unit tests for DecryptionFailureBar

* Add button to resend key requests manually

* Remove references to matrix-js-sdk crypto internals

* Add hysteresis to visible decryption failures

* Add comment

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add comment

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Don't create empty div if we're not showing resend requests button

* cancel updateSessions on unmount

* Update unit tests

* Fix lint and implicit any

* Simplify visible event bounds checking

* Adjust cypress test descriptions

* Add percy snapshots

* Update src/components/structures/TimelinePanel.tsx

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add comments on TimelinePanel IState

* comment

* Add names to percy snapshots

* Show Resend Key Requests button when there are sessions that haven't already been requested via this bar

* We no longer request keys from senders

* update i18n

* update expected text in cypress test

* don't download keys ourselves, update device info in response to updates from client

* fix ts strict errors

* visibledecryptionfailures undefined handling

* Fix implicitAny errors

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-12-15 17:24:33 +00:00
Michael Weimann
ab560bba40
Implement small broadcast PiP (#9755) 2022-12-15 11:43:01 +00:00
Germain
2d2755d145
🧵 Enable threads by default (#9736)
* Delabs threads

* remove threads reload when labs is toggled

* Fix ts strict

* fix rebase mistake

* remove .only

* fix pr comments

* re-introduce backwards compat

* Fix export test

* Fix SearchREsultTile test

* strict ts
2022-12-13 15:09:15 +00:00
Michael Weimann
526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Florian Duros
73986faa7d
Add inline code to rich text editor (#9720)
Add inline code to rich text editor
2022-12-09 14:06:15 +01:00
Florian Duros
65f9843576
Add emoji handling for plain text mode (#9727)
Add emoji handling for plain text mode
2022-12-09 11:38:14 +01:00
Kerry
888e69f39a
Device manage - handle sessions that don't support encryption (#9717)
* add handling for unverifiable sessions

* test

* update types for filtervariation

* strict fixes

* avoid setting up cross signing in device man tests
2022-12-08 21:52:00 +00:00
Marco Bartelt
95ac957fa4
add-privileged-users-in-room (#9596) 2022-12-08 12:40:31 +01:00
Andy Balaam
0f17728aa1
Merge branch 'develop' into feat/emoji-picker-rich-text-mode 2022-12-08 09:39:30 +00:00
Florian Duros
7943f83858
Change formatting buttons behavior (#9715)
Change formatting buttons behaviour
2022-12-07 12:13:35 +01:00
Florian Duros
bc001c2b88
Fix types 2022-12-06 16:45:25 +01:00
Florian Duros
1bd560d350
Merge remote-tracking branch 'origin/develop' into feat/emoji-picker-rich-text-mode 2022-12-06 16:38:46 +01:00
Florian Duros
27139ca68e
Add test for emoji 2022-12-06 16:38:25 +01:00
Germain
3a501003e2
Add setting to hide bold notifications (#9705) 2022-12-06 09:59:17 +00:00
Michael Weimann
474f464e48
Voice broadcast indicator in room list (#9709) 2022-12-06 10:56:29 +01:00
Florian Duros
54e12d265b
Merge remote-tracking branch 'origin/develop' into feat/emoji-picker-rich-text-mode 2022-12-05 17:40:46 +01:00
Florian Duros
f5efa85882
Fix types and console.log 2022-12-05 17:40:33 +01:00
Michael Telatynski
ccfb455847
Fix power selector being wrongly disabled for admins themselves (#9681) 2022-12-01 09:49:46 +00:00
Michael Telatynski
d258402186
Typescript updates (#9658)
* Typescript updates

* Update @types/node

* Fix more types
2022-11-30 11:32:56 +00:00
Michael Weimann
459df4583e
Fix start voice broadcast recording while listening (#9630) 2022-11-30 11:16:22 +01:00
Robin
2c612d5aa1
Use native js-sdk group call support (#9625)
* Use native js-sdk group call support

Now that the js-sdk supports group calls natively, our group call implementation can be simplified a bit. Switching to the js-sdk implementation also brings the react-sdk up to date with recent MSC3401 changes, and adds support for joining calls from multiple devices. (So, the previous logic which sent to-device messages to prevent multi-device sessions is no longer necessary.)

* Fix strings

* Fix strict type errors
2022-11-28 16:37:32 -05:00
Florian Duros
033c26ab53
Fix edit a reply in rich text editor (#9615)
Fix edit a reply in rich text editor
2022-11-28 16:01:49 +01:00
Florian Duros
7c63d52500
Add placeholder for rich text editor (#9613)
* Add placeholder for rich text editor
2022-11-24 10:31:56 +00:00
Michael Weimann
a8e15ebe60
Add voice broadcast playback pip (#9603) 2022-11-24 09:08:41 +01:00
Germain
40cbee60db
Consolidate public room search experience (#9605) 2022-11-22 15:05:09 +00:00
Germain
7b5e73207f
Fix SpaceTreeLevel enzyme test (#9602) 2022-11-22 09:53:33 +00:00
Michael Weimann
3f74ac37e8
Refactor PipView + fix strict errors (#9604) 2022-11-22 07:57:38 +01:00
Eric Eastwood
2393510a7f
Fix getRelationsForEvent under TypeScript strict mode (#9558)
* Fix getRelationsForEvent tsc strictness

* Use shared type for GetRelationsForEvent

* Fix lint

* Add alternative type

* getRelationsForEvent is not required

* Relations are optional

* Reactions are optional

* We expect relations in these tests

* Add more protection if the eventID is not defined

* Allow null too

* Better test typing

* User ID is not necessary unless something is selected

* It's okay to [].includes(null)

* Null is as good as undefined here

* Null or undefined is good here

* We have some expectations for the tests

* The room and user can be undefined too

* Protec

* Reactions are optional

* Try match signatures

* Null or undefined

* More null or undefined

* Protec

* Fix typo (wrong variable)

* Remove optional params

See https://github.com/matrix-org/matrix-react-sdk/pull/9558#discussion_r1017515913

* Fix up last maaaaybe relevant lint

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-11-21 20:54:24 -07:00
Michael Telatynski
8c0d202df4
Enable tsc alwaysStrict, strictBindCallApply, noImplicitThis (#9600)
* Enable tsc alwaysStrict

* Enable tsc strictBindCallApply

* Enable tsc noImplicitThis

* Add d.ts

* Improve types

* Add ?

* Increase coverage

* Improve coverage
2022-11-21 11:24:59 +00:00
Kerry
caac059479
Device manager - add tooltip to device details toggle (#9594)
* add hide/show tooltip to dm details toggle

* use named export, update tests
2022-11-21 08:24:56 +13:00
kegsay
acdcda78f0
sliding sync: add lazy-loading member support (#9530)
* sliding sync: add lazy-loading member support

Also swap to `$ME` constants when referring to our own member event.

* Hook into existing LL logic when showing the MemberList

* Linting

* Use consts in js sdk not react sdk

* Add jest tests

* linting

* Store the room in the test

* Fix up getRoom impl

* Add MemberListStore

* Use the right context in MemberList tests

* Fix RightPanel-test

* Always return members even if we lazy load

* Add MemberListStore tests

* Additional tests
2022-11-18 19:05:00 +00:00
Michael Telatynski
d626f71fdd
Extract Search handling from RoomView into its own Component (#9574)
* Extract Search handling from RoomView into its own Component

* Iterate

* Fix types

* Add tests

* Increase coverage

* Simplify test

* Improve coverage
2022-11-18 16:40:22 +00:00
Michael Telatynski
590b845f3f
Remove all usages of UNSAFE_* React methods (#9583) 2022-11-18 09:22:43 +00:00
Germain
38dbe8ed33
Migrate some tests to React Testing Library (#9584) 2022-11-18 09:16:11 +00:00
Florian Duros
3243d215e6
Remove useWysiwyg mock (#9578) 2022-11-16 15:38:00 +00:00
Germain
c10339ad68
Make clear notifications work with threads (#9575) 2022-11-15 10:27:13 +00:00
Michael Telatynski
e66027cd0c
Deduplicate string compare utility (#9579) 2022-11-15 10:20:36 +00:00
Florian Duros
45d53d3404
Update @matrix-org/matrix-wysiwyg dependency 2022-11-14 14:12:09 +01:00
Hanadi
212233cb0b
Fix: inline links selecting radio button (#9543)
* fix: inline link selecting radio button
2022-11-14 09:11:37 +00:00
Germain
e8d4fbb8ff
Fix missing avatar for show current profiles (#9563) 2022-11-11 16:02:01 +00:00
Michael Weimann
fca6ff271c
Extract requestMediaPermissions (#9568) 2022-11-11 10:38:51 +01:00
Germain
ee13e23b15
Resilience fix for homeserver without thread notification support (#9565)
* Notification state resilience

* TypeScript strict fixes

* Add tests
2022-11-10 18:01:19 +00:00
Michael Telatynski
962e8e0b23
Differentiate download and decryption errors when showing images (#9562) 2022-11-10 09:27:20 +00:00
Michael Weimann
abec724387
Add voice broadcast pre-recoding PiP (#9548) 2022-11-10 09:38:48 +01:00
László Várady
afdf289a78
Advanced audio processing settings (#8759)
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
Fixes https://github.com/vector-im/element-web/issues/6278
Fixes undefined
2022-11-09 20:14:55 +00:00
Michael Telatynski
da779531f1
Close context menu when a modal is opened to prevent user getting stuck (#9560) 2022-11-09 15:33:09 +00:00
Germain
3f3005a3ca
Always use current profile on thread events (#9524) 2022-11-08 10:58:26 +00:00
Florian Duros
5ca9accce2
Improve design of the rich text editor (#9533)
New design for rich text composer
2022-11-04 15:36:50 +00:00
Michael Telatynski
04bc8fb71c
Optimise Jest run in CI (#9542) 2022-11-04 10:48:08 +00:00
Hugh Nimmo-Smith
f05cc5d8f3
Refactor + improve test coverage for QR login (#9525) 2022-11-02 10:51:20 +00:00
Michael Weimann
9096bd82d6
Extract PlaybackInterface (#9526) 2022-11-02 09:46:42 +01:00
Germain
9b644844da
Fix NotificationBadge unsent color (#9522) 2022-10-31 09:45:02 +00:00
Janne Mareike Koschinski
d92fdc1f5b
Loading threads with server-side assistance (#9356)
* Fix bug with message context menu
* fix bug where ThreadSummary failed if no last reply is available
* Fix relations direction API
* Use same API for threads as for any other timeline
* Determine if event belongs to thread on jumping to event
* properly listen to thread deletion
* Add thread redaction tests
* Add fetchInitialEvent tests
* Paginate using default TimelinePanel behaviour
* Remove unused threads deleted code

Co-authored-by: Germain <germain@souquet.com>
Co-authored-by: Germain <germains@element.io>
2022-10-28 13:48:15 +02:00
Johannes Marbach
af47b74992
Merge pull request #9501 from matrix-org/psg-863/dm-learn-more-rename
Device manager - add extra details to device security and renaming (PSG-863)
2022-10-27 08:40:27 +02:00
Florian Duros
92b4c8bf4e
Review clean 2022-10-26 19:05:27 +02:00
Florian Duros
d25cbb53b0
Merge branch 'develop' into feat/add-plain-text-mode 2022-10-26 18:56:33 +02:00
Michael Telatynski
ee61994c05
Reset custom power selector when blurred on empty (#9508) 2022-10-26 16:14:33 +00:00
Florian Duros
423f87a43a
Merge branch 'develop' into feat/add-plain-text-mode 2022-10-26 17:16:34 +02:00
Florian Duros
fb751c3c7b
Add test for plain mode 2022-10-26 17:16:13 +02:00
Florian Duros
f1610dae3d
Fix selection 2022-10-26 14:56:41 +02:00
Kerry Archibald
35e45136b4 add learn more to device security cards 2022-10-26 11:30:32 +02:00
Kerry Archibald
bb4bffe1e8 learn more for session renaming 2022-10-26 11:05:31 +02:00
Kerry Archibald
78440d2d43 use correct card type 2022-10-26 11:05:31 +02:00
Kerry Archibald
18e59b2d98 add learn more to filtered sessions 2022-10-26 11:05:26 +02:00
Kerry
69642544ac
Device manager - add learn more popups to filtered sessions section (#9497)
* add learn more to filtered sessions

* fullstop

* update tests and i18n for fullstop

* remove unused switch

* whitespace

* use correct card type
2022-10-26 11:04:16 +02:00
Florian Duros
50279c8870
Add basic plain text editor 2022-10-25 17:26:14 +02:00
Florian Duros
b5ab1239ed
Merge branch 'develop' into feat/add-message-edition-wysiwyg-composer 2022-10-25 10:42:29 +02:00
Kerry
d473b4ac4a
Device manager - confirm sign out of other sessions (PSG-921) (#9487)
* change testid attribute for dialog buttons to rtl friendly

* add confirm dialog for signing out sessions

* cleanup commented

* update cypress tets

* clear modals before test

* missing modal in jest tests on ci only
2022-10-25 10:39:48 +02:00
Florian Duros
fda4dabf6d
Fix MessageComposer test 2022-10-24 15:03:18 +02:00
Florian Duros
de86221c72
Merge remote-tracking branch 'origin/develop' into feat/add-message-edition-wysiwyg-composer 2022-10-24 14:41:27 +02:00
Florian Duros
edecc451dd
Fix MessageCompoer-test 2022-10-24 14:41:11 +02:00
Florian Duros
50c29502e4
Add new tests for WysiwygComposer 2022-10-24 12:35:09 +02:00
Michael Telatynski
eafc2d23a7
Ensure spaces in the spotlight dialog have rounded square avatars (#9480) 2022-10-24 08:58:36 +00:00
Michael Telatynski
913af09e61
Convert some tests from Enzyme to RTL (#9483) 2022-10-24 09:06:20 +01:00
Germain
9eb4f8d723
Add thread notification with server assistance (MSC3773) (#9400)
Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2022-10-24 07:50:21 +01:00
Florian Duros
4d089dcc05
Merge remote-tracking branch 'origin/develop' into feat/add-message-edition-wysiwyg-composer 2022-10-21 10:15:46 +02:00
Germain
be281fd735
Fix threads fallback incorrectly targets root event (#9229)
* Use RelationType enum instead of hardcoded value

* Fix threads replies fallback to target last reply

* Only unsubscribe from threads events if needed

* fix strict null check

* fix strict null checks

* strict null checks

* fix typing

* Unsubscribe listeners if new thread is `null`

Co-authored-by: Faye Duxovni <fayed@element.io>

* Update strict null checks

* Type HTMLElement as nullable

* Add thread fallback integration test

* lint fix

* Update snapshots

* Add test after changing thread

* Remove test comment

* update snapshot

* fix room context test utility

* Add ThreadListContextMenu test

* lint fix

* fix thread rendering

Co-authored-by: Faye Duxovni <fayed@element.io>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-20 12:48:25 +01:00
Kerry
d5a4718d46
Test display of qr code login section (#9456)
* Support for login + E2EE set up with QR

* Whitespace

* Padding

* Refactor of fetch

* Whitespace

* CSS whitespace

* Add link to MSC3906

* Handle incorrect typing in MatrixClientPeg.get()

* Use unstable class name

* fix: use unstable class name

* Use default fetch client instead

* Update to revised function name

* Refactor device manager panel and make it work with new sessions manager

* Lint fix

* Add missing interstitials and update wording

* Linting

* i18n

* Lint

* Use sensible sdk config name for fallback server

* Improve error handling for QR code generation

* Refactor feature availability logic

* Hide device manager panel if no options available

* Put sign in with QR behind lab setting

* Reduce scope of PR to just showing code on existing device

* i18n updates

* Handle null features

* Testing for LoginWithQRSection

* Refactor to handle UIA

* Imports

* Reduce diff complexity

* Remove unnecessary change

* Remove unused styles

* Support UIA

* Tidy up

* i18n

* Remove additional unused parts of flow

* Add extra instruction when showing QR code

* Add getVersions to server mocks

* Use proper colours for theme support

* Test cases

* Lint

* Remove obsolete snapshot

* Don't override error if already set

* Remove unused var

* Update src/components/views/settings/devices/LoginWithQRSection.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update res/css/views/auth/_LoginWithQR.pcss

Co-authored-by: Kerry <kerrya@element.io>

* Use spacing variables

* Remove debug

* Style + docs

* preventDefault

* Names of tests

* Fixes for js-sdk refactor

* Update snapshots to match test names

* Refactor labs config to make deployment simpler

* i18n

* Unused imports

* Typo

* Stateless component

* Whitespace

* Use context not MatrixClientPeg

* Add missing context

* Type updates to match js-sdk

* Wrap click handlers in useCallback

* Update src/components/views/settings/DevicesPanel.tsx

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

* Wait for DOM update instead of timeout

* Add missing snapshot update from last commit

* Remove void keyword in favour of then() clauses

* test main paths in LoginWithQR

* test coverage for display of qr code section

* remove unused test props

Co-authored-by: Hugh Nimmo-Smith <hughns@matrix.org>
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-10-19 15:11:42 +00:00
Florian Duros
e77f333fb6
Merge remote-tracking branch 'origin/develop' into feat/add-message-edition-wysiwyg-composer 2022-10-19 16:34:22 +02:00
Michael Weimann
bb0c175b7e
Display info dialogs if unable to start voice broadcasts (#9453) 2022-10-19 15:01:14 +02:00
Hugh Nimmo-Smith
3c3df11d32
Support for login + E2EE set up with QR (#9403)
* Support for login + E2EE set up with QR

* Whitespace

* Padding

* Refactor of fetch

* Whitespace

* CSS whitespace

* Add link to MSC3906

* Handle incorrect typing in MatrixClientPeg.get()

* Use unstable class name

* fix: use unstable class name

* Use default fetch client instead

* Update to revised function name

* Refactor device manager panel and make it work with new sessions manager

* Lint fix

* Add missing interstitials and update wording

* Linting

* i18n

* Lint

* Use sensible sdk config name for fallback server

* Improve error handling for QR code generation

* Refactor feature availability logic

* Hide device manager panel if no options available

* Put sign in with QR behind lab setting

* Reduce scope of PR to just showing code on existing device

* i18n updates

* Handle null features

* Testing for LoginWithQRSection

* Refactor to handle UIA

* Imports

* Reduce diff complexity

* Remove unnecessary change

* Remove unused styles

* Support UIA

* Tidy up

* i18n

* Remove additional unused parts of flow

* Add extra instruction when showing QR code

* Add getVersions to server mocks

* Use proper colours for theme support

* Test cases

* Lint

* Remove obsolete snapshot

* Don't override error if already set

* Remove unused var

* Update src/components/views/settings/devices/LoginWithQRSection.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update src/components/views/auth/LoginWithQR.tsx

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

* Update res/css/views/auth/_LoginWithQR.pcss

Co-authored-by: Kerry <kerrya@element.io>

* Use spacing variables

* Remove debug

* Style + docs

* preventDefault

* Names of tests

* Fixes for js-sdk refactor

* Update snapshots to match test names

* Refactor labs config to make deployment simpler

* i18n

* Unused imports

* Typo

* Stateless component

* Whitespace

* Use context not MatrixClientPeg

* Add missing context

* Type updates to match js-sdk

* Wrap click handlers in useCallback

* Update src/components/views/settings/DevicesPanel.tsx

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

* Wait for DOM update instead of timeout

* Add missing snapshot update from last commit

* Remove void keyword in favour of then() clauses

* test main paths in LoginWithQR

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Kerry <kerrya@element.io>
2022-10-19 13:31:20 +01:00
kegsay
e946674df3
Store refactor: use non-global stores in components (#9293)
* Add Stores and StoresContext and use it in MatrixChat and RoomView

Added a new kind of class:
- Add God object `Stores` which will hold refs to all known stores and the `MatrixClient`. This object is NOT a singleton.
- Add `StoresContext` to hold onto a ref of `Stores` for use inside components.

`StoresContext` is created via:
- Create `Stores` in `MatrixChat`, assigning the `MatrixClient` when we have one set. Currently sets the RVS to `RoomViewStore.instance`.
- Wrap `MatrixChat`s `render()` function in a `StoresContext.Provider` so it can be used anywhere.

`StoresContext` is currently only used in `RoomView` via the following changes:
- Remove the HOC, which redundantly set `mxClient` as a prop. We don't need this as `RoomView` was using the client from `this.context`.
- Change the type of context accepted from `MatrixClientContext` to `StoresContext`.
- Modify alllll the places where `this.context` is used to interact with the client and suffix `.client`.
- Modify places where we use `RoomViewStore.instance` and replace them with `this.context.roomViewStore`.

This makes `RoomView` use a non-global instance of RVS.

* Linting

* SDKContext and make client an optional constructor arg

* Move SDKContext to /src/contexts

* Inject all RVS deps

* Linting

* Remove reset calls; deep copy the INITIAL_STATE to avoid test pollution

* DI singletons used in RoomView; DI them in RoomView-test too

* Initial RoomViewStore.instance after all files are imported to avoid cyclical deps

* Lazily init stores to allow for circular dependencies

Rather than stores accepting a list of other stores in their constructors,
which doesn't work when A needs B and B needs A, make new-style stores simply
accept Stores. When a store needs another store, they access it via `Stores`
which then lazily constructs that store if it needs it. This breaks the
circular dependency at constructor time, without needing to introduce
wiring diagrams or any complex DI framework.

* Delete RoomViewStore.instance

Replaced with Stores.instance.roomViewStore

* Linting

* Move OverridableStores to test/TestStores

* Rejig how eager stores get made; don't automatically do it else tests break

* Linting

* Linting and review comments

* Fix new code to use Stores.instance

* s/Stores/SdkContextClass/g

* Update docs

* Remove unused imports

* Update src/stores/RoomViewStore.tsx

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

* Remove empty c'tor to make sonar happy

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-19 13:07:03 +01:00
Florian Duros
460f60e99d
First attempt to make the edition works in the WysiwygComposer 2022-10-19 12:45:51 +02:00
Michael Weimann
84f2974b57
Always show voice broadcasts tile (#9444) 2022-10-19 12:04:15 +02:00
Andy Balaam
e0ab0ac5c9
Allow pressing Enter to send messages in new composer (#9451)
* Allow pressing Enter to send messages in new composer

* Cypress tests for composer send behaviour
2022-10-19 03:07:21 +00:00
Kerry
b04991a962
Device manager - put client/browser device metadata in correct section (#9447) 2022-10-18 13:00:01 +00:00
Timo
372720ec8b
Room call banner (#9378)
Signed-off-by: Timo K <timok@element.io>
Co-authored-by: Timo K <timok@element.io>
Co-authored-by: Robin <robin@robin.town>
2022-10-17 21:36:17 +02:00
Michael Telatynski
13db1b17be
Prevent useContextMenu isOpen from being true if the button ref goes away (#9418) 2022-10-17 17:42:04 +01:00
Kerry
877c95df8f
device manager - add spinners while devices are signing out (#9433) 2022-10-17 17:14:49 +02:00
Andy Balaam
e38c9e036c
Automatically focus the WYSIWYG composer when you enter a room (#9412)
Automatically focus the WYSIWYG composer when you enter a room
2022-10-17 11:48:47 +00:00
Kerry
2d9f828810
Device manager - silence call ringers when local notifications are silenced (#9420)
* silence call ringers when local notifications are silenced

* more coverage for silencing

* explain disabled silence button

* lint

* increase wait for modal

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-17 09:16:04 +00:00
Florian Duros
2146c91343
Merge branch 'develop' into feat/reply-support-wysiwyg-composer 2022-10-14 17:21:46 +02:00
Michael Telatynski
cf1b592f26
Update overly sensitive snapshot (#9421)
* Update snapshot

* Fix tests by adding missing stub
2022-10-14 15:57:12 +01:00
Florian Duros
d1a98b632e
Add test to attachRelation 2022-10-14 16:42:45 +02:00
Florian Duros
e8d0fb0ab0
Fix linting in test 2022-10-14 16:03:45 +02:00
Florian Duros
4ba3f99489
Add reply support to WysiwygComposer 2022-10-14 15:52:05 +02:00
Kerry
17fce6ccb2
Device manager - device tile main click target (#9409)
* change device tile click to toggle details instead of selection

* lint

* test current device section click

* stuck cypress
2022-10-14 12:43:20 +01:00
Florian Duros
c0bf45fddc
Rename wysiwyg prop into composer 2022-10-14 10:56:34 +02:00
Florian Duros
a557c7f583
Merge branch 'develop' into feat/add-formating-buttons-to-wysiwyg 2022-10-13 18:55:03 +02:00
Florian Duros
53fce572aa
Add FormattingButtons test 2022-10-13 18:53:20 +02:00
Florian Duros
ac8397aa0f
Fix test 2022-10-13 16:46:47 +02:00
Germain
4c8b4116eb
Migrate KeyboardShortcut tests from Enzyme to RTL (#9405)
* Migrate tests from Enzyme to RTL

* Fix languageHandler tests

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-13 14:32:45 +01:00
Kerry
776ffa4764
Device manager - current session context menu (#9386)
* add destructive option and close on interaction options

* add kebab context menu wrapper

* use kebab context menu in current device section

* use named export

* lint

* sessionman tests
2022-10-13 09:07:34 +02:00
Michael Telatynski
8b54be6f48
Move from browser-request to fetch (#9345) 2022-10-12 18:59:07 +01:00
Michael Weimann
cd806427c8
Add MessageEvent voice broadcast setting watch (#9399) 2022-10-12 11:34:41 -06:00
Kerry
03182d03be
Device manager - add settings subsection heading component (#9387)
* add settings subsection heading component

* use named export

* newline
2022-10-11 20:12:02 +02:00
Kerry
87d3fbd996
Device manager - promote to beta (#9380)
* promote new session manager to beta

* hide old sessions section when new dm enabled

* use correct logic

* add new ViewUserDeviceSettings action

* replace device management ctas with viewUserDeviceSettings

* test SecurityUserSettingsTab

* more complete mocks

* more thorough mocks

* more mocks

* test LabsUserSettingsTab

* lint

* updated copy

* update snaps for new copy
2022-10-11 11:10:55 +02:00
Florian Duros
7ad39ba6c7
Merge branch 'develop' into feat/matrix-wysisyg-integration 2022-10-10 17:42:59 +02:00
Florian Duros
f8ec4ec1ed
Disable wysiwyg at the end of the test 2022-10-10 17:42:15 +02:00
Florian Duros
6c7158197c
Add test in MessageComposer 2022-10-10 17:36:18 +02:00
Michael Telatynski
6b30a5e1c9
Migrate some enzyme tests to RTL (#9383) 2022-10-10 16:29:10 +01:00
Florian Duros
ec1140e274
Fix type errors 2022-10-10 17:06:41 +02:00
Florian Duros
5bdac78fc7
Merge remote-tracking branch 'origin/develop' into feat/matrix-wysisyg-integration 2022-10-10 17:04:27 +02:00
Florian Duros
101fd629df
Add WysiwygComposer test 2022-10-10 16:50:36 +02:00
Florian Duros
667e8ef10f
Add tests to message.ts 2022-10-10 11:16:42 +02:00
Šimon Brandner
bb71c86c8a
Add Element Call participant limit (#9358) 2022-10-07 20:16:35 +00:00
Šimon Brandner
26a74a193f
Add Element Call room settings (#9347)
Co-authored-by: Robin <robin@robin.town>
2022-10-07 18:10:17 +00:00
Šimon Brandner
6b1ee13c28
Always allow enabling sending read receipts (#9367)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-07 15:10:18 +02:00
Kerry
c9f5d57fa0
Device manager - render extended device information (#9360)
* record device client inforamtion events on app start

* matrix-client-information -> matrix_client_information

* fix types

* remove another unused export

* add docs link

* display device client information in device details

* update snapshots

* integration-ish test client information in metadata

* tests

* fix tests

* export helper

* DeviceClientInformation type

* Device manager - select all devices (#9330)

* add device selection that does nothing

* multi select and sign out of sessions

* test multiple selection

* fix type after rebase

* select all sessions

* rename type

* use ExtendedDevice type everywhere

* rename clientName to appName for less collision with UA parser

* fix bad find and replace

* rename ExtendedDeviceInfo to ExtendedDeviceAppInfo

* rename DeviceType comp to DeviceTypeIcon

* update tests for new required property deviceType

* add stubbed user agent parsing

* setup test cases

* detect device type correctly

* 80% working ua parser

* parse asera gents for device info

* combine clientName/Version into one field, remove debug from tests

* add new metadata to device details

* render device info from UA
2022-10-07 08:49:35 +00:00
Robin
06dbea6255
New group call experience: Room header and PiP designs (#9351)
* Update our cancel icon

The cancel icon we're using in the app has drifted out of sync with the ones used in our designs. We also had two identical-looking icons, so this consolidates them into one.

I've simultaneously updated our chevron icons, since in the case of the 'jump to unread' timeline button, it became clear that the weight of the new close icon did not match the thinner chevron.

* Don't squish bottom/top-aligned tooltips near the edge of the screen

* Close the timeline panel when returning to the fullscreen timeline view

* Add layout switching capabilities to ElementCall

* Bring the room header in line with the group call designs

* Bring the PiP header in line with the group call designs

* Fix lints

* Clarify tooltip CSS calculations

* Test PipView

* Expand RoomHeader test coverage

* Test PipView more
2022-10-07 02:27:28 +00:00
Kerry
5e18abe7f7
Device manager - device type icon (#9355)
* record device client inforamtion events on app start

* matrix-client-information -> matrix_client_information

* fix types

* remove another unused export

* add docs link

* display device client information in device details

* update snapshots

* integration-ish test client information in metadata

* tests

* fix tests

* export helper

* DeviceClientInformation type

* Device manager - select all devices (#9330)

* add device selection that does nothing

* multi select and sign out of sessions

* test multiple selection

* fix type after rebase

* select all sessions

* rename type

* use ExtendedDevice type everywhere

* rename clientName to appName for less collision with UA parser

* fix bad find and replace

* rename ExtendedDeviceInfo to ExtendedDeviceAppInfo

* rename DeviceType comp to DeviceTypeIcon

* update tests for new required property deviceType

* add stubbed user agent parsing

* add icons

* set device type icon

* device type icon tets

* update snapshots for device type icon changes

* desktop icon viewbox

* i18n
2022-10-06 10:34:11 +00:00
Kerry
8399b63e7a
fix threadsupport type issues in tests (#9359) 2022-10-06 08:35:06 +00:00
Kerry
bd270b08df
Device manager - add foundation for extended device info (#9344)
* record device client inforamtion events on app start

* matrix-client-information -> matrix_client_information

* fix types

* remove another unused export

* add docs link

* display device client information in device details

* update snapshots

* integration-ish test client information in metadata

* tests

* fix tests

* export helper

* DeviceClientInformation type

* Device manager - select all devices (#9330)

* add device selection that does nothing

* multi select and sign out of sessions

* test multiple selection

* fix type after rebase

* select all sessions

* rename type

* use ExtendedDevice type everywhere

* rename clientName to appName for less collision with UA parser

* fix bad find and replace

* rename ExtendedDeviceInfo to ExtendedDeviceAppInfo

* rename DeviceType comp to DeviceTypeIcon

* update tests for new required property deviceType

* add stubbed user agent parsing
2022-10-05 11:41:01 +00:00
Kerry
16c3efead5
Device manager - display client information in device details (PSG-682) (#9315)
* record device client inforamtion events on app start

* matrix-client-information -> matrix_client_information

* fix types

* remove another unused export

* add docs link

* display device client information in device details

* update snapshots

* integration-ish test client information in metadata

* tests

* fix tests

* export helper

* DeviceClientInformation type
2022-10-04 13:12:23 +00:00
Kerry
c59bbdf917
Device manager - select all devices (#9330)
* add device selection that does nothing

* multi select and sign out of sessions

* test multiple selection

* fix type after rebase

* select all sessions
2022-10-04 08:12:07 +00:00
Robin
ff59f68a9f
New group call experience: Call tiles (#9332)
* Add call tiles

* Factor CallDuration out into a reusable component

* Correct the separator character in LiveContentSummary
2022-09-30 19:26:08 +00:00
David Baker
07a5a1dc6f
Fix device selection in pre-join screen for Element Call video rooms (#9321)
* Fix device selection in pre-join screen for Element Call video rooms

As per https://github.com/vector-im/element-call/pull/609

* Update unit test

* Lint

* Hold a media stream while we enumerate device so we can do so reliably.

This means we can remove the device fallback labels.

* i18n

* Remove unnecessary useState

* Fix fetching video devices when video muted

* Actually fix preview stream code

* Fix unit test now fallback is no longer a thing

* Test changing devices
2022-09-30 17:28:53 +01:00
Kerry
772df30212
Device manager - sign out of multiple sessions (#9325)
* add device selection that does nothing

* multi select and sign out of sessions

* test multiple selection

* fix type after rebase
2022-09-30 09:07:50 +02:00
Michael Weimann
7a33818bd7
Extract createVoiceMessageContent (#9322) 2022-09-29 13:06:49 -06:00
Germain
3e076c8246
Fixes to ensure account data values do not go stale (#9331)
* Fixes to ensure account data values do not go stale

* Remove unneeded cli.off

* fix test
2022-09-29 13:05:06 -06:00
Kerry
951cad98d3
Device manager - extract filtered device list header (#9323)
* extract filtered device list header

* stylelint
2022-09-29 09:22:00 +02:00
Germain
c3bfb6e4a9
Display push toggle for web sessions (MSC3890) (#9327) 2022-09-28 18:18:10 +01:00
Germain
e15ef9f3de
Add device notifications enabled switch (#9324) 2022-09-28 18:13:09 +01:00
Germain
641cf28e4c
Implement push notification toggle in device detail (#9308)
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-09-27 13:35:54 +01:00
Robin
ace6591f43
New group call experience: Starting and ending calls (#9318)
* Create m.room calls in video rooms, and m.prompt calls otherwise

* Terminate a call when the last person leaves

* Hook up the room header button to a unified CallView component

* Write more tests
2022-09-27 07:54:51 -04:00
Robin
d077ea1990
New group call experience: Room header call buttons (#9311)
* Make useEventEmitterState more efficient

By not invoking the initializing function on every render

* Make useWidgets more efficient

By not calling WidgetStore on every render

* Add new group call experience Labs flag

* Add viewingCall field to RoomViewStore state

Currently has no effect, but in the future this will signal to RoomView to show the call or call lobby.

* Add element_call.use_exclusively config flag

As documented in element-web, this will tell the app to use Element Call exclusively for calls, disabling Jitsi and legacy 1:1 calls.

* Make placeCall return a promise

So that the UI can know when placeCall completes

* Update start call buttons to new group call designs

Since RoomView doesn't do anything with viewingCall yet, these buttons won't have any effect when starting native group calls, but the logic is at least all there and ready to be hooked up.

* Allow calls to be detected if the new group call experience is enabled

* Test the RoomHeader changes

* Iterate code
2022-09-25 10:57:25 -04:00
Faye Duxovni
12e3ba8e5a
Make device ID copyable in device list (#9297) 2022-09-23 09:21:04 -04:00
Michael Telatynski
56c95467de
Don't show feedback prompts when that UIFeature is disabled (#9305) 2022-09-22 15:08:14 +01:00
Michael Weimann
c182c1c706
Generalise VoiceRecording (#9304) 2022-09-21 18:46:28 +02:00
Michael Weimann
0cc4f4e1bc
Add voice broadcast permissions (#9284)
* Add Voice Broadcast labs setting and composer button

* Implement strict typing

* Extend MessageComposer-test

* Extend tests

* Revert some strict type fixex

* Implement voice broadcast permissions

* Update variable casing
2022-09-19 06:42:29 +00:00
Robin
cb735c9439
Element Call video rooms (#9267)
* Add an element_call_url config option

* Add a labs flag for Element Call video rooms

* Add Element Call as another video rooms backend

* Consolidate event power level defaults

* Remember to clean up participantsExpirationTimer

* Fix a code smell

* Test the clean method

* Fix some strict mode errors

* Test that clean still works when there are no state events

* Test auto-approval of Element Call widget capabilities

* Deduplicate some code to placate SonarCloud

* Fix more strict mode errors

* Test that calls disconnect when leaving the room

* Test the get methods of JitsiCall and ElementCall more

* Test Call.ts even more

* Test creation of Element video rooms

* Test that createRoom works for non-video-rooms

* Test Call's get method rather than the methods of derived classes

* Ensure that the clean method is able to preserve devices

* Remove duplicate clean method

* Fix lints

* Fix some strict mode errors in RoomPreviewCard

* Test RoomPreviewCard changes

* Quick and dirty hotfix for the community testing session

* Revert "Quick and dirty hotfix for the community testing session"

This reverts commit 37056514fbc040aaf1bff2539da770a1c8ba72a2.

* Fix the event schema for org.matrix.msc3401.call.member devices

* Remove org.matrix.call_duplicate_session from Element Call capabilities

It's no longer used by Element Call when running as a widget.

* Replace element_call_url with a map

* Make PiPs work for virtual widgets

* Auto-approve room timeline capability

Because Element Call uses this now

* Create a reusable isVideoRoom util
2022-09-16 11:12:27 -04:00
Michael Weimann
db5716b776
Fix SessionManagerTab-test (#9291) 2022-09-16 12:00:01 +00:00
Michael Weimann
a0c35d088a
Add Voice Broadcast labs setting and composer button (#9279)
* Add Voice Broadcast labs setting and composer button

* Implement strict typing

* Extend MessageComposer-test

* Extend tests

* Revert some strict type fixex

* Convert FEATURES to enum; change case

* Use fake timers in MessageComposer-test
2022-09-16 09:10:33 +00:00
Michael Telatynski
4a23630e06
Fix soft crash around inviting invalid MXIDs in start DM on first message flow (#9281)
* Fix soft crash around inviting invalid MXIDs

* Make ts --strict happier

* Prevent suggesting invalid MXIDs

* Add tests

* Fix coverage

* Fix coverage

* Make tsc --strict happier

* Fix test

* Add tests
2022-09-16 09:03:17 +01:00
Kerry
4fec436883
Device manager - rename session (PSG-528) (#9282)
* split heading into component

* switch between editing and view

* style file

* basic tests

* style device rename component

* add loading state

* kind of handle missing current device in drilled props

* use local loading state, add basic error message

* integration-ish test rename

* tidy

* fussy import ordering

* strict errors
2022-09-15 16:34:50 +02:00
Kerry
8d9e5237fd
add generic caption typography component (#9283) 2022-09-15 11:53:21 +02:00
Kerry
10bb10539b
Device manager - logout of other session (PSG-744) (#9280)
* add sign out of current device section in device details

* lint

* add sign out cta for other sessions

* test other device sign out

* add pending sign out loader

* tidy

* fix strict error

* use gap instead of nbsp

* use more specific assertions in tests, tweak formatting

* tweak test
2022-09-14 16:18:32 +00:00
Kerry
f20d86b7b8
Device manager - logout current session (PSG-743) (#9275)
* trigger verification of other devices

* add sign out of current device section in device details

* fix classname

* lint

* strict type fix

* fix test

* improve mocked VerifReq
2022-09-14 14:37:36 +02:00
Michael Weimann
41960b164b
Fix unknonw div props in context menu (#9277) 2022-09-14 14:05:38 +02:00
Kerry
4623d84dd0
Device manager - verify other devices (PSG-724) (#9274)
* trigger verification of other devices

* tests

* fix strict errors

* add types
2022-09-14 10:40:26 +00:00
Kerry
d69393a3aa
Device manager - filter out nulled metadatas in device tile properly (PSG-703) (#9251)
* filter out nulled metadatas in device tile properly

* remove log
2022-09-12 11:06:12 +00: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
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
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
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
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
Š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
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
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
05e179f856
make beacon events more specific (#9186) 2022-08-16 10:23:25 +02: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
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
Travis Ralston
fe60609fb2
Update test snapshots for code landed on develop (#9171) 2022-08-10 20:07:55 +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
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
Kerry
5a9c2e530a
Device manager - selectable device tile wrapper (PSG-637) (#9153)
* add selectabledevicetile wrapper

* set pointer cursor

* line up own device icon with new checkboxes
2022-08-09 13:07:25 +00:00
Kerry
eb2e61e9cf
Device manager: generic settings subsection component (PSG-636) (#9147)
* add feature_new_device_manager labs flag

* add generic settings tab container

* settingstab section styles

* add session manager tab to user settings

* add sessions tab case to UserSettingDialog test

* fussy import ordering

* remove posthog tracking

* i18n

* add generic settings subsection component
2022-08-09 10:14:30 +02:00
Kerry
ed67aec334
Device Manager - add new labsed session manager screen (PSG-636) (#9119)
* add feature_new_device_manager labs flag

* add generic settings tab container

* settingstab section styles

* add session manager tab to user settings

* add sessions tab case to UserSettingDialog test

* fussy import ordering

* remove posthog tracking

* i18n
2022-08-08 13:51:00 +00:00
Johannes Marbach
4a14882938
Move pin drop out of labs (PSG-664) (#9135)
* Move pin drop out of labs (PSG-664)

Signed-off-by: Johannes Marbach <johannesm@element.io>

* Regenerate strings

Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-08-08 10:57:38 +02:00
Kerry
94f3168ab8
Device manager - New device tile info design (#9122)(PSG-637)
* redesign device tile info

* test DeviceTile except for broken date mocking

* mock dates the nice way, test lastactivity in device tile

* tweak spacing style

* update comment style in rethemendex

* i18n
2022-08-08 06:59:22 +00:00
Michael Weimann
ed8ccb5d80
Start DM on first message (#8612) 2022-08-04 08:19:52 +02:00
Robin
0e0be08781
Remove "Add Space" button from RoomListHeader when user cannot create spaces (#9129)
* Remove Add Space button in RoomListHeader when user cannot createSpaces

* Reuse the same booleans as SpaceContextMenu

* Code review fixes

* Fix test for standard case

* Refactor tests and add more

* Test the PlusMenu, where the bug originally was

* Add tests for plus menu

* Refactor tests

* add type in functions and use DMRoomMap#setShared

* use of wrapInMatrixClientContext

* Trigger CI

* Ignore enzyme deprecation in RoomListHeader-test.tsx

Co-authored-by: Estelle Comment <estelle.comment@gmail.com>
Co-authored-by: mcalinghee <mcalinghee.dev@gmail.com>
Co-authored-by: Michael Weimann <michaelw@matrix.org>
2022-08-03 15:19:24 +00:00
Michael Weimann
27ba1e57e6
Update matrix-org/react (enzyme deprecation) (#9116) 2022-08-02 15:10:43 +02:00
Michael Telatynski
d5db131eef
Spike AXE A11Y testing in Cypress (#9111)
* Spike AXE A11Y testing in Cypress

* Fix NewRoomIntro breaking html/aria list rules

* Fix HeaderButtons breaking aria role semantics rules

* missing type

* Switch left panel from aside to nav and include space panel

* Give the page a main heading of the room name when viewing a room

* Use header landmark on RoomHeader

* Improve aria attributes on composer when autocomplete is closed

* Fix aria-owns on RoomHeader

* Give Spinner an aria role

* Give server picker help button an aria label

* Improve auth aria attributes and semantics

* Improve heading semantics in use case selection screen

* Fix autocomplete attribute to be valid

* Fix heading semantics on login page

* Improve Cypress axe testing

* Add axe tests

* Stop synapse after the timeline tests

* Await spinners to fade before percy snapshotting timeline tests

* Improve naming of plugin

* Update snapshots

* Fix accidental heading change

* Fix double synapse stoppage

* Fix Cypress timeline avatar assertions to be DPI agnostic

* Fix aria attributes on date separators

* delint

* Update snapshots

* Revert style change

* Skip redundant call
2022-08-01 08:31:14 +01:00
Kerry
05cc5f62dd
test UserSettingsDialog (#9118) 2022-08-01 06:47:13 +00:00
Kerry
0357b4f0dc
leave maximised map when beacons expire (#9098) 2022-07-27 17:42:59 +02:00
Šimon Brandner
787ace9dc5
Add Reply in thread button to the right-click message context-menu (#9004) 2022-07-23 12:13:49 +00:00
Michael Weimann
9edd49818c
Prepare room components for local rooms (#9082) 2022-07-20 15:07:06 +02:00
Michael Weimann
fa1bff67cf
Wire local room logic (#9078)
* Wire local room logic

* Migrate to testling-lib; update test descriptions
2022-07-20 09:26:25 +02:00
Kerry
dc6ceb1d1c
Live location share - focus on user location on list item click (PSG-609) (#9051)
* extract preventDefaultWrapper into utils

* add click handling to beacon list item

* add click handling to dialog sidebar

* focus in on beacons when clicked in list

* stylelint

* fussy import ordering

* test beacon focusing in beaocnviewdialog
2022-07-18 08:34:39 +00:00
yaya-usman
017f489be6 nits fixes 2022-07-15 22:55:11 +03:00
Kerry
bda272dce4
Live location share - handle insufficient permissions in location sharing (PSG-610) (#9047)
* handle insufficient permissions in location sharing

* reformat ternaries
2022-07-13 10:55:08 +00:00
Kerry
c44c8ba654
Live location share - labels update: "stop sharing" -> "stop" (PSG-618) (#9048) 2022-07-13 06:50:38 +00:00
Michael Weimann
3be20cf434
Use doMaybeLocalRoomAction (#9038)
* Use doMaybeLocalRoomAction

* Revert unnecessary changes
2022-07-13 07:56:36 +02:00
Michael Telatynski
e576347b62
Fix pinned messages not re-linkifying on edit (#9042)
* Fix pinned messages not re-linkifying on edit

* Fix tests
2022-07-12 07:27:45 +01:00
Šimon Brandner
19e514d83c
Remove dead code (#9035) 2022-07-11 07:52:44 +02:00
Kerry
60faf6d025
Live location share - tiles without tile server (PSG-591) (#8962)
* live location without map POC

* styles

* force map tiles to show no map for test build

* check latestlocationstate exists

* just use loading style map fallback when cant display map

* style map error for tile view

* set pointer cursor when map error is clickable

* test mbeaconbody with map display error, lint

* lint more good

* remove changes for first attempt tile

* make maperror test id more accurate

* fussy import ordering

* PR tweaks
2022-07-06 14:34:33 +00:00
Kerry
7afc8c5869
Task - replace img icons with svg components (#8963)
* add role=presentation to backdrop panle image

* replace img icons with svg components in InviteDialog

* replace img icon with svg component

* img icons to svg icons in MImageBody

* remove log

* img icon to svg in SecurityRoomSettingsTab

* use shared error message for media message tiles

* remove nbsp

* dont snapshot test entire rtl render response

* use aria-describedby for uploadconfirm preview

* use aria-labelledby instead
2022-07-06 13:29:26 +02:00
sha-265
a009f8001a
Add bidirectonal isolation for pills (#8985) 2022-07-05 11:37:35 +00:00
Kerry
ed92071046
Live location share - open latest location in map site (#8981)
* move getForwardableBeacon to beacon utils

* move event transform type up

* add helper to get shareable-as-locaion events

* use getShareableLocationEvent in MessageContextMenu

* test opening in maplink

* fix bad copy pasted tests
2022-07-04 16:05:55 +02:00
Kerry
4eab0deeb3
Live location share - explicitly stop beacons replaced beacons (PSG-544) (#8933)
* explicitly stop beacons before creating new ones

* remove unnecessary optional chain
2022-06-30 07:33:51 +00:00
Kerry
4486509d88
Live location share - redact related locations on beacon redaction (PSF-1151) (#8926)
* redact beacon locations on redaction

* redact beacon locations on beacon info redaction

* fussy import ordering

* use real fake redaction in beaconbody test
2022-06-29 09:07:36 +00:00
Kerry
eaf13d490e
Live location share - disallow message pinning (PSF-1084) (#8928)
* unmock isContentActionable

* test message pinning

* disallow pinning for beacon events

* try to make tests more readable
2022-06-29 07:11:33 +00:00
Michael Telatynski
e7a8dbd04c
Revert recent composer changes (#8840)
* Revert "Prevent new composer from overflowing from non-breakable text (#8829)"

This reverts commit 57dff8131c.

* Revert "Fix scroll jump issue with the composer (#8791)"

This reverts commit 5167521ea4.

* Revert "Fix scroll jump issue with the composer (#8788)"

This reverts commit f568a76dc6.

* Revert "Revert link color change in composer (#8784)"

This reverts commit aedbeb2995.

* Revert "Improve composer visiblity (#8578)"

This reverts commit f14374a51c.
2022-06-27 09:43:58 +01:00
Suguru Hirahara
814ca6811c
Improve font scaling panel style (#8887) 2022-06-25 14:20:01 +02:00
Suguru Hirahara
18c21d77cd
Remove references to mx_GroupLayout from scss files (#8875) 2022-06-20 18:55:47 +02:00
Suguru Hirahara
b1e07e8ef0
Make the pill text single line (#8744) 2022-06-19 11:56:37 +02:00
Kerry
b51ef246ab
Live location share - forward latest location (PSF-1044) (#8860)
* handle beacon location events in ForwardDialog

* add transformer for forwarded events in MessageContextMenu

* remove canForward

* update snapshots for beacon model change

* add comments

* fix bad copy pasted test

* add test for beacon locations
2022-06-17 15:27:08 +02:00
Andy Balaam
0a90674e89
Fix crash when drawing blurHash for portrait videos PSB-139 (#8855) 2022-06-17 11:03:29 +00:00
Michael Weimann
aac97e01e3
Reload map on reconnect (#8848)
PSD-282
2022-06-15 16:38:35 +02:00
Janne Mareike Koschinski
5096e7b992
Integrate searching public rooms and people into the new search experience (#8707)
* Implement searching for public rooms and users in new search experience
* Implement loading indicator for spotlight results
* Moved spotlight dialog into own subfolder
* Extract search result avatar into separate component
* Build generic new dropdown menu component
* Build new network menu based on new network dropdown component
* Switch roomdirectory to use new network dropdown
* Replace old networkdropdown with new networkdropdown
* Added component for public room result details
* Extract hooks and subcomponents from SpotlightDialog
* Create new hook to get profile info based for an mxid
* Add hook to automatically re-request search results
* Add hook to prevent out-of-order search results
* Extract member sort algorithm from InviteDialog
* Keep sorting for non-room results stable
* Sort people suggestions using sort algorithm from InviteDialog
* Add copy/copied tooltip for invite link option in spotlight
* Clamp length of topic for public room results
* Add unit test for useDebouncedSearch
* Add unit test for useProfileInfo
* Create cypress test cases for spotlight dialog
* Add test for useLatestResult to prevent out-of-order results
2022-06-15 16:14:05 +02:00
Travis Ralston
39f2bbaaf4
Bring back waveform for voice messages and retain seeking (#8843)
* Crude way of layering the waveform and seek bar

Not intended for production.

* Use a layout prop instead of something less descriptive

* Fix alignment properly, and play with styles

* Convert back to a ball

* Use `transparent` which makes NVDA happy enough

* Allow keyboards in the seek bar

* Try to make the clock behave more correctly with screen readers

MIDNIGHT

* Remove legacy export

* Remove redundant attr

* Appease the linter
2022-06-14 18:13:13 -06:00
Michael Telatynski
3c5c2bef6d
Remove Piwik support (#8835)
* Remove all mentions of Piwik

* Kill off all consumer of the old Piwik Analytics module

* Simplify ModalManager interface

* i18n

* Attempt to fix old e2e tests

* Remove unused component

* Iterate PR
2022-06-14 17:51:51 +01:00
Šimon Brandner
9b8b1d193e
Disable redacting reactions if we don't have sufficient permissions (#8767) 2022-06-10 18:41:05 +00:00
Robin
d9396b0b54
Expire video member events after 1 hour (#8776)
* Expire video member events after 1 hour

* Iterate based on feedback

* Validate the types of video member events better

* Even more parentheses
2022-06-09 13:19:52 +00:00
Kerry
2bdb4d396a
Live location share - show loading UI for beacons with start timestamp in the future (PSF-1081) (#8775)
* check for beacons that are yet to start and show loading ui

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update snapshots for js-sdk rename

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove debug

Signed-off-by: Kerry Archibald <kerrya@element.io>

* Update test/components/views/messages/MBeaconBody-test.tsx

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

* Update src/components/views/beacon/displayStatus.ts

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

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-06-09 13:25:30 +01:00
Michael Telatynski
8036985204
Update matrix-analytics-events to @matrix-org/analytics-events (#8778)
* Update matrix-analytics-events to @matrix-org/analytics-events

* Update install-deps.sh

* Update layered.sh

* Update BeaconMarker-test.tsx.snap

* Update BeaconStatus-test.tsx.snap
2022-06-07 20:08:36 +01:00
Michael Telatynski
21d0aaf524
Use updates stable relations from js-sdk (#8715)
* Use updates stable relations from js-sdk

* Relations is now accessible on the Room instead

* Reuse more existing code and ditch confusing `isThreadRelation`

* Fix last usage of removed `isThreadRelation`

* Update tests to match removal of isThreadRelation

* Tweak method naming to closer match spec

* Fix missing method name change
2022-06-07 11:16:54 +01:00
Kerry
56b0b79fb7
Live location share - link to timeline tile from share warning (PSF-1078) (#8752)
* navigate to live location tile from left panel live warning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* navigate to beacon tile from room live share warning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add cursor

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-06-07 10:15:09 +00:00
Germain
f14374a51c
Improve composer visiblity (#8578)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-06-07 07:28:29 +00:00
Michael Weimann
38b72c4995
Fix disappearing widget poput button (#8754)
See PSC-79
2022-06-06 12:00:18 +02:00
Suguru Hirahara
323e911fe7
Add ellipsis effect to hidden beacon status (#8755) 2022-06-05 05:40:17 +00:00
Michael Weimann
3174cf2606
Improve widget buttons behaviour and layout (#8734)
* Improve widet buttons behaviour and layout

Relates to vector-im/element-web#20506
See PSC-79

Signed-off-by: Michael Weimann <michaelw@matrix.org>

* Add AppTile tests
2022-06-03 12:00:16 +02:00
Kerry
91cbd4dc8a
hide live location option when composer has relation (#8746)
Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-06-03 10:28:19 +02:00
Kerry
79a2dfe171
Live location share - enable reply and react to tiles (#8721)
* test most basic paths in messageactionbar

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use rtl for MessageActionBar test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* make beacon_info events semi actionable

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove log

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test thread exception for beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* eat click events in beacon status to stop jumping from reply tile

Signed-off-by: Kerry Archibald <kerrya@element.io>

* set max width on beaconbody for render in thread panel
2022-06-02 15:43:19 +00:00
Kerry
158e42f764
Unit test MessageActionBar (#8732)
* test most basic paths in messageactionbar

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add rtl

* add code style note about using rtl

Signed-off-by: Kerry Archibald <kerrya@element.io>

* downgrade to rtl 12

* use rtl for MessageActionBar test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* try mocking settingsstore for ci only failure

Signed-off-by: Kerry Archibald <kerrya@element.io>

* mock setValue too

Signed-off-by: Kerry Archibald <kerrya@element.io>

* uupdate lockfile

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-06-02 10:25:56 +02:00
Kerry
15c2fb6b71
Live location sharing - open location in OpenStreetMap (PSF-1040) (#8695)
* share plain lat,lon string from beacon tooltip and list item

Signed-off-by: Kerry Archibald <kerrya@element.io>

* export makeMapSiteLink helper fn

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use currentColor in external-link.svg

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add open in openstreetmap link

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fussy import ordering

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix icon color var

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-27 11:58:39 +02:00
Kerry
14cf6275d0
Fix: AccessibleButton does not set disabled attribute (PSF-1055) (#8682)
* remove old styles for pin drop buttons

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fully disable share location button until location is shared

Signed-off-by: Kerry Archibald <kerrya@element.io>

* set disabled on button

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test AccessibleButton disabled

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove disbaled check in LocationPicker

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-27 07:13:50 +00:00
Michael Telatynski
fe21ec8715
Consolidate random string generation to make Sonar happier (#8675)
* Consolidate random string generation to make Sonar happier

* Update snapshots
2022-05-24 09:05:11 +01:00
Michael Weimann
1535ff0d6c
Move map attribution to top right (#8621)
Signed-off-by: Michael Weimann <michaelw@matrix.org>

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-05-23 12:19:59 +02:00
Kerry
804ddbb332
Live location sharing - update live location tiles (PSF-1027) (#8649)
* update map svg

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add map fallback component, update styls

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update purple location icon style

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fussy import ordering

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-20 09:49:01 +00:00
Travis Ralston
e87bda9f37
Add an option to ignore (block) a user when reporting their events (#8471)
* Add an option to ignore (block) a user when reporting their events

This is primarily useful if the content being reported really doesn't belong on your screen, and the room moderators are slow to react.

Ideally we'd use the word "block" instead of "ignore", but we call it "ignore user" everywhere else. See https://github.com/vector-im/element-web/issues/19590 for further context on the word choice.

This change includes a minor refactor to the styles of labelled toggles (for reusability).

* Appease the linter

* Use a checkbox instead of toggle in the dialog

* Update classnames handling for toggle switch

* Appease the linter
2022-05-18 16:20:55 +00:00
Robin
796e12e789
Go to space landing page when clicking on a selected space (#6442)
* Go to space landing page when clicking on a selected space

Signed-off-by: Robin Townsend <robin@robin.town>

* Go to home landing page when clicking on selected home space

Signed-off-by: Robin Townsend <robin@robin.town>

* Remove metaspace behavior

* Add tests

* Use the dispatcher action enum

* Break up the onClick assignment
2022-05-17 13:22:35 +00:00
James Salter
fcc4d62ede
Fall back to untranslated string rather than showing missing translation error (#8609) 2022-05-16 13:28:24 +01:00
Šimon Brandner
fb30b67b14
Fix issues with the new topic dialog (#8608) 2022-05-16 14:10:00 +02:00
Robin
26bc3ab0aa
Tweak video rooms copy (#8582)
* "Video room" → "New video room"

* "Connect now" → "Join"

* "N people connected" → "N people joined"

* "Connected" → "Joined"

* Fix tests
2022-05-13 12:45:38 +00:00
Kerry
fbbb9c27ba
Live location share - beacon tooltip in maximised view (#8572) PSF-926
* pass optional tooltip prop down through markers

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add beaconstatustooltip, handle overflow on beacon status label

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove debug, fix mouseout

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy comments

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-13 08:30:53 +00:00
Germain
fdd5494402
Add dialog to navigate long room topics (#8517) 2022-05-13 08:55:10 +01:00
Michael Weimann
7ed3089434 Improve tooltip positioning
Signed-off-by: Michael Weimann <michaelw@matrix.org>
2022-05-12 14:05:55 +02:00
Šimon Brandner
5348572439
Write tests for message right-click context menu (#8532) 2022-05-11 18:39:40 +02:00
Michael Telatynski
00984e4434
Fix effect of URL preview toggle not updating live (#8561)
* Remove unused state and fix canPeek

* Fix effect of URL preview toggle not updating live

* Remove stale context fields
2022-05-11 15:11:42 +01:00
Suguru Hirahara
464eb93a44
Fix visual bugs on AccessSecretStorageDialog (#8160)
* Remove duplicate mx_Dialog_buttons

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

* Group buttons on mx_Dialog with span

- Cancel default styling for elements inside .mx_AccessSecretStorageDialog_primaryContainer

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

* Move common rules of mx_Dialog_buttons_row to _common.scss

- Set 16px gap between buttons per https://github.com/vector-im/element-web/issues/19426#issuecomment-949778515

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

* Spacing variables

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

* Nesting - .mx_AccessSecretStorageDialog_reset

- Fix the reset link color
- Set $spacingStart variable

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

* Remove unnecessary rule

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2022-05-11 12:33:21 +00:00
Kerry
c67b41fbde
Enable forwarding static locations (#8553)
* enable forwarding for location events

Signed-off-by: Kerry Archibald <kerrya@element.io>

* allow forwarding of static locations

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add comment

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-10 16:21:20 +00:00
Robin
0b0e414fd4
Fix unresponsive notification toggles (#8549)
* Return consistently typed setting values from localStorage

* Watch notification toggles

* Test that it all works
2022-05-10 09:13:02 -04:00
Travis Ralston
401e124df6 Merge branch 'develop' into 19245-improve-styling-of-search-initialization-errors 2022-05-09 19:32:43 -06:00
Travis Ralston
548290b006
Run a minor code quality checker over the repo (#8524)
* Run a minor code quality checker over the repo

Largely targeted at spelling of common words and misc code issues.

* Update snapshots
2022-05-09 22:52:05 +00:00
Kerry
333dd59f06
test typescriptification - RoomList (#8540)
* test/components/views/rooms/RoomList-test.js -> test/components/views/rooms/RoomList-test.tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix ts issues

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-09 13:24:12 +00:00
Michael Telatynski
674aec4050
Fix regression around pasting links (#8537)
* Fix regression around pasting links

* Add tests
2022-05-09 12:39:32 +00:00
Kalle Struik
7c07ad155c Improve the styling of search initialization errors.
Signed-off-by: Kalle Struik <kalle@kallestruik.nl>
2022-05-09 11:20:36 +02:00
Robin
765a715fce
Remove duplicate tooltip from user pills (#8512)
* Remove duplicate tooltip from user pills

* Fix test
2022-05-06 21:26:32 +00:00
Kerry
e97536ef96
Live location sharing - refresh beacon timers on tab becoming active (#8515)
* add visibilitychange listener

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* restore event listener mock

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-06 11:33:09 +02:00
Kerry
2c19d286ed
Eslint - require copyright header rule (#8514)
* bump eslint plugin to 0.5.2

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add rule

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add missing copyright headers

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix comment order

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-06 09:09:28 +00:00
Kerry
2e3185a4bc
test typescriptification - dialogs (#8497)
* /Users/kerry/code/matrix-react-sdk/test/components/views/dialogs/InteractiveAuthDialog-test.js -> tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix ts issues

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test/components/views/dialogs/AccessSecretStorageDialog-test.js -> tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix ts issues in AccessSecretSstorageDialog-test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update copyrights

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-06 10:25:18 +02:00
Šimon Brandner
b12c002602
Order receipts with the most recent on the right (#8506) 2022-05-05 12:10:48 +00:00
Kerry
ce3bc9dc07
test typescriptification - EventListSummary (#8493)
* test/components/views/elements/EventListSummary-test.js -> tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add user mocks util

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-04 16:37:41 +02:00
Kerry
12af3038a8
fix message indent in thread view (#8462)
Signed-off-by: Kerry Archibald <kerrya@element.io>

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-05-03 13:51:50 +02:00
Kerry
3b1e715854
Live location sharing: remove geoUri logs (#8465)
* remove geoUri logs

Signed-off-by: Kerry Archibald <kerrya@element.io>

* Update src/components/views/location/Map.tsx

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

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-05-03 08:29:43 +00:00
Kerry
f280fab47d
test typescriptification - ForwardDialog (#8469)
* test/components/views/dialogs/ForwardDialog-test.js -> tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix ts issues in ForwardDialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove unused stub-component

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-03 08:22:38 +00:00
Robin
1c70696b10
Don't linkify code blocks (#7859)
* Don't linkify code blocks

Signed-off-by: Robin Townsend <robin@robin.town>

* Put the linkify ignoreTags option in the right place

Signed-off-by: Robin Townsend <robin@robin.town>

* Add code to list of ignored linkification tags as well

Signed-off-by: Robin Townsend <robin@robin.town>

* Test that code blocks skip linkification

Signed-off-by: Robin Townsend <robin@robin.town>

* Move test to the right spot

Signed-off-by: Robin Townsend <robin@robin.town>

* Use a snapshot instead for test

Signed-off-by: Robin Townsend <robin@robin.town>
2022-05-03 00:26:37 +00:00
Janne Mareike Koschinski
3e31fdb6a7
read receipts: improve tooltips to show names of users (#8438) 2022-05-02 11:46:11 +02:00
Šimon Brandner
3a245a0cbe
Fix jump to bottom button being always displayed in non-overflowing timelines (#8460) 2022-05-01 19:38:36 -06:00
Emmanuel
d294dad04d
fix timeline search with empty text box should do nothing (#8262)
* fix timeline search with empty text box should do nothing

* test SearchBar component

* fix lint error

* Update SearchBar-test.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-05-02 01:09:59 +00:00
Kerry
472222c195
LLS: error handling on stopping beacon (#8406)
* shared stopping error state for timeline, maxi and room warnign

Signed-off-by: Kerry Archibald <kerrya@element.io>

* check for stopping errors in roomlist share warning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test stopping errors in OwnBeaconStore

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update LeftPanelLiveShareWarning tests for stopping errors

Signed-off-by: Kerry Archibald <kerrya@element.io>

* reinstate try/catch for stopping beacons in create

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove unnecessary and buggy beacon stopping on creation

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-28 12:03:51 +00:00
Kerry
ecd7d8b5e8
Unit test typescriptification - MKeyVerificationConclusion (#8435)
* test/components/views/messages/MKeyVerificationConclusion-test.js -> tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* ts fixes

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add missing copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-28 11:44:04 +00:00
Kerry
699a9aeaaf
LLS: expose way to enable live sharing labs flag from location dialog (#8416)
* add state for waiting for labs flag

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add enable live share component

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test enabling live share labs flag

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-28 13:37:20 +02:00
Kerry
1127db0514
Unit test typescriptification - TextualBody (#8433)
* test/components/views/messages/TextualBody-test.js -> tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix ts issues in textualbody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove type-removing context wrapper, fix more

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-28 09:32:50 +00:00
Kerry
8c6786bad6
LLS: rename wireError (#8401)
* rename wireError in ownbeaconstore to locationPublishError

Signed-off-by: Kerry Archibald <kerrya@element.io>

* rename getLiveBeaconIdsWithWireError -> getLiveBeaconIdsWithLocationPublishError

Signed-off-by: Kerry Archibald <kerrya@element.io>

* rename wire error variables in components

Signed-off-by: Kerry Archibald <kerrya@element.io>

* new snapshots for new test names

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix bad capitalisation on onResetLocationPublishError

Signed-off-by: Kerry Archibald <kerrya@element.io>

* missed variable

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-25 12:44:18 +00:00
Robin
6bfe0436e5
Fix infinite loop when pinning/unpinning persistent widgets (#8396)
Pinning or unpinning a persistent widget, such as Jitsi, could cause the
PiP view and the app drawer to fight for control over the widget, since
the PiP view never realized that it was supposed to relinquish control.
This was due to a race between the WidgetLayoutStore update and the
AppTile lifecycle tracking update.
2022-04-25 08:29:54 -04:00
Kerry
988d300258
Live location sharing: only share to beacons created on device (#8378)
* create live beacons in ownbeaconstore and test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* more mocks in RoomLiveShareWarning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extend mocks in components

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove another comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extra ? hedge in roommembers change

Signed-off-by: Kerry Archibald <kerrya@element.io>

* listen to destroy and prune local store on stop

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tests

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update copy pasted copyright to 2022

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-22 12:05:36 +00:00
Kerry
399ac618c7
LLS: fix jumpy maximised map (#8387)
* add maxzoom to map fit bounds

Signed-off-by: Kerry Archibald <kerrya@element.io>

* take snapshot of bounds at center on dialog open

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-21 18:56:11 +02:00
Robin
c83ad1faa7
Add local echo of connected devices in video rooms (#8368) 2022-04-21 07:41:38 -04:00
Kerry
f2ec465f87
Live location sharing: own live beacon status on maximised view (#8374)
* add floating own live sharing eacon status to maximised view

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add tests for own beacon status

Signed-off-by: Kerry Archibald <kerrya@element.io>

* stylelint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove huge snapshot

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove unused emits from test

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-21 09:06:57 +02:00
Robin
6e86a14cc9
Show a lobby screen in video rooms (#8287)
* Show a lobby screen in video rooms

* Add connecting state

* Test VideoRoomView

* Test VideoLobby

* Get the local video stream with useAsyncMemo

* Clean up code review nits

* Explicitly state what !important is overriding

* Use spacing variables

* Wait for video channel messaging

* Update join button copy

* Show frame on both the lobby and widget

* Force dark theme for video lobby

* Wait for the widget to be ready

* Make VideoChannelStore constructor private

* Allow video lobby to shrink

* Add invite button to video room header

* Show connected members on lobby screen

* Make avatars in video lobby clickable

* Increase video channel store timeout

* Fix Jitsi Meet getting wedged on startup in Chrome and Safari

* Revert "Fix Jitsi Meet getting wedged on startup in Chrome and Safari"

This reverts commit 9f77b8c227c1a5bffa5d91b0c48bf3bbc44d4cec.

* Disable device buttons while connecting

* Factor RoomFacePile into a separate file

* Fix i18n lint

* Fix switching video channels while connected

* Properly limit number of connected members in face pile

* Fix CSS lint
2022-04-20 11:03:33 -04:00
Kerry
4a38cbd550
Live location sharing: beacon list view tiles (#8363)
* add basic sidebar container

Signed-off-by: Kerry Archibald <kerrya@element.io>

* optionally show icon in beaconstatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add avatar and style list item

Signed-off-by: Kerry Archibald <kerrya@element.io>

* formatted last update time

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test beacon list item

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move makeRoomWithState events to test utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move beacon test helpers into utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* newline

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add copyable text to beacon list item

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add copyable geo uri to list item

Signed-off-by: Kerry Archibald <kerrya@element.io>

* improve spacing

Signed-off-by: Kerry Archibald <kerrya@element.io>

* overflow scroll on list

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-20 11:57:50 +00:00
Kerry
e45cd39906
Live location sharing: maximised view sidebar container (#8360)
* add h4

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add mixin to clear list style

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add basic sidebar container

Signed-off-by: Kerry Archibald <kerrya@element.io>

* open list view button on beaconviewdialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update tests for new utils

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-20 08:14:24 +00:00
Kerry
70cdd57a5c
Live location sharing: move test utils into utils (#8365)
* move makeRoomWithState events to test utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move beacon test helpers into utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove file

Signed-off-by: Kerry Archibald <kerrya@element.io>

* more types

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-19 16:47:19 +00:00
Kerry
f70186ea9b
Live location sharing: set map bounds to include all locations (#8324)
* open a dialog with map centered around first beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test dialog opening from beacon body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test beaconmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add bounds to Map comp

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add focusBeacon to beaconviewdialog, use bounds

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use membercolor on beacon view markers

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add lnglatbounds to maplibre mock

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update snapshots for expanded maplibre Map mock

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test map bounds

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy copy paste comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add fallback when no more live locations

Signed-off-by: Kerry Archibald <kerrya@element.io>

* accurate signature for getBoundsCenter

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-19 11:35:39 +00:00
Robin
7335b35fbb
Avoid looking up settings during timeline rendering (#8313)
* Avoid showHiddenEventsInTimeline lookups

* Avoid MSC3531 feature lookups

* Test that showHiddenEventsInTimeline doesn't get looked up while
rendering

* Fix code review nits

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-04-14 23:23:22 +00:00
Kerry
f95106d2c6
Live location sharing - basic maximised beacon map (#8310)
* open a dialog with map centered around first beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add room member markers

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix unmount issue in smart marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* dont throw on no more live locations

Signed-off-by: Kerry Archibald <kerrya@element.io>

* cursor on beacon maps

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fussy import ordering

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test dialog opening from beacon body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test beaconmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test BeaconViewDialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use unstable prefix for wk tile_Server

Signed-off-by: Kerry Archibald <kerrya@element.io>

* unstable prefix for new m.tile_server use in test

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-14 13:14:05 +00:00
Kerry
1c215e2b71
Live location sharing - render users own beacons in timeline (#8296)
* extract location markers into generic Marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* wrap marker in smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* working map in location body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove skinned sdk

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use new ZoomButtons in MLocationBody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test LocationViewDialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update commentt

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extract livetimeremaining into own component

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extract more beacon state utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update tests for roomlivesharewarning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add beacon map and status chin

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add handling for bubbles

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tests for BeaconBody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move displaystatus check up to mbeaconbody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test BeaconStatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* rename BeaconStatusChin -> BeaconStatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* make BeaconStatus generic

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* adjust spinner size

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add static time remaining option to beacon status

Signed-off-by: Kerry Archibald <kerrya@element.io>

* render time differently for own beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use children to add actions to BeaconStatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add OwnBeaconStatus wrapper with stop button

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add error states for own beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test OwnBeaconStatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move ownbeaconstatus to write dir

Signed-off-by: Kerry Archibald <kerrya@element.io>

* improve button styling

Signed-off-by: Kerry Archibald <kerrya@element.io>

* i18n

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-14 14:41:28 +02:00
CommanderRoot
c35fc169f5
Replace deprecated String#substr with String#slice (#8314) 2022-04-14 07:52:42 +00:00
Kerry
e59edb7101
Live location sharing - beacon in timeline happy path (#8285)
* extract location markers into generic Marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* wrap marker in smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* working map in location body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove skinned sdk

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use new ZoomButtons in MLocationBody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test LocationViewDialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update commentt

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extract livetimeremaining into own component

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extract more beacon state utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update tests for roomlivesharewarning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add idle status to live beacon icon

* add beacon map and status chin

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add handling for bubbles

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tests for BeaconBody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* i18n

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move displaystatus check up to mbeaconbody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test BeaconStatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* rename BeaconStatusChin -> BeaconStatus

Signed-off-by: Kerry Archibald <kerrya@element.io>

* make BeaconStatus generic

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* adjust spinner size

Signed-off-by: Kerry Archibald <kerrya@element.io>

* polish and copyrights

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* better comment

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-13 10:44:15 +02:00
Michael Telatynski
8cd715c6a3
Prevent soft crash around room list header context menu when space changes (#8289) 2022-04-12 14:23:04 +00:00
Kerry
661e2c2aa5
Live location sharing - beacon map in timeline (#8286)
* add displaystatus util

Signed-off-by: Kerry Archibald <kerrya@element.io>

* map fallback svg

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add Map to mbeaconbody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add bubble layout handling

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test beaconbody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* typo

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use randomString from js-sdk

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-12 09:13:55 +01:00
Kerry
4b7840bf78
Live location sharing - extract live time UI for reuse (#8283)
* extract livetimeremaining into own component

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extract LiveTimeRemaining for reuse in beacon timeline

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-12 09:24:17 +02:00
Kerry
9ba55d1d14
Live location sharing - consolidate maps (#8236)
* extract location markers into generic Marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* wrap marker in smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* working map in location body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test Map

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove skinned sdk

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update snaps with new mocks

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use new ZoomButtons in MLocationBody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* make LocationViewDialog map interactive

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test MLocationBody

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test LocationViewDialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add copyrights, shrink snapshot

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-11 18:40:06 +02:00
Kerry
b760ec9392
Location sharing - extract isSelfLocation util (#8279)
* extract isSelfLocation into utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* replace use of isSelfLocation

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-11 13:58:35 +02:00
Kerry
aecd71ad15
Live location sharing - update beacon tile with latest location (#8265)
* add useBeacon hook

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update message tile types to work with function comp with ref

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use beacon hook in beacon body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update beacon body with (textual) latest locations, test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* language in comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comments

Signed-off-by: Kerry Archibald <kerrya@element.io>

* copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-11 09:16:32 +00:00
Kerry
94385169f1
Live location sharing - smart location marker (#8232)
* extract location markers into generic Marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* wrap marker in smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test smartmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove skinned-sdk

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* better types for LocationBodyContent

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-11 10:29:24 +02:00
Kerry
df20821fd6
Live location sharing - extract zoom buttons into component (#8235)
* extract out zoombuttons component

* newline

Signed-off-by: Kerry Archibald <kerrya@element.io>

* stylelint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove skinned sdk

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-11 10:29:07 +02:00
Kerry
03d0969ae3
Live location sharing - update beacon_info implementation to latest MSC (#8256)
* update calls to set and createLiveBeacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix stop beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove variable event type from beacon utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use beacon identifier

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix RoomLiveShareWarning tests

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add case for beacon update

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* more lint

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-08 10:53:06 +02:00
Kerry
b98739056e
Live location sharing - extract location markers into generic Marker (#8225)
* extract location markers into generic Marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comments

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove skinned

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-06 12:40:39 +01:00
Travis Ralston
0280c27bfd post-merge fixes 2022-04-05 10:57:16 -06:00
Travis Ralston
4057833036 Merge branch 'develop' into travis/remove-skinning 2022-04-05 10:50:37 -06:00
Robin
371ccd7858
Don't use m.call for Jitsi video rooms (#8223) 2022-04-04 10:29:40 -04:00
Robin
1f64835fab
Update video rooms to new design specs (#8207)
* Remove radio component

* "Voice room" → "video room"

* Remove interactivity from video room tiles

* Update connection state when joining via widget

* Simplify room header buttons for video rooms

* Split out video room creation into a separate menu option

* Simplify room options for video rooms

* Update video room tile layout

* Tell the Jitsi widget whether it's a video channel

* Update tests

* "Voice" → "video" in more places

* Fix tests

* Re-add frame to immersive Jitsi widgets

* Comment ack

* Make updateDevices more readable

* Type FacePile
2022-04-01 14:36:10 +00:00