Hooks
Hooks are bridge layer only.
They map manager capability into React consumption without becoming capability owners.
useVideoTrimManager
Responsibilities:
- Instantiate manager from player contract
- Subscribe/unsubscribe manager events
- Project manager state into React updates
- Destroy manager on lifecycle cleanup
Must not:
- Re-implement validation rules
- Own authoritative trim state separate from manager
useTrimSelection
Responsibilities:
- Expose selection actions for components
- Surface read-only selection values derived from manager state
Must not:
- duplicate selection transition logic
useTrimPlayerAdapter
Responsibilities:
- Adapt concrete player to
VideoTrimPlayerContract - Normalize time values to seconds
- Provide stable subscribe/unsubscribe behavior
Must not:
- include manager business rules
useTrimSubmission
v1.1 scope:
- hook-level mock workflow state machine
- submission lifecycle states (idle/submitting/processing/completed/failed)
Must not in v1.1:
- call backend service layer
- encode transport contracts as final production API
Hook Boundary Summary
Hooks bridge capability into React.
Hooks do not own capability.