Files
PodTui/tasks/podtui-navigation-theming-improvements/04-fix-settings-sources-crash.md
2026-02-04 12:38:35 -05:00

55 lines
2.0 KiB
Markdown

# 04. Fix Settings/Sources Sub-tab Crash
meta:
id: podtui-navigation-theming-improvements-04
feature: podtui-navigation-theming-improvements
priority: P1
depends_on: [podtui-navigation-theming-improvements-01]
tags: [bug-fix, settings, crash]
objective:
- Identify and fix crash when Settings/Sources sub-tab is selected
- Ensure SourceManager component loads without errors
- Test all functionality in Settings/Sources sub-tab
deliverables:
- Fixed SourceManager.tsx component
- Debugged crash identified and resolved
- Test results showing no crashes
steps:
- Read src/components/SourceManager.tsx thoroughly
- Check for null/undefined references in SourceManager
- Verify useFeedStore() is properly initialized
- Check all focus areas (list, add, url, country, explicit, language)
- Verify input component is properly imported and used
- Add null checks and error boundaries if needed
- Test Settings tab selection in App.tsx
- Test Sources sub-tab selection in SettingsScreen.tsx
- Verify no console errors
- Test all keyboard shortcuts and interactions
tests:
- Unit: Test SourceManager component with mocked store
- Integration: Test Settings tab → Sources sub-tab navigation
acceptance_criteria:
- Settings tab can be selected without crashes
- Sources sub-tab can be selected without crashes
- No console errors when Settings/Sources sub-tab is active
- All SourceManager functionality works (keyboard shortcuts, navigation)
- All form inputs and buttons work correctly
validation:
- Run `bun run start` and select Settings tab
- Select Sources sub-tab and verify it loads
- Check console for errors
- Test all keyboard interactions (tab, esc, enter, space, a, d)
- Verify form inputs work correctly
notes:
- Common crash causes: null store, undefined sources, missing component imports
- Check for unhandled promises or async operations
- Verify all props are properly passed from SettingsScreen.tsx
- Ensure useKeyboard hook doesn't conflict with parent keyboard handlers