mirror of
https://github.com/R0m1k3/podcastic.git
synced 2026-10-23 23:18:05 +02:00
feat: implement EpisodeCard component and integrate it into the dashboard view
This commit is contained in:
1 parent
01c179c68b
commit
05eaa96e75
3 files changed
+65
-7
No files matched your search
@@ -40,6 +40,25 @@ export default function Dashboard() {
|
||||
setIsDetailsOpen(true);
|
||||
};
|
||||
|
||||
const handleToggleRead = async (episode: Episode, completed: boolean) => {
|
||||
try {
|
||||
await episodeService.saveProgress(
|
||||
episode._id,
|
||||
completed ? episode.duration : 0,
|
||||
completed
|
||||
);
|
||||
setEpisodes(prev =>
|
||||
prev.map(ep =>
|
||||
ep._id === episode._id
|
||||
? { ...ep, progress: { position: completed ? ep.duration : 0, isCompleted: completed } }
|
||||
: ep
|
||||
)
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Failed to toggle read state:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// Load user
|
||||
useEffect(() => {
|
||||
const loadUser = async () => {
|
||||
@@ -191,6 +210,7 @@ export default function Dashboard() {
|
||||
episode={episode}
|
||||
onPlay={playEpisode}
|
||||
onDetails={handleOpenDetails}
|
||||
onToggleRead={handleToggleRead}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
@@ -223,6 +243,7 @@ export default function Dashboard() {
|
||||
episode={episode}
|
||||
onPlay={playEpisode}
|
||||
onDetails={handleOpenDetails}
|
||||
onToggleRead={handleToggleRead}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user