feat(react): setup react player api #372
Merged
+726
−507
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #367
Summary
Add the React Player API with
createPlayer()factory, player context, and media primitives. This provides typed store access viausePlayer()hook with selector support, and standalone-capableVideo/Audiocomponents.Changes
PlayerContextProvider,usePlayerContextfor base player contextusePlayer()with selector overload,useMedia(),useMediaRegistration()hooksContainercomponent that attaches media to storecreatePlayer({ features })factory returning typedProvider,Container,usePlayerVideocomponent withforwardRef, works standalone (no error outside Provider)Audiocomponent mirroringVideoimplementationcreateStore/useStoreContextfrom@videojs/store/react@videojs/store/reactto export onlyuseStore,useSelectorImplementation details
usePlayer behavior:
UnknownStore,UnknownStateFeatureStore<Features>,UnionFeatureState<Features>Video/Audio standalone:
useMediaRegistration()returnsundefinedoutside Provider, components just render native elements without error.Container: Uses
forwardRef+useComposedRefs, attaches{ media, container }to store when media is set.Testing