import React, { useState, useEffect } from 'react'; import { Bookmark } from '../types'; import { Bookmark as BookmarkIcon, Play, Trash2, Clock } from 'lucide-react'; import { getBookmarks, removeBookmark } from '../services/storageService'; interface BookmarksPanelProps { onResumeArticle: (url: string, segmentIndex: number) => void; onClose: () => void; } export const BookmarksPanel: React.FC = ({ onResumeArticle, onClose }) => { const [bookmarks, setBookmarks] = useState([]); useEffect(() => { setBookmarks(getBookmarks()); }, []); const handleRemove = (url: string) => { removeBookmark(url); setBookmarks(prev => prev.filter(b => b.url !== url)); }; const formatDate = (timestamp: number): string => { const date = new Date(timestamp); const now = new Date(); const diff = now.getTime() - date.getTime(); const days = Math.floor(diff / (1000 * 60 * 60 * 24)); if (days === 0) return 'Today'; if (days === 1) return 'Yesterday'; if (days < 7) return `${days} days ago`; return date.toLocaleDateString('en', { month: 'short', day: 'numeric' }); }; return (
{/* Header */}

Bookmarks

Resume where you left off

{/* Bookmarks List */}
{bookmarks.length === 0 ? (

No bookmarks yet

Articles are automatically bookmarked when you pause

) : ( bookmarks.map((bookmark) => (

{bookmark.title || 'Untitled'}

{bookmark.url}

{formatDate(bookmark.savedAt)} {bookmark.progress}% complete
{/* Progress bar */}
)) )}
); };