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

Chore/UI touchups #57

Merged
merged 48 commits into from
Mar 15, 2024
Merged

Chore/UI touchups #57

merged 48 commits into from
Mar 15, 2024

Conversation

rtshkmr
Copy link
Member

@rtshkmr rtshkmr commented Mar 10, 2024

No description provided.

rtshkmr and others added 30 commits February 27, 2024 19:25
throwback to the previous issue where we had the audio timestamp change when we
used the audio player to seek to something.

this is the cause for aud and video going out of sync

immediate next steps:
1. cleanup and ensure the data flow is happening correctly i.e. event
emitters and listeners need to have correct reponsibilities
2. Key UI changes -- let the video player be a miniplayer anchored to
the currently emphasised event...
There seems to be 2 options:
1. using sticky w.r.t vh
2. using this inset

seems like 1 won't work because different liveview components get
rendered in different parent containers, and in 1, v is w.r.t to it's
specific parent.
The joy from this is amazing...
quick rundown of how multiple theming can be done:
1. app.css defines css vars e.g. --color-brand-accent
2. tailwind config uses css vars e.g. colorBrandAccent
3. css vars can be programmatically changed

ref example tldr by phind: https://www.phind.com/search?cache=zjy65pla8499wua9on23rjof
This is not entirely complete, some quirks exist, but it is intended to
represent how a topic-specific events bridge can be used.
TLDR;
1. there are 2 initiators:
    - initiated when progress bar is clicked
    - initiated when verse is clicked ==> media_bridge.ex server issues seekTime
2. we can categorise events based on emitters / producers or consumers.
3. consumers generally consume events and generally only have internal
actions they carry out
4. sometimes, consumers may have external actions they carry out as
well. For example, if MediaBridge hook gets a server-initiated request
to seekTime, then it shall carry out internal actions (i.e. seekToS, as
well as pub the seekTimePayload to others via the seekTimeBridge)
This has some bugs, but the overall pattern should be correct.

Also pending cleanups
rtshkmr and others added 15 commits March 7, 2024 01:57
Rework playback architecture to use dispatcher
Reportedly,
on iOS devices, regardless of browser, the html5 audio player would
reach a hung state when the play button would be clicked.
This was flaky.

Empirically, it was observed that on instances when the hung state
happens, the formatDisplayTime() fn errored out. This was likely due to
the face that the Date::toISOString() was receiving Infinity as an
argument and hence was erroring out.

This fix should account for that case, and hopefully fix the general
hung state issue on IOS.
@ks0m1c ks0m1c changed the base branch from prod to feature/media-bridge March 11, 2024 14:07
@rtshkmr rtshkmr changed the base branch from feature/media-bridge to feature/hanuman March 15, 2024 05:28
@rtshkmr rtshkmr merged commit ddd5286 into feature/hanuman Mar 15, 2024
1 check passed
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