PodcastList Component
ThePodcastList component renders the main podcast browsing interface. It displays a filterable, paginated grid of podcast episodes with search capabilities, multiple filter options, and animated transitions.
Location
Import
Props
Callback function triggered when a podcast is played. Receives the podcast object as an argument.
Features
Filtering System
The component provides six filter categories:- Todos: All podcasts
- Empezados: Started but not completed episodes
- No Empezados: Episodes that haven’t been started
- Favoritos: Favorite episodes
- Escuchar más tarde: Episodes saved for later
- Completados: Completed episodes
Search Integration
Filters work in conjunction with the global search term from Redux state:Redux State
The component connects to multiple Redux slices:- Podcast Slice
- Filter Slice
- Player Slice
- AudioTime Slice
Animations
The component uses Framer Motion for smooth animations:Usage Example
Filter Buttons
Each filter button has hover effects and tooltips:Pagination
Pagination appears both above and below the podcast grid (when more than 12 items exist):Navigation
Clicking a podcast card navigates to its detail page:Empty State
When no results match the current filter/search:SEO
The component includes SEO metadata via React Helmet:Mobile Responsiveness
The component uses theuseMobileDetect hook to adjust spacing:
Related Components
- MP3Player - Individual podcast cards rendered in the grid
- Pagination - Pagination controls for browsing episodes
- NoResults - Empty state display when no episodes match filters
