Commit Graph

34316 Commits (af268b4a03fdaa9e873014380e282ac9195e73a5)

Author SHA1 Message Date
Šimon Brandner af268b4a03
Support for embedded E2EE (#11492)
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-08-30 17:30:29 +00:00
Germain 6aa86a858f
Fixes read receipt avatar offset (#11483)
* Fixes read receipt avatar offset

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

* Fix avatar collapsing in thread list

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

* Make composer pills use new avatar design

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

* Update snapshots

* Update UserInfo snapshot

* Update HTMLExport snapshot

* Fixes avatar placeholder font

Fixes https://github.com/vector-im/element-web/issues/26061
2023-08-30 11:47:35 +00:00
Richard van der Hoff 6cc42b7e2e
Improve error handling for `DeviceListener` (#11484)
... particularly for when it races with a client shutdown.
2023-08-30 09:35:15 +00:00
Charly Nguyen 50160b9969
Allow requesting to join knock rooms via spotlight (#11482)
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
2023-08-30 06:54:26 +00:00
Germain 200631f3a5
Remove unwanted console.table (#11477) 2023-08-29 11:43:02 +00:00
Germain 968213a5d7
Fix avatar defects (#11473)
* Fix avatar initial centering in pills for bubbles

* Express user info avatar size in pixes

* fix link pill icon

* Fix snapshot test
2023-08-29 07:57:23 +00:00
Michael Telatynski 9d417cea7c
Migrate credits translations to IDs (#11453)
* Migrate credits translations to IDs

* Discard changes to src/i18n/strings/da.json

* Discard changes to src/i18n/strings/bg.json

* Discard changes to src/i18n/strings/ar.json

* Discard changes to src/i18n/strings/az.json

* Discard changes to src/i18n/strings/be.json

* Discard changes to src/i18n/strings/ca.json

* Discard changes to src/i18n/strings/el.json

* Discard changes to src/i18n/strings/en_US.json

* Discard changes to src/i18n/strings/eo.json

* Discard changes to src/i18n/strings/eo.json

* Discard changes to src/i18n/strings/eu.json

* Discard changes to src/i18n/strings/fa.json

* Discard changes to src/i18n/strings/ga.json

* Discard changes to src/i18n/strings/gl.json

* Discard changes to src/i18n/strings/he.json

* Discard changes to src/i18n/strings/hi.json

* Discard changes to src/i18n/strings/hr.json

* Discard changes to src/i18n/strings/is.json

* Discard changes to src/i18n/strings/ja.json

* Discard changes to src/i18n/strings/jbo.json

* Discard changes to src/i18n/strings/kab.json

* Discard changes to src/i18n/strings/ko.json

* Discard changes to src/i18n/strings/lt.json

* Discard changes to src/i18n/strings/zh_Hans.json

* Discard changes to src/i18n/strings/tzm.json

* Discard changes to src/i18n/strings/tr.json

* Discard changes to src/i18n/strings/th.json

* Discard changes to src/i18n/strings/te.json

* Discard changes to src/i18n/strings/ta.json

* Discard changes to src/i18n/strings/sr.json

* Discard changes to src/i18n/strings/ru.json

* Discard changes to src/i18n/strings/ro.json

* Discard changes to src/i18n/strings/pt_BR.json

* Discard changes to src/i18n/strings/pt.json

* Discard changes to src/i18n/strings/oc.json

* Discard changes to src/i18n/strings/nn.json

* Discard changes to src/i18n/strings/nl.json

* Discard changes to src/i18n/strings/nb_NO.json

* Discard changes to src/i18n/strings/ml.json

* Discard changes to src/i18n/strings/lv.json

* Discard changes to src/i18n/strings/lo.json
2023-08-25 10:37:13 +00:00
Germain 23897dff4f
Fix colour of avatar and colour matching with username (#11470)
* Use consistent colouring of username with avatar

* Upgrade Compound to fix Firefox issue

* Use the approapriate color shade for usernames

* Use the approapriate color shade for usernames

* Upgrade Compound

* Fix tests
2023-08-24 17:12:28 +00:00
Richard van der Hoff 18866e3856
Fix incompatibility of Soft Logout with Element-R (#11468)
* Fix incompatibility of Soft Logout with Element-R

This `countSessionsNeedingBackup` isn't available in Element-R, and I don't
really understand the logic behind changing the message when we have sessions
that are awaiting backup. Let's just rip it out.

* i18n

* update snapshot
2023-08-24 13:27:32 +00:00
Richard van der Hoff 9fb7d94c2b
Add debug to diagnose flaky composer test (#11467)
Part of my attempts to fix https://github.com/vector-im/element-web/issues/26037.

Nobody seems to know how this currently works, so let's add a load of debugging.
2023-08-24 12:36:57 +01:00
Michael Telatynski f57d8279de
Migrate labs translations to IDs (#11454)
* Migrate labs displayName translations to IDs

```

./node_modules/matrix-web-i18n/scripts/rekey.js "Video rooms" "labs|video_rooms"
./node_modules/matrix-web-i18n/scripts/rekey.js "New Notification Settings" "labs|notification_settings"
./node_modules/matrix-web-i18n/scripts/rekey.js "Let moderators hide messages pending moderation." "labs|msc3531_hide_messages_pending_moderation"
./node_modules/matrix-web-i18n/scripts/rekey.js "Report to moderators" "labs|report_to_moderators"
./node_modules/matrix-web-i18n/scripts/rekey.js "Render LaTeX maths in messages" "labs|latex_maths"
./node_modules/matrix-web-i18n/scripts/rekey.js "Message Pinning" "labs|pinning"
./node_modules/matrix-web-i18n/scripts/rekey.js "Rich text editor" "labs|wysiwyg_composer"
./node_modules/matrix-web-i18n/scripts/rekey.js "Render simple counters in room header" "labs|state_counters"
./node_modules/matrix-web-i18n/scripts/rekey.js "New ways to ignore people" "labs|mjolnir"
./node_modules/matrix-web-i18n/scripts/rekey.js "Support adding custom themes" "labs|custom_themes"
./node_modules/matrix-web-i18n/scripts/rekey.js "Offline encrypted messaging using dehydrated devices" "labs|dehydration"
./node_modules/matrix-web-i18n/scripts/rekey.js "Show HTML representation of room topics" "labs|html_topic"
./node_modules/matrix-web-i18n/scripts/rekey.js "Show info about bridges in room settings" "labs|bridge_state"
./node_modules/matrix-web-i18n/scripts/rekey.js "Jump to date (adds /jumptodate and jump to date headers)" "labs|jump_to_date"
./node_modules/matrix-web-i18n/scripts/rekey.js "Sliding Sync mode" "labs|sliding_sync"
./node_modules/matrix-web-i18n/scripts/rekey.js "Element Call video rooms" "labs|element_call_video_rooms"
./node_modules/matrix-web-i18n/scripts/rekey.js "New group call experience" "labs|group_calls"
./node_modules/matrix-web-i18n/scripts/rekey.js "Allow screen share only mode" "labs|allow_screen_share_only_mode"
./node_modules/matrix-web-i18n/scripts/rekey.js "Live Location Sharing" "labs|location_share_live"
./node_modules/matrix-web-i18n/scripts/rekey.js "Dynamic room predecessors" "labs|dynamic_room_predecessors"
./node_modules/matrix-web-i18n/scripts/rekey.js "Voice broadcast" "labs|voice_broadcast"
./node_modules/matrix-web-i18n/scripts/rekey.js "Rust cryptography implementation" "labs|rust_crypto"
./node_modules/matrix-web-i18n/scripts/rekey.js "Hide notification dot (only display counters badges)" "labs|hidebold"
./node_modules/matrix-web-i18n/scripts/rekey.js "Enable intentional mentions" "labs|intentional_mentions"
./node_modules/matrix-web-i18n/scripts/rekey.js "Enable ask to join" "labs|ask_to_join"
./node_modules/matrix-web-i18n/scripts/rekey.js "Under active development, new room header & details interface" "labs|new_room_decoration_ui"
```

* Migrate video rooms beta translations to IDs

```

./node_modules/matrix-web-i18n/scripts/rekey.js "A new way to chat over voice and video in %(brand)s." "labs|video_rooms_a_new_way_to_chat"
./node_modules/matrix-web-i18n/scripts/rekey.js "Video rooms are always-on VoIP channels embedded within a room in %(brand)s." "labs|video_rooms_always_on_voip_channels"

./node_modules/matrix-web-i18n/scripts/rekey.js "How can I create a video room?" "labs|video_rooms_faq1_question"
./node_modules/matrix-web-i18n/scripts/rekey.js "Use the “+” button in the room section of the left panel." "labs|video_rooms_faq1_answer"
./node_modules/matrix-web-i18n/scripts/rekey.js "Can I use text chat alongside the video call?" "labs|video_rooms_faq2_question"
./node_modules/matrix-web-i18n/scripts/rekey.js "Yes, the chat timeline is displayed alongside the video." "labs|video_rooms_faq2_answer"
```

* i18n & `./node_modules/matrix-web-i18n/scripts/rekey.js --copy "labs|voice_broadcast" "Voice broadcast"`

* Port more labs strings to translation keys
2023-08-24 10:16:06 +00:00
Germain 6d6902a41f
Remove dead TooltipButton component (#11466) 2023-08-24 09:58:59 +00:00
Richard van der Hoff 839c0a720c
Lock out the first tab if Element is opened in a second tab. (#11425)
* Implement session lock dialogs

* Bump analytics-events package

* clean up resetJsDomAfterEach

* fix types

* update snapshot

* update i18n strings
2023-08-24 08:28:43 +00:00
Germain 09c5e06d12
Change avatar to use Compound implementation (#11448)
* Move avatar to new compound implementation

* Make space avatars square

* Remove reference to the avatar initial CSS class

* remove references to mx_BaseAvatar_image

* Fixe test suites

* Fix accessbility violations

* Add ConfirmUserActionDialog test

* Fix tests

* Add FacePile test

* Fix items clipping in members list

* Fix user info avatar sizing

* Fix tests
2023-08-24 03:48:35 +00:00
Germain 3acc9059ab
Add Voice and Video call in room header (#11444)
* Add Voice and Video call in room header

* Add thread icon in room header

* Add room notification icon to room header

* Fix linting

* Add tests for buttons in room header

* Add JSDoc

* micro optimisations

* Fix call disabled when hanging up

* Fix disabled state change on members count update

* Exclude functional members from members count optionally

* i18n
2023-08-23 14:13:40 +00:00
Michael Telatynski c2e814ce95
Migrate keyboard translations to IDs (#11452)
* Migrate keyboard translations to IDs

```
./node_modules/matrix-web-i18n/scripts/rekey.js "Page Up" "keyboard|page_up"
./node_modules/matrix-web-i18n/scripts/rekey.js "Page Down" "keyboard|page_down"
./node_modules/matrix-web-i18n/scripts/rekey.js --copy "Home" "keyboard|home"
./node_modules/matrix-web-i18n/scripts/rekey.js "Esc" "keyboard|escape"
./node_modules/matrix-web-i18n/scripts/rekey.js "Enter" "keyboard|enter"
./node_modules/matrix-web-i18n/scripts/rekey.js "End" "keyboard|end"
./node_modules/matrix-web-i18n/scripts/rekey.js "Alt" "keyboard|alt"
./node_modules/matrix-web-i18n/scripts/rekey.js "Ctrl" "keyboard|control"
./node_modules/matrix-web-i18n/scripts/rekey.js "Shift" "keyboard|shift"
./node_modules/matrix-web-i18n/scripts/rekey.js --copy "Space" "keyboard|space"
./node_modules/matrix-web-i18n/scripts/rekey.js "[number]" "keyboard|number"
```

* i18n

* Revert strings

* i18n

* i18n
2023-08-23 11:49:29 +00:00
Michael Telatynski d5cacff6c3
Create more `action_*` common strings (#11438) 2023-08-23 11:57:22 +01:00
Michael Telatynski 99e80dd296
Consume more imports from matrix-js-sdk/src/matrix (#11449) 2023-08-23 09:04:25 +00:00
Michael Telatynski aa6e3654b8
Create more `common_*` common strings (#11439) 2023-08-23 10:25:33 +01:00
Michael Telatynski df4a2218d7
Align `action_*` strings with Element X project in Localazy (#11437) 2023-08-22 20:55:15 +01:00
Michael Telatynski bdd3710f25
i18n 2023-08-22 19:06:14 +01:00
Michael Telatynski c40141cc4f
Align `common_*` strings with Element X project in Localazy (#11434) 2023-08-22 18:47:33 +01:00
Michael Telatynski 1a49a38f04
Align `a11y_*` strings with Element X project in Localazy (#11435)
* Align `a11y_*` strings with Element X project in Localazy

* Update matrix-web-i18n
2023-08-22 16:15:25 +00:00
Michael Telatynski 0d8b58cdd7
Get country names from the browser instead of manual i18n (#11428)
* Get country names from the browser instead of manual i18n

* Make getUserLanguage more resilient to bad inputs

* Improve coverage
2023-08-22 16:15:16 +00:00
Michael Telatynski ac70f7ac9b
Fix instances of double translation and guard translation calls using typescript (#11443)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-08-22 16:32:05 +01:00
Richard van der Hoff d13b6e1b41
Add mechanism to check only one instance of the app is running (#11416)
* Add mechanism to check only one instance of the app is running

This isn't used yet, but will form part of the solution to
https://github.com/vector-im/element-web/issues/25157.

* disable instrumentation for SessionLock

* disable coverage reporting

* exclude SessionLock in sonar.properties

* Revert "disable coverage reporting"

This reverts commit 80c4336f76ec8e47e376b6744ef612a73299d14f.

* only disable session storage

* use pagehide instead of visibilitychange

* Add `checkSessionLockFree`

* Give up waiting for a lock immediately when someone else claims

* Update src/utils/SessionLock.ts
2023-08-22 14:10:47 +00:00
Michael Telatynski 4de315fb6c
Use Intl for names of languages (#11427)
* Use Intl for names of languages

* Tweak Intl language style from "American English" -> "US English"

* Update tests

* Fix tests

* Consolidate languageHandler-test files

* Improve coverage

* Consistent casing for languages in dropdown

* Update LanguageDropdown.tsx

* Delint & update snapshot

* Fix tests

* Improve coverage

`of` will fallback to the given code with fallback=code (default)
2023-08-22 14:07:16 +00:00
Kerry 3684c77cfe
Hide account deactivation for externally managed accounts (#11445)
* util for account url

* test cases

* disable multi session selection on device list

* remove sign out all from context menus when oidc-aware

* comment

* remove unused param

* typo

* dont show account deactivation for externally managed accounts

* Update snapshots - field ID changed

---------

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-08-22 11:51:16 +00:00
Kerry 23196d49e1
OIDC: Redirect to delegated auth provider when signing out (#11432)
* util for account url

* test cases

* disable multi session selection on device list

* remove sign out all from context menus when oidc-aware

* comment

* remove unused param

* redirect to auth provider when signing out

* open auth provider in new tab, refresh sessions on return

* correct comment

* fix bad copy paste

* try to make sonar happy

* Update for latest revision of MSCs

* Update SessionManagerTab-test.tsx

* Make InteractiveAuthCallback async and await it

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@matrix.org>
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-08-22 11:15:35 +00:00
Kerry 5c1b62cf99
Disable 3pid fields in settings when `m.3pid_changes` capability is disabled (#11430)
* check m.3pid_changes capability in user settings

* comments

* assume 3pid_changes is true for older evrsions
2023-08-22 06:07:10 +00:00
Kerry dfded8d4d3
OIDC: disable multi session signout for OIDC-aware servers in session manager (#11431)
* util for account url

* test cases

* disable multi session selection on device list

* remove sign out all from context menus when oidc-aware

* comment

* remove unused param

* typo
2023-08-22 02:25:34 +00:00
Michael Telatynski 3c52ba0c92
Use Intl to localise dates and times (#11422)
* Use Intl to generate better internationalised date formats

* Get `Yesterday` and `Today` from Intl also

* Correct capitalisation blunder

* Fix formatTime include weekday

* Iterate

* Fix tests

* use jest setSystemTime

* Discard changes to cypress/e2e/settings/general-user-settings-tab.spec.ts

* Discard changes to res/css/_components.pcss

* Discard changes to res/css/views/elements/_LanguageDropdown.pcss

* Discard changes to src/components/views/elements/LanguageDropdown.tsx

* Add docs & tests for getDaysArray & getMonthsArray

* Discard changes to test/components/structures/__snapshots__/MatrixChat-test.tsx.snap

* Consolidate consts

* Improve testing & documentation

* Update snapshot

* Apply suggestions from code review

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

* Iterate

* Clarify comments

* Update src/DateUtils.ts

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

* Specify hourCycle

* Discard changes to test/components/views/settings/devices/DeviceDetails-test.tsx

* Update comments

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-08-21 19:38:59 +00:00
Michael Telatynski d4571aef68
Consume @matrix-org/emojibase-bindings (#11433) 2023-08-21 20:06:40 +01:00
Dominik Henneke 5c43054bfe
Implement updated open dialog method of the Module API (#11395)
* Implement updated open dialog method

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Apply the review comments

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Add unit tests for the module system dialog

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Bump @matrix-org/react-sdk-module-api from 1.0.0 to 2.0.0

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Run prettier

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Apply review comments

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

---------

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
2023-08-21 12:09:17 +00:00
Michael Telatynski dd6097c568
Polish & delabs `Exploring public spaces` feature (#11423)
* Iterate search public spaces UX

* Tweak iconography in spotlight

* Delabs `Exploring public spaces`

* Tweak msc3827 v1.4 support discovery

* i18n

* Delete stale test

* Fix tests

* Iterate

* Iterate PR based on review

* Improve types

* Add shortcut to search for public spaces to create space menu

* Update import

* Add org.matrix.msc3827.stable filtering

* Fix tests

* silence some errors
2023-08-21 09:39:20 +00:00
Michael Telatynski d81f71f993
Load SAS Emoji translations from `@matrix-org/spec` (#11429)
* Remove last instance of componentWillMount

* Load SAS Emoji translations from @matrix-org/spec

* Fix import

* Test normalisation on both sides

* update comment for @richvdh

* Delint
2023-08-21 08:15:22 +00:00
Michael Telatynski ff9d4905d5
Fix export type "Current timeline" to match its behaviour to its name (#11426)
* Fix export type "Current timeline" to match its behaviour to its name

* Iterate tests
2023-08-18 11:58:58 +00:00
Richard van der Hoff 4a5b686aaa
Update MatrixChat-test to `restoreAllMocks` after each test (#11424)
* Update MatrixChat to  `restoreAllMocks` after each test

This helps keep tests independent.

* more MatrixChat fixes
2023-08-17 19:06:45 +00:00
Denis Kasak 5aefd4652a
Treat lists with a single empty item as plain text, not Markdown. (#6833)
* Treat lists with a single empty item as plain text, not Markdown.

This allows users to send simple messages such as `-`, `+`, `*` and
`2021.` without Element Web mangling them into a nonsensical empty list.
As soon as any non-whitespace content is added to the item, it switches
back to treating it as a list of one item.

Fixes vector-im/element-web#7631.

* Fix type errors.

* Lint.

---------

Co-authored-by: Michael Weimann <michaelw@matrix.org>
Co-authored-by: Johannes Marbach <johannesm@element.io>
2023-08-17 16:37:19 +00:00
Michael Telatynski aee6247ad8
Switch to nested object pluralisation format for i18n files (#11412) 2023-08-16 20:08:54 +01:00
Michael Telatynski 6b14ecfdf9
Re-key all |zero-pluralised translations for Localazy compatibility (#11417)
* Re-key all |zero-pluralised translations for Localazy compatibility

* Add missing interpolation variable

* i18n

* Add test coverage

* Improve coverage
2023-08-16 15:26:21 +00:00
Element Translate Bot a5107518b5
Translations update from Weblate (#11418)
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: Weblate <translate@riot.im>
Co-authored-by: Vri <element@vrifox.cc>
Co-authored-by: Glandos <bugs-github@antipoul.fr>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Someone <hahahahacker2009@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Nicholas Winterhalter <gewinum@gmail.com>
Co-authored-by: phardyle <bradney_ccea@aleeas.com>
Co-authored-by: Bubanio85 <brwa.baban@bearingpoint.com>
2023-08-16 15:54:10 +01:00
Charly Nguyen d569ba0cfe
Allow managing room knocks (#11404)
* Allow managing room knocks

Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>

* Apply PR feedback

Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>

* Apply Sonar feedback

Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>

---------

Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
2023-08-16 08:16:19 +00:00
Germain 373a34c3d1
Create flexbox layout helper (#11411) 2023-08-15 17:43:39 +00:00
Michael Telatynski ad73b0c16e
Switch to importing most things from the main matrix-js-sdk export (#11406)
* Switch to importing most things from the main matrix-js-sdk export

* fix imports

* Iterate

* Fix tests
2023-08-15 15:00:17 +00:00
Michael Telatynski 0842559fb2
Simplify registration with email validation (#11398) 2023-08-15 16:14:53 +01:00
Michael Telatynski 27d79458da
Remove dead & duplicated code (#11405)
* Remove dead code

* Make dead code happier

* DRY pickle additional data calculation

* Iterate
2023-08-15 08:43:15 +00:00
Richard van der Hoff 672ad98ec7
Clean up the MatrixChat initSession code (#11403)
`async` functions are a thing, and they make this much more comprehensible.
2023-08-14 12:52:08 +00:00
Neeraj Vageele 6f455217d1
correct home server URL (#11391)
* correct home server URL

* update snapshot

---------

Co-authored-by: Neeraj <neerajv@thirdrocktechkno.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-08-14 09:08:34 +00:00
Michael Telatynski d2c6577024
Switch to importing more things from the main js-sdk export (#11394) 2023-08-14 08:58:55 +00:00