1.7 KiB
1.7 KiB
31. Add Reverse Chronological Ordering
meta: id: podcast-tui-app-31 feature: podcast-tui-app priority: P1 depends_on: [30] tags: [ordering, feeds, episodes, solidjs, sorting]
objective:
- Implement reverse chronological ordering for feeds
- Order episodes by publication date (newest first)
- Order feeds by last updated (newest first)
- Provide sort option toggle
deliverables:
src/utils/ordering.tswith sorting functionssrc/components/FeedSortToggle.tsxwith sort optionsrc/components/EpisodeList.tsxwith ordered episode list
steps:
- Create
src/utils/ordering.ts:orderEpisodesByDate(episodes: Episode[]): Episode[]- Order by pubDate descending
- Handle missing dates
orderFeedsByDate(feeds: Feed[]): Feed[]- Order by lastUpdated descending
- Handle missing updates
- Create
src/components/FeedSortToggle.tsx:- Toggle button for date ordering
- Display current sort order
- Update parent component
- Create
src/components/EpisodeList.tsx:- Accept episodes array
- Apply ordering
- Display episodes in reverse chronological order
- Add keyboard navigation
tests:
- Unit: Test episode ordering
- Unit: Test feed ordering
- Unit: Test sort toggle
acceptance_criteria:
- Episodes ordered by date (newest first)
- Feeds ordered by last updated (newest first)
- Sort toggle works correctly
- Ordering persists across sessions
validation:
- Run application and check episode order
- Check feed order
- Toggle sort order
- Restart app and verify ordering persists
notes:
- Use JavaScript
sort()with date comparison - Handle timezone differences
- Add loading state during sort
- Cache ordered results
- Consider adding custom sort options