diff --git a/frontend/src/components/FavoritesMenu.tsx b/frontend/src/components/FavoritesMenu.tsx index dbfb2f18..0beca1e3 100644 --- a/frontend/src/components/FavoritesMenu.tsx +++ b/frontend/src/components/FavoritesMenu.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { Star, ChevronDown, ChevronUp, X } from 'lucide-react'; +import { Star, ChevronDown, ChevronUp, X, Book, FileText, Quote } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; interface Favorite { @@ -93,6 +93,55 @@ const FavoritesMenu: React.FC = ({ user, formatBookName, get } }; + // Organize favorites by type + const organizedFavorites = { + books: favorites.filter(f => !f.chapter), + chapters: favorites.filter(f => f.chapter && !f.verse_start), + verses: favorites.filter(f => f.verse_start) + }; + + const renderFavoriteSection = (title: string, items: Favorite[], icon: React.ReactNode) => { + if (items.length === 0) return null; + + return ( +
+
+ {icon} + + {title} ({items.length}) + +
+ {items.map((favorite) => ( +
+ + +
+ ))} +
+ ); + }; + if (!user) { return null; // Don't show favorites menu for non-authenticated users } @@ -140,34 +189,22 @@ const FavoritesMenu: React.FC = ({ user, formatBookName, get

Click the ★ next to books, chapters, or verses to add them here

) : ( -
- {favorites.map((favorite) => ( -
- - -
- ))} +
+ {renderFavoriteSection( + "Books", + organizedFavorites.books, + + )} + {renderFavoriteSection( + "Chapters", + organizedFavorites.chapters, + + )} + {renderFavoriteSection( + "Verses", + organizedFavorites.verses, + + )}
)}