samvera-labs / ramp

Interactive, IIIF powered audio/video media player React components library. Styleguidist Docs: https://samvera-labs.github.io/ramp/
https://ramp.avalonmediasystem.org/
30 stars 5 forks source link

Custom hook for state management in Transcript component #652

Closed Dananji closed 2 months ago

Dananji commented 2 months ago

Related issue: #630

This work moves state management in Transcript component to a custom hook. Since Transcript component is built as an independent component from global state management using context providers it doesn't have the issue other components have with unnecessary re-renders. But it can be used within context providers, without breaking its independent nature. This refactor helps up to make use of the global state IF the component is wrapped inside the context providers. One advantage of this is, Transcript component doesn't need to spin up a unnecessary JS interval to read the player instance from the page when the player is available via context providers, while still supporting its independent implementation.