element-hq / element-hq/element-call
Reduce the occasions when opening Element Call in a new tab unexpectedly ends a call
- 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
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