Commit Graph
100 Commits
Author SHA1 Message Date
David Baker 785fa51e0c Use merged js-sdk commit 2023-01-20 13:12:03 +00:00
David Baker 47c2e9e101 Don't crash if we can't find our own member event 2023-01-20 12:10:58 +00:00
David Baker 81997624d4 Fix joining rooms by ID
We use this in embedded mode. Regressed by https://github.com/vector-im/element-call/pull/860

Lowercasing room IDs obviously makes them break, so… don't do that.
2023-01-20 10:51:52 +00:00
David Baker 524f530dce Lowercase room alias before joining 2023-01-19 19:20:42 +00:00
David Baker e1c4042d15 Add units to constant 2023-01-17 10:16:55 +00:00
David Baker 860aff4958 Change rageshake persistence to throttled flushing
Rather than every 30 seconds. This way we'll save logs for sessions
lasting less than 30 seconds which we previously didn't. Also save
on window unload just in case that doesn't catch everything.

Plus remove some more unused params.
2023-01-16 17:27:49 +00:00
David Baker 13b1dcf785 Mostly cosmetic fixes to rageshake
* Remove duplicate copyright header
 * Remove ts-ignores by just using the objects directly rather than via
   event.target
 * Use error.message rather than errorCode which TS doesn't know about
   and may or may not exist.
 * Remove some unused things like the skip rageshake function and
   the option to init rageshakes without storage.
 * Turn single function with a boolean param to make it take two entirely
   separate code paths into two functions.
2023-01-16 16:43:45 +00:00
David Baker 6168109894 Use merged js-sdk commit 2023-01-13 21:41:21 +00:00
David Baker a2a1a9032a Use js-sdk from branch 2023-01-13 18:33:58 +00:00
David Baker abd909c03a Log undecryptable to-device events
Listen for the new undecryptable to-device event event and log
events for it in Posthog & Sentry, and make it visible in the
call flow diagram.
2023-01-13 18:27:22 +00:00
David Baker afdce66896 Merge remote-tracking branch 'origin/main' into dbkr/prevent_keyrepeat_mute_spam 2023-01-13 11:57:02 +00:00
David Baker 1b08a5cac3 Rename file 2023-01-13 11:56:29 +00:00
David Baker a5977fc992 Rename to useCallViewKeyboardShortcuts 2023-01-13 11:52:40 +00:00
David Baker f2193302c1 Prevent mute event spam from key repeats 2023-01-12 18:26:21 +00:00
David Baker 9ba4ce429f Disable keyboard shortcuts when feedback modal is open 2023-01-12 17:31:19 +00:00
David Baker d9b0e08ea2 Fix caching headers on Docker image 2023-01-12 16:20:37 +00:00
David Baker 5f26534496 Use IndexedDB storage in dev mode, just without the worker
As per comment, we can't use workers in Vite dev mode. We previously
fell back to the memory store but this ends up with it working significantly
differently in dev mode to production, eg. dev mode would always start
by doing an initial sync, so old to-device messages would arrive again.

There's no need to fall all the way back to the memory store though,
we can use the IndexedDB store without the worker.
2023-01-12 15:17:46 +00:00
David Baker 30688715cd Revert f20fc78bd7 2023-01-12 13:20:11 +00:00
David Baker f20fc78bd7 Use branch of js-sdk with Olm debugging
Pulls in changes from https://github.com/matrix-org/matrix-js-sdk/pull/3055

