init
This commit is contained in:
61
tasks/podcast-tui-app/32-feed-detail.md
Normal file
61
tasks/podcast-tui-app/32-feed-detail.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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.ts` with sorting functions
|
||||
- `src/components/FeedSortToggle.tsx` with sort option
|
||||
- `src/components/EpisodeList.tsx` with 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
|
||||
Reference in New Issue
Block a user