NewTube/todo.md

2.1 KiB

  • Step 1: Audit current codebase for existing search and provider logic on frontend and server
  • Step 2: Design and scaffold Provider Registry on frontend and server
  • Step 3: Implement SearchService with multi-provider params and HTTP request
  • Step 8: Implement backend /api/search with providers param and fan-out to server/providers handlers
  • Step 4: Build SearchBoxComponent with chips, @autocomplete, and keyboard shortcuts
  • Step 5: Build ProviderPickerComponent (Ctrl/⌘+K modal) with filtering and apply
  • Step 6: Build SearchSuggestionsComponent with grouped sections and empty-state handling
  • Step 7: Add router query-param sync and default provider preference loading
  • Step 9: Persist default providers preference in user profile (server + client integration points)
  • Step 10: Add keyboard accessibility and a11y behaviors (Tab/Shift+Tab, Esc)
  • Step 11: Write unit tests (SearchService, ProviderPicker toggle, @ parsing)
  • Step 12: Write basic e2e scenarios for providers filtering and deep-link
  • Step 13: Add minimal telemetry hooks and events
  • Step 14: Update README UX GIF and usage notes

Updated TODO status

Step 4: Build SearchBoxComponent with chips, @autocomplete (initial), and keyboard shortcuts Step 5: Build ProviderPickerComponent (Ctrl/⌘+K modal) with filtering and apply — finish History column + a11y in modal Step 6: Build SearchSuggestionsComponent with grouped sections and empty-state handling — add per-provider unsupported rows + deep-links Step 7: Add router query-param sync and default provider preference loading (initial sync in Search page) Step 9: Persist default providers preference in user profile (client + server endpoints wired) Step 10: Add keyboard accessibility and a11y behaviors (Tab/Shift+Tab, Esc) — finish trap/aria in modal Step 11: Write unit tests (SearchService, ProviderPicker toggle, @ parsing) Step 12: Write basic e2e scenarios for providers filtering and deep-link Step 13: Add minimal telemetry hooks and events Step 14: Update README UX GIF and usage notes