Not intended to stay long-term.
2023-01-12 11:28:15 +00:00
David Baker c34a1f7f65 Use prefixed versions of other fullscreen APIs too 2023-01-03 18:35:00 +00:00
David Baker 70b693ef3c Revert d2175b4
Unintentionally comitted to main
2023-01-03 18:34:27 +00:00
David Baker d2175b40a4 Use prefixed versions of other fullscreen APIs too 2023-01-03 18:33:11 +00:00
David Baker 1830acbddf Fix copyright pt. 2: CSS files 2023-01-03 16:58:38 +00:00
David Baker df9c1fed2a Fix copyright headers
This is an Element project (in the vector-im repo) so the Copyright
should be for New Vector: it was incorrectly attributed to the
foundation for some files (and some files were missing headers).
2023-01-03 16:55:26 +00:00
David Baker d1091eda17 Add conditional on head_repo on Netlify main GHA job
As per comment
2022-12-22 20:22:54 +00:00
David Baker 5823cd41e8 Translate separately so the i18n gets less confused 2022-12-22 14:23:19 +00:00
David Baker de0f2e65a5 Don't show option to submit bug reports if no endpoint configured 2022-12-22 14:12:49 +00:00
David Baker d7d7bee685 Remove the overflow menu button in fullscreen mode
It didn't work and fixing it is a bit of a project: see comment

