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

Alternative design for "waiting for media..." state #2858

Draft
wants to merge 100 commits into
base: livekit
Choose a base branch
from

Conversation

hughns
Copy link
Member

@hughns hughns commented Dec 2, 2024

Currently there is a "waiting for media..." label:

image

This PR replaces it with an animated border:

Screen Recording 2024-12-06 at 12 07 07

Assuming the design is desirable then the following items are outstanding:

  • turning off the "waiting for media..." label

@hughns
Copy link
Member Author

hughns commented Dec 2, 2024

Some thoughts:

  • I don't think this is obvious enough what it means.
  • It isn't visible when in 1:1 mode.

@toger5
Copy link
Contributor

toger5 commented Dec 3, 2024

I don't think this is obvious enough what it means.

I think the exact explanation what it is (a tile that is shown because there is a membership in the state but we are missing the associated Livekit participant) is too much information.
But I suppose its more about the gradient does mot make it clear that it is loading?
The issue might be that if its shown for less then 1 second its hard to grasp that there is an animation at all.
When its shown for longer it makes more sense i think.

Base automatically changed from toger5/tiles_based_on_rtc_member to livekit December 6, 2024 11:28
hughns added a commit that referenced this pull request Dec 6, 2024
@hughns hughns changed the title Make the loading state more subtle Alternative design for "waiting for media..." state Dec 6, 2024
@hughns
Copy link
Member Author

hughns commented Dec 9, 2024

The loading spinner in #2869 might be a better option.

hughns added a commit that referenced this pull request Dec 13, 2024
…xRTC sessions a.k.a. non-member tiles (#2771)

* make tiles based on rtc member

* display missing lk participant + fix tile multiplier

* add show_non_member_participants config option

* per member tiles

* merge fixes

* linter

* linter and tests

* tests

* adapt tests (wip)

* Remove unused keys

* Fix optionality of nonMemberItemCount

* video is optional

* Mock RTC members

* Lint

* Merge fixes

* Fix user id

* Add explicit types for public fields

* isRTCParticipantAvailable => isLiveKitParticipantAvailable

* isLiveKitParticipantAvailable

* Readonly

* More keys removal

* Make local field based on view model class not observable

* Wording

* Fix RTC members in tes

* Tests again

* Lint

* Disable showing non-member tiles by default

* Duplicate screen sharing tiles like we used to

* Lint

* Revert function reordering

* Remove throttleTime from bad merge

* Cleanup

* Tidy config of show non-member settings

* tidy up handling of local rtc member in tests

* tidy up test init

* Fix mocks

* Cleanup

* Apply local override where participant not yet known

* Handle no visible media id

* Assertions for one-on-one view

* Remove isLiveKitParticipantAvailable and show via encryption status

* Handle no local media (yet)

* Remove unused effect for setting

* Tidy settings

* Avoid case of one-to-one layout with missing local or remote

* Iterate

* Remove option to show non-member tiles to simplify code review

* Remove unused code

* Remove more remnants of show-non-member-tiles

* iterate

* back

* Fix unit test

* Refactor

* Expose TestScheduler as global

* Fix incorrect type assertion

* Simplify speaking observer

* Fix

* Whitespace

* Make it clear that we are mocking MatrixRTC memberships

* Test case for only showing tiles for MatrixRTC session members

* Simplify diff

* Simplify diff

These changes are in #2809

* .

* Whitespaces

* Use asObservable when exposing subject

* Show "waiting for media..." when no participant

* Additional test case

* Don't show "waiting for media..." in case of local participant

* Make the loading state more subtle
 - instead of a label we show a animated gradient

* Use correct key for matrix rtc foci in code comment. (#2838)

* Update src/tile/SpotlightTile.tsx

Co-authored-by: Timo <[email protected]>

* Update src/state/CallViewModel.ts

Co-authored-by: Timo <[email protected]>

* Make the purpose of BaseMediaViewModel.local explicit

* Use named object instead of unnamed array for spotlightAndPip

* Refactor spotlightAndPip into spotlight and pip

* Use if statement instead of ternary for readability in spotlight and pip logic

* Review feedback

* Fix tests for CallEventAudioRenderer

* Lint

* Developer setting to show non-member tiles

This is based on top of #2701

* Lint

* Remove unused code

* Remove changes that should be in #2858

* Update src/state/CallViewModel.test.ts

Co-authored-by: Robin <[email protected]>

* Merge branch 'livekit' into toger5/show-non-member-tiles

* Remove unused nonMemberItemCount

* Restore default showNonMemberTiles value after test

* Update comments

---------

Co-authored-by: Timo <[email protected]>
Co-authored-by: Timo <[email protected]>
Co-authored-by: Robin <[email protected]>
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.

2 participants