Commit Graph

38 Commits

Author SHA1 Message Date
Robin
cda802a2e9 Make error screens more visually consistent (#2951) 2025-01-17 09:35:39 +00:00
Hugh Nimmo-Smith
2f5f0978ad Type fixes for react v19 compatibility (#2937) 2025-01-13 15:54:42 +01:00
Will Hunt
77facd01e4 Add support for playing a sound when the user exits a call. (#2860)
* Refactor to use AudioContext

* Remove unused audio format.

* Reduce update frequency for volume

* Port to useAudioContext

* Port reactionaudiorenderer to useAudioContext

* Integrate raise hand sound into call event renderer.

* Simplify reaction sounds

* only play one sound per reaction type

* Start to build out tests

* fixup tests / comments

* Fix reaction sound

* remove console line

* Remove another debug line.

* fix lint

* Use testing library click

* lint

* Add support for playing a sound when the user exits a call.

* Port GroupCallView to useAudioContext

* Remove debug bits.

* asyncify

* lint

* lint

* lint

* tidy

* Add test for group call view

* Test widget mode too.

* fix ?.

* Format

* Lint

* Lint

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
2024-12-12 07:33:47 +00:00
Hugh Nimmo-Smith
0087e37f30 Enable @typescript-eslint/consistent-type-imports lint rule (#2886)
* Enable @typescript-eslint/consistent-type-imports lint rule

This is to help ensure that we get proper vite/rollup lazy loading by not `import`ing more than we need to.

Revert "Enable @typescript-eslint/consistent-type-imports lint rule"

This reverts commit ba385fa00b7e410cc508fd5fb9fe972233ae114f.

Enable @typescript-eslint/consistent-type-imports lint rule

This is to help ensure that we get proper vite/rollup lazy loading by not `import`ing more than we need to.

.

* Format
2024-12-11 09:27:55 +00:00
Timo
3dad62f9e3 Skip lobby when coming from waitForInvite state. (#2753)
* Skip lobby if when coming from waitForInvite state.

* knock reject wording update (shorter/simpler)

* Automatically enter session also in non widget mode when skipLobby = true

* Update public/locales/en-GB/app.json

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

* review

* review andrew

---------

Co-authored-by: Robin <robin@robin.town>
2024-11-11 18:30:15 +01:00
Robin
7ad70064a3 Add a config option to disable the app prompt 2024-11-01 16:57:48 -04:00
Timo
c3edd3e25e Enable lint rules for Promise handling to discourage misuse of them. (#2607)
* Enable lint rules for Promise handling to discourage misuse of them.
Squashed all of Hugh's commits into one.

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
2024-09-10 09:49:35 +02:00
fkwp
9add3e52c4 Update file headers copyright and change licence to AGPL-3.0-only 2024-09-06 10:22:13 +02:00
Robin
7bca541cb6 Perform dead code analysis with Knip (#2575)
* Install Knip

* Clarify an import that was confusing Knip

* Fix issues detected by Knip

Including cleaning up some unused code and dependencies, using a React hook that we unintentionally stopped using, and also adding some previously undeclared dependencies.

* Run dead code analysis in lint script and CI

---------

Co-authored-by: Timo <toger5@hotmail.de>
2024-08-28 02:06:57 +02:00
Robin
12e233970c Import Compound icons in the new recommended way
The Compound design tokens package is now set up to generate React components for every icon, so we no longer need to use our more error-prone method of importing the SVGs.
2024-07-25 13:15:45 -04:00
Robin
41083c0f9e Refactor settings to use observables
Also removing some unused settings along the way.
2024-07-03 15:29:32 -04:00
Timo
5284479ece Knocking support (#2281)
* Add joining with knock room creation flow.

Also add `WaitForInviteView` after knocking.
And appropriate error views when knock failed or gets rejected.

Signed-off-by: Timo K <toger5@hotmail.de>

* Refactor encryption information.

We had lots of enums and booleans to describe the encryption situation.
Now we only use the `EncryptionSystem` "enum" which contains the
additional information like sharedKey. (and we don't use the isRoomE2EE
function that is somewhat confusing since it checks `return widget ===
null && !room.getCanonicalAlias();` which is only indirectly related to
e2ee)

Signed-off-by: Timo K <toger5@hotmail.de>

* Update recent list.

- Don't use deprecated `groupCallEventHander` anymore (it used the old
  `m.call` state event.)
- make the recent list reactive (getting removed from a call removes the
  item from the list)
- support having rooms without shared secret but actual matrix
  encryption in the recent list
- change the share link creation button so that we create a link with
  pwd for sharedKey rooms and with `perParticipantE2EE=true` for matrix
  encrypted rooms.

Signed-off-by: Timo K <toger5@hotmail.de>

* fix types

Signed-off-by: Timo K <toger5@hotmail.de>

* patch js-sdk for linter

Signed-off-by: Timo K <toger5@hotmail.de>

* ignore ts expect error

Signed-off-by: Timo K <toger5@hotmail.de>

* Fix error in widget mode.

We cannot call client.getRoomSummary in widget mode. The code path needs
to throw before reaching this call. (In general we should never call
getRoomSummary if getRoom returns a room)

Signed-off-by: Timo K <toger5@hotmail.de>

* tempDemo

Signed-off-by: Timo K <toger5@hotmail.de>

* remove wait for invite view

Signed-off-by: Timo K <toger5@hotmail.de>

* yarn i18n

Signed-off-by: Timo K <toger5@hotmail.de>

* reset back mute participant count

* add logic to show error view when getting removed

* include reason whenever someone gets removed from a call.

* fix activeRoom not beeing early enough

* fix lints

* add comment about encryption situation

Signed-off-by: Timo K <toger5@hotmail.de>

* Fix lockfile

* Use (unmerged!) RoomSummary type from the js-sdk

Temporarily change the js-sdk dependency to the PR branch that provides
that type

* review

Signed-off-by: Timo K <toger5@hotmail.de>

* review (remove participant count unknown)

Signed-off-by: Timo K <toger5@hotmail.de>

* remove error for unencrypted calls (allow intentional unencrypted calls)

Signed-off-by: Timo K <toger5@hotmail.de>

* update js-sdk

Signed-off-by: Timo K <toger5@hotmail.de>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
2024-04-23 22:15:13 +09:00
Timo
6539c15177 Dont send register request in widget mode (#2100)
* dont register in widget mode

Signed-off-by: Timo K <toger5@hotmail.de>

* not call registerPasswordlessUser where its called in a widget.

Signed-off-by: Timo K <toger5@hotmail.de>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
2024-02-21 21:07:44 +01:00
Timo
28b46be043 Add skipLobby to params (#1730)
---------

Signed-off-by: Timo K <toger5@hotmail.de>
2023-10-25 13:49:18 +02:00
Robin
614bc82402 Format code 2023-10-11 10:42:04 -04:00
David Baker
c546042d18 Use the loglevel library's extensions
...instead of monkey patching the console log objects. We use a logging
framework everywhere now (this fixes the times when we didn't...)
so there's not really a reason to do this the hacky way anymore.

This means that log lines now appear to come from whatever else is
intercepting the logger (eg. sentry) rather than rageshake.ts.

Opinions on this welcome on whether it's better or not.
2023-09-25 18:04:34 +01:00
David Baker
48b038914f Revert "Refactor useIsRoomE2EE" 2023-09-22 18:20:29 +01:00
David Baker
3cd0ca205b Refactor useIsRoomE2EE
Make it take a room object rather than a room ID to avoid it depending
on a side effect, ie. if the room object input changes, the hook will be
re-run but if we can't get the room from the room ID for whatever reason,
we'd be stuck.

Also add logging on why we decided a room was e2ee.
2023-09-22 15:35:03 +01:00
Robin
4253963b95 Untangle the semantics of isEmbedded
This deletes the isEmbedded flag from UrlParams, replacing it with an alternative set of flags that I think is more sensible and well-defined.
2023-09-18 21:00:18 -04:00
David Baker
6561c0a898 Merge remote-tracking branch 'origin/livekit' into dbkr/refactor_urlparams 2023-09-18 17:54:49 +01:00
David Baker
4f48751aa2 Small refactor of URLParams stuff
Splits out the room locartion parsing from everything else to avoid
one function that fills out different parts of its return struct
depending on its args.
2023-09-18 17:49:10 +01:00
Robin
8eb789d6aa Merge branch 'livekit' into remove-walkie-talkie 2023-09-18 11:58:45 -04:00
Robin
1e9e096356 Fully remove walkie-talkie mode 2023-09-18 11:06:06 -04:00
Robin
0f97d655d2 Add a prompt to launch Element X on mobile
This shows a bottom sheet on mobile asking the user whether they want to open the call in Element X, as soon as the page is loaded.
2023-09-17 17:48:03 -04:00
David Baker
4242d45ba2 WIP refactor for removing m.call events 2023-08-16 18:41:27 +01:00
Šimon Brandner
30f5d0e29f Delint
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-07-29 20:42:16 +02:00
Šimon Brandner
a0bf1d2677 Handle broken links better
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-07-29 20:31:18 +02:00
Daniel Abramov
f3de341a4b Remove unnecessary usage of a roomIdOrAlias
In most cases the `roomId` was used despite the name of the variable.
2023-07-11 16:02:58 +01:00
Daniel Abramov
0105162ffa Enable strict lints
An attempt to fix https://github.com/vector-im/element-call/issues/1132
2023-07-11 16:02:58 +01:00
Robin Townsend
17450b4531 Fix big grid crashing due to missing React import
by fixing the cause rather than the symptom: this upgrades the code to use the new, recommended JSX transform mode of React 17+, which no longer requires you to import React manually just to write JSX.
2023-06-30 18:21:18 -04:00
Šimon Brandner
0269753f59 Settings improvements
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-05-05 11:44:35 +02:00
Robin Townsend
971eca59ff Opt into analytics by default during the beta 2023-03-13 19:12:47 -04:00
David Baker
4f8bd18efd Don't try to register users until client is loaded 2023-01-20 17:59:57 +00:00
Robin Townsend
8524b9ecd6 Set up translation with i18next 2022-10-12 14:53:49 -04:00
Robin Townsend
b7be3011da Add widget actions for joining and leaving calls and switching layouts
These actions are processed lazily to ensure that even if the app takes a while to start up, they won't be missed.
2022-09-09 02:14:12 -04:00
Robin Townsend
3186b5f24b Add a URL parameter for hiding the room header 2022-09-09 02:04:53 -04:00
Robin Townsend
eb43b96a1b Merge branch 'main' into matroska 2022-08-05 16:16:59 -04:00
Timo
2d99acabe2 typescript src/room (#437) 2022-08-02 00:46:16 +02:00