debont80 ae12e7c9cf H1: decompose DownloadBar.tsx into a hook + panel + styles
Split the 858-line DownloadBar (~17 interdependent state hooks):
- downloadBar/useDownloadBar.ts: all state and behaviour (probe, playlist,
  trim/schedule, per-download options, dup guard, drag-drop, command preview),
  exposing wrapper handlers so preview-invalidation side-effects stay put.
- downloadBar/styles.ts: the makeStyles block.
- downloadBar/PlaylistPanel.tsx: the playlist-selection panel.

DownloadBar is now a render-only shell driven by the hook. `usingFormats` no
longer narrows `info` across the hook boundary, so the format Select guards with
`info?.formats ?? []` (only reached when usingFormats is true). Behaviour
unchanged; full typecheck + lint + build + 248 tests green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 21:30:40 -04:00
S
Description
Windows Youtube Video Downloader
MIT 124 MiB
2026-07-10 16:40:14 -04:00
Languages
TypeScript 99.5%
JavaScript 0.3%
CSS 0.1%