element-hq / element-hq/element-call

Reduce the occasions when opening Element Call in a new tab unexpectedly ends a call

Open
#1,060 1 comment 0 reactions 0 assignees View on GitHub
O-Frequent T-Enhancement X-Needs-Design
Dominant language
TypeScript
Stars
996
Forks
213
Avg merge
1d 6h
Merged PRs (30d)
54

Description

### Your use case

#### Current behaviours

1. I am in call.element.io/call1 and, in a new tab, I go to call.element.io/call2. Call 1 is ended immediately, even while I am still in the lobby for call2.
2. I am in call.element.io/call1 and, in a new tab, I go to call.element.io (i.e. the Element Call home page). Call 1 is ended immediately.
3. I am in call.element.io and, in a new tab, I go to call.element.io/call1. The Element Call home page is replaced with an error message.
4. I am in call.element.io/call1 but only in the lobby, and have no yet joined. I go to call.element.io/call2. Call1 is replaced with an error message.
5. I have finished call.element.io/call1 and ended the call, so I am on the 'your call is now ended' screen. I go to call.element.io/call2. The call1 'your call is now ended' screen is replaced with an error message.

#### Desired behaviours

1. The only scenario we want to prevent is a user from being actively in two calls simultaneously (i.e. *joined* calls, not just in the lobby).
2. A user should be able to access the call.element.io home page in one tab and be in a call in another tab.
3. A user should be able to have one or more call end screens open in tabs and be active in a call without the end screens disappearing.
4. A user should be able to be in the lobby of multiple calls at once.
5. A user should be able to be active in one call, and in the lobby of another call, without either one triggering an error.
6. The _only_ action that should end your current call in one tab, is clicking the 'join' button in the lobby of a call in another tab.
7. At that point, if possible, we should provide a clear warning.

Before we implement this, @rufuskahler would you mind reviewing the above from a design/UX point of view and confirm that you're happy with my proposals?

### Have you considered any alternatives?

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests. Start by reproducing the five current behaviours across multiple tabs, then trace how tab changes distinguish joined calls, lobbies, home pages and ended-call screens; done means only joining another call ends the active call, with a clear warning if possible.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
audio-video-rtc, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.