React wrapper for @arraypress/waveform-player. Passes constructor options to the
core and manages its lifecycle.
npm test— vitest + jsdom (run before committing).npm run build— bundles todist/.prepublishOnlyruns it.dist/is gitignored.
src/WaveformPlayer.tsx. A new option needs both:
if (props.<key> !== undefined) opts.<key> = props.<key>;inbuildLibraryOptions.props.<key>,added to the remountuseEffectdeps array.
Skip (1) and the option never reaches the player. Skip (2) and it works on first render but changing it at runtime does nothing — the player never remounts. The second failure is the one that survives a shallow test.
- Prop types derive from core's
WaveformPlayerOptionsviaOmit<>— never re-declare the option surface. Type inheritance forwards nothing at runtime;buildLibraryOptionsis the real contract. stylestays React's CSS prop — the visual style prop iswaveformStyle.- Add a mirror test under
test/+ aCHANGELOG.mdentry.
One of 15 packages that must change together — load the waveform-release skill.