Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raise hand V1 #146

Merged
merged 10 commits into from
Sep 3, 2024
Merged

Raise hand V1 #146

merged 10 commits into from
Sep 3, 2024

Conversation

lebaudantoine
Copy link
Collaborator

@lebaudantoine lebaudantoine commented Sep 3, 2024

Purpose

Allow users to raise their hands.

Proposal

It closes #122

A new toggle has been added to the control bar:

Enregistrement.de.l.ecran.2024-09-03.a.15.11.33.mov

When a participant raised her hand, a new indicator appears on the left-side of its name:

Enregistrement.de.l.ecran.2024-09-03.a.15.06.54.mov

Also, inspired by Gmeet, a waiting room has been added to the participant menu:

Enregistrement.de.l.ecran.2024-09-03.a.15.09.51.mov

@lebaudantoine lebaudantoine self-assigned this Sep 3, 2024
@lebaudantoine lebaudantoine marked this pull request as ready for review September 3, 2024 13:06
@lebaudantoine lebaudantoine changed the title Raise hand V0 Raise hand V1 Sep 3, 2024
Inspired by Magnify. Rely on participant metadata to determine,
if the local user has raised its hand.

There is a todo item in LiveKit code, useLocalParticipant is not
subscribed to metadata updates events.

The contrast of the toggled button in legacy Style is poor,
it needs to be urgently improved. User can barely distinguish if
their hands are raised.
Why? This layout is extensible. This menu will have two sections,
to separate in-room participants from the waiting room ones.

It's copied from Gmeet User Experience.

In-room participants will be divided in sub-lists based on their
states (ex: hand raised, …). This User Experience is extensible
if in the future with support subroom in a room or whatever.
Will need it for lower hand action.
Actually, this piece of code should be enhanced. It'll act
as a corner stone of all actions dispatched in the interface.

I'll continue refactoring it later on.
Show the raised hand waiting list, allow any participant to
lower other participants' hands.

Inspired from Gmeet. I found it quite clear to have a dedicated
waiting list for raised hands.
Inspired from Gmeet. Add a button to lower all hands at once.
It should be quite useful for room moderator/admin.

The UX might feel strange, having this action button at the top of
the list, but I could not figure out a better layout. In terms of
UX I feel this is the best we can provide. However, the UI should
definitely be improved.
Responsiveness issue. Fixed it, to allow user scrolling the
participants list.
Encapsulate code responsible for toggling hand,
and determining the hand state based on participant metadata.

This gonna be reused across the codebase.
Height was varying when muting/unmuting the mic, so I added a minimum height to
avoid layout shift.

Proof of concept for the future UX: a raised hand would be placed on
the left side of the participant's name.

Having the mic indicator and raised hand side by side is temporary and totally
undesired (it feels super weird). I'll refactor the whole UX of the participant
tile in a dedicated PR.
Copied legacy style from the screen share control.
Still imperfect, but at least it's visually more "comfy".
Minor enhancement, add some CSS animation to wave a newly
raised hand. Inspired by GMeet.
@lebaudantoine
Copy link
Collaborator Author

I've suggested enhancements for the V2 #147

@lebaudantoine lebaudantoine merged commit 53d732d into main Sep 3, 2024
8 of 9 checks passed
@lebaudantoine lebaudantoine deleted the raise-hand branch September 3, 2024 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Record a meeting
1 participant