Files
PodTui/tasks/podcast-tui-app/42-playback-controls.md
Michael Freno f08afb2ed1 init
2026-02-03 23:29:36 -05:00

1.6 KiB

41. Create Player UI Layout

meta: id: podcast-tui-app-41 feature: podcast-tui-app priority: P0 depends_on: [40] tags: [player, layout, solidjs, opentui]

objective:

  • Create player UI layout component
  • Display episode information
  • Position player controls and waveform
  • Handle player state

deliverables:

  • src/components/Player.tsx with player layout
  • src/components/PlayerHeader.tsx with episode info
  • src/components/PlayerControls.tsx with controls area

steps:

  • Create src/components/Player.tsx:
    • Player container with borders
    • Episode information header
    • Waveform visualization area
    • Playback controls area
    • Progress bar area
  • Create src/components/PlayerHeader.tsx:
    • Episode title
    • Podcast name
    • Episode duration
    • Close player button
  • Create src/components/PlayerControls.tsx:
    • Play/Pause button
    • Previous/Next episode buttons
    • Volume control
    • Speed control
    • Keyboard shortcuts display

tests:

  • Unit: Test Player layout renders correctly
  • Unit: Test PlayerHeader displays correctly
  • Unit: Test PlayerControls layout

acceptance_criteria:

  • Player UI displays episode information
  • Controls positioned correctly
  • Player fits within terminal bounds
  • Layout is responsive

validation:

  • Run application and navigate to "Player"
  • Select an episode to play
  • Verify player UI displays
  • Check layout and positioning

notes:

  • Use Flexbox for player layout
  • Player should be at bottom or overlay
  • Use <scrollbox> for waveform area
  • Add loading state when no episode
  • Use SolidJS signals for player state