https://github.com/vector-im/element-call/issues/807
2022-12-22 12:16:05 +00:00
David Baker f35b50d89f Remove Olm from devDependencies
It was in devDependencies as well as dependencies for some reason
2022-12-21 18:49:49 +00:00
David Baker 70522ed8da Also add comment 2022-12-21 15:26:24 +00:00
David Baker 3581aceb5a Addd ResolvedConfigOptions back 2022-12-21 15:25:08 +00:00
David Baker 29f48f25f4 Actually remove the bit that's no longer neccessary 2022-12-21 15:17:34 +00:00
David Baker 089234ae09 Use config from the branch we built on PR previews
No harm in doing this - just as easy to override config in the code
itself.
2022-12-21 15:11:24 +00:00
David Baker 6bc5b16b02 These appear to be important? 2022-12-21 13:09:41 +00:00
David Baker f67eb328bf Add permissions, fix artifact name, filter branches 2022-12-21 12:36:00 +00:00
David Baker 1c824da32b Add config & redirects files 2022-12-21 12:08:08 +00:00
David Baker 1442e57a23 Prettify workflow file 2022-12-21 12:01:06 +00:00
David Baker 39e92b9e2e Add deploy previews
Using workflow from element-web
2022-12-21 11:57:15 +00:00
David Baker c879090a34 Re-jig config accessors
We only ever used the static instance() method to get to the config
object, so just make a static instance that returns the ConfigOptions
directly, throwing an exception if it's not yet initialised. This way
the types can all be non-optional (plus it's shorter).
2022-12-21 10:17:53 +00:00
David Baker 6303b357ab Update default homeserver to match what the docs say 2022-12-21 10:01:37 +00:00
David Baker b3d97810a8 Unused import 2022-12-21 09:44:28 +00:00
David Baker eaf14a0562 Don't send rageshakes or start sentry if we don't have config for them 2022-12-21 09:42:27 +00:00
David Baker fd3c0d9fc6 Don't guess the server name from the URL
It only uses the default HS URL anywayso just use the default
server name.
2022-12-21 09:27:25 +00:00
David Baker b94562d43b Indent config sample properly 2022-12-20 18:26:10 +00:00
David Baker 19e478f2a9 Make sample config just have the HS config
The other options are things people usually won't need or want to
set, so just keep it to the basics.

 * Rename config sample to match element-web
 * Update / simplify build instructions
 * Rename nginx config file to differentiate it from EC config
2022-12-20 18:13:08 +00:00
David Baker d6b8ecdfd1 Remove default HS env var from build 2022-12-20 17:42:20 +00:00
David Baker 47ade7ee3c Add default HS for CD deployment 2022-12-20 17:37:07 +00:00
David Baker 23387ee75f Fix syntax 2022-12-20 17:32:04 +00:00
David Baker c85d1c1d9c Don't touch the product name option for now 2022-12-20 17:30:47 +00:00
David Baker 96de515e56 Move default homeserver to config file 2022-12-20 17:26:45 +00:00
David Baker 824ed06f36 Fix docker build
Remove the element-call directory level which isn't necessary any
more (accidentally removed the `cd element-call` in #794).
2022-12-20 11:44:27 +00:00
David Baker 850d6a40cc Simplify build process
* We don't need to check out the js-sdk separately anymore
 * Remove the vite proxying: there's no need since Matrix HSes allow
   cross origin requests. This will let us move the default homeserver
   config to the config file (in a separate PR...)
 * Remove the product name variable which just set it to the default anyway
2022-12-19 18:43:42 +00:00
David Baker 7c26bdbda3 Put the maximised conditional back
and comment it
2022-12-19 15:10:25 +00:00
David Baker 4ad5ea49c2 Merge remote-tracking branch 'origin/main' into dbkr/spatial_audio_ff_only 2022-12-19 13:18:12 +00:00
David Baker c6ad2003f0 Add other missing file 2022-12-16 17:28:52 +00:00
David Baker 9aed344a80 Add missing file 2022-12-16 17:25:28 +00:00
David Baker d8b4fea6fc i18n 2022-12-16 17:22:38 +00:00
David Baker 0c55efe4b6 Don't reorder imports - 3rd time's a charm 2022-12-16 17:20:52 +00:00
David Baker c93df1fd06 Don't reorder import try 2 2022-12-16 17:19:40 +00:00
David Baker c30eb19021 Don't reorder imports 2022-12-16 17:18:52 +00:00
David Baker 2d8c33d66d Merge remote-tracking branch 'origin/main' into dbkr/spatial_audio_ff_only 2022-12-16 17:17:30 +00:00
David Baker 223793a445 Make spatial audio Firefox-only
Hopefully explained in comment: we have a heisenbug where we sometimes
lack audio from a certain participant, so this simplifies the audio
path by removing the workaround required to do AEC with spatial audio
on chrome.
2022-12-16 17:12:17 +00:00
David Baker 9c08a69226 Add import
And also Prettier says hi apparently
2022-11-23 10:11:55 +00:00
David Baker 098be75415 Fix click leaking through to DOM element underneath
See comment, although this is quite hack - I'm torn on whether this
is worth it for the bugfix. Upgrading react-aria doesn't fix it either
(and also breaks everything in React strict mode).

Fixes https://github.com/vector-im/element-call/issues/762
2022-11-22 19:01:50 +00:00
David Baker eab8b1d095 Put rageshake request ID in title of debug log submission 2022-11-17 16:06:41 +00:00
David Baker 734d330a10 CamcelCase for enum values 2022-11-16 10:45:49 +00:00
David Baker 432f7ef93a i18n update 2022-11-15 17:34:56 +00:00
David Baker 5623fa415f Also update connection states when participants change 2022-11-15 17:33:58 +00:00
David Baker f2746ab994 Pass user's connection state for their screenshare feed 2022-11-15 17:19:09 +00:00
David Baker 80f07a5454 Add a 'waiting for video' state to media tiles
This will show if the call is waiting for media to connect (in practice
doesn't actually seem to happen all that often) but also show if the
media connection is lost, with the js-sdk change.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/2880
Fixes: https://github.com/vector-im/element-call/issues/669
2022-11-15 16:13:33 +00:00
David Baker bd08166a50 Make room / call creation logging more accurate
It said it was creating the room when actually it was creating the call
2022-11-10 19:10:10 +00:00
David Baker e133625405 Don't check out group-call branch in build script
This build script might change more soon (we shouldn't really need
to checkout & link the js-sdk at all) but for now let's just switch
the branch now group-call is merged.
2022-11-07 17:37:40 +00:00
David Baker d5a5ce9860 Don't pass potentially undefined 'desc' to useId
Also use the useId that comes with React 18.
2022-11-07 14:05:58 +00:00
David Baker e5feba8c26 Make Home link description translateable 2022-11-07 12:33:06 +00:00
David Baker 3cac74df24 Add aria-describedBy to textarea and use useID 2022-11-07 12:28:54 +00:00
David Baker 51572b5787 Make onClose required in Modal 2022-11-07 12:23:21 +00:00
David Baker 5c8562088d A couple of minor a11y fixes
Picked up by Axe
2022-11-04 18:31:21 +00:00
David Baker 58e505cd38 Add aria-describedby associations 2022-11-04 18:10:53 +00:00
David Baker 509fd65156 Fix close button on join call modal
It just errored as we didn't pass onClose through to the modal
2022-11-04 17:56:37 +00:00
David Baker 0cd2ad6242 Add config file for CD version 2022-11-03 19:01:13 +00:00
David Baker 45dbaa968a Fix Walkie-Talkie mode in Safari
We didn't check whether we actually had a video device when seeing
if the current video devices was in the list of devices, so this
caused loops which confused Safari.
2022-11-02 20:03:56 +00:00
David Baker feeb9c4e7c Fix missing tile bug
The 'connecting' tile change meant that we could have tiles right
at the start of the call where we wouldn't have before, and in fact
could have tiles for other users before we even had a tile for ourself.
This threw off the logic for ordering tiles which had a special case
for 1:1 calling which assumed that one of the tiles in a 1:1 call was
the local user. In this case, this assumption wasn't true at the very
start of the call, so the tile orders got assigned incorrectly and then
persisted for the rest of the call.

Fixes https://github.com/vector-im/element-call/issues/694
2022-11-01 18:10:11 +00:00
David Baker 50e9e33922 i18n 2022-10-24 19:02:01 +01:00
David Baker 736aa95133 Fix type 2022-10-24 18:58:55 +01:00
David Baker 537341da3a Fix storybook 2022-10-24 10:06:38 +01:00
David Baker 3891b042e3 Use commit from js-sdk branch 2022-10-21 21:10:04 +01:00
David Baker 821622f71c Types 2022-10-21 20:28:33 +01:00
David Baker 71dcc94166 Fix screen sharing
* Make the embedded mode screen sharing a request-each-way rather
   than request-and-reply, since replies time out and so can't wait
   for the user.
 * Try normal screen sharing first, then fall back to using the widget
   API if it fails (for lack of a good way of detecting when we
   should be using the widget API).

Fixes https://github.com/vector-im/element-call/issues/649
2022-10-21 20:19:52 +01:00
David Baker 1ea9432769 Show tiles for members we're trying to connect to
This should help give more context on what's going wrong in
splitbrain scenarios.

If users leave calls uncleanly, their tile will remain in until
their member event times out, which will be an hour from when they
joined the call. See https://github.com/vector-im/element-call/issues/639.

Part of https://github.com/vector-im/element-call/issues/616
2022-10-21 17:24:56 +01:00
David Baker fa4b4eabdf Fix missing key in tab container 2022-10-21 16:26:44 +01:00
David Baker 54fe2aa7a3 Bump js-sdk for addTransceiver fix 2022-10-19 18:06:24 +01:00
David Baker 3ff201562b Bump js-sdk 2022-10-19 16:02:48 +01:00
David Baker f808c56121 Type 2022-09-29 17:08:48 +01:00
David Baker 77da0c912f Match device type too
Because lots of audio & video inputs have the same name
2022-09-29 17:07:10 +01:00
David Baker 17613837b6 Hold a user media stream open while we get devices
As per comment.
2022-09-29 13:19:46 +01:00
David Baker 4a5b69800c Use device labels rather than IDs in widget API
device IDs are different for each origin, so won't match up when passed
in & out of widgets. Use the label instead.

For https://github.com/vector-im/element-web/issues/23331
2022-09-27 16:19:48 +01:00
David Baker 46ab10f733 Remove unintentional commenting 2022-09-26 13:03:39 +01:00
David Baker 6e91ec3a0e Clear storage after logout 2022-09-26 13:01:43 +01:00
David Baker ded6a80b58 Fix passworldess user prompt screen
This is how boolean logic works
2022-09-23 15:38:35 +01:00
David Baker 7435f1101a Fix bug causing mic/webcam to remain open after call
Fixes https://github.com/vector-im/element-call/issues/596
2022-09-23 15:35:05 +01:00