1.6 KiB
1.6 KiB
44. Add Progress Tracking and Seek
meta: id: podcast-tui-app-44 feature: podcast-tui-app priority: P0 depends_on: [43] tags: [progress, tracking, seek, solidjs]
objective:
- Track playback progress
- Save progress to storage
- Implement seek functionality
- Display progress bar
deliverables:
src/utils/progress.tswith progress trackingsrc/hooks/useProgress.tswith progress hooksrc/components/ProgressBar.tsxwith progress bar
steps:
- Create
src/utils/progress.ts:saveProgress(episodeId: string, position: number, duration: number): voidloadProgress(episodeId: string): Progress | nullupdateProgress(episodeId: string, position: number): void- Handle progress persistence
- Create
src/hooks/useProgress.ts:createSignalfor progress- Update progress on timeupdate
- Save progress periodically
- Load progress on episode change
- Create
src/components/ProgressBar.tsx:- Progress bar visualization
- Percentage display
- Time display (current/total)
- Click to seek
tests:
- Unit: Test progress tracking functions
- Unit: Test progress hook
- Integration: Test progress bar
acceptance_criteria:
- Progress saved correctly
- Progress loaded correctly
- Seek works via progress bar
- Progress persists across sessions
validation:
- Run application and play episode
- Seek to different positions
- Stop and restart
- Verify progress saved
- Restart app and verify progress loaded
notes:
- Save progress to localStorage
- Auto-save every 30 seconds
- Save on episode change
- Save on pause
- Don't save on completion
- Load progress when starting episode
- Display progress bar in player