Add version switching for favorites - clicking NKJV favorites now switches to NKJV version and URL parameters update automatically

- Added setSelectedVersion prop to FavoritesMenu component
- Updated navigateToFavorite to switch app version before navigation
- Favorites now switch to the stored version automatically
- URL parameters update correctly for ESV/NKJV selection
This commit is contained in:
Ryderjj89
2025-09-28 13:45:31 -04:00
parent 54edb264fe
commit e21bc59463
2 changed files with 18 additions and 11 deletions

View File

@@ -497,12 +497,13 @@ function App() {
{user && ( {user && (
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-2"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-2">
<div className="flex justify-end"> <div className="flex justify-end">
<FavoritesMenu <FavoritesMenu
user={user} user={user}
formatBookName={formatBookName} formatBookName={formatBookName}
getBookUrlName={getBookUrlName} getBookUrlName={getBookUrlName}
onFavoriteChange={() => setUser((prev: any) => ({ ...prev }))} setSelectedVersion={setSelectedVersion}
/> onFavoriteChange={() => setUser((prev: any) => ({ ...prev }))}
/>
</div> </div>
</div> </div>
)} )}

View File

@@ -18,9 +18,10 @@ interface FavoritesMenuProps {
formatBookName: (bookName: string) => string; formatBookName: (bookName: string) => string;
getBookUrlName: (bookName: string) => string; getBookUrlName: (bookName: string) => string;
onFavoriteChange?: () => void; onFavoriteChange?: () => void;
setSelectedVersion?: (version: string) => void;
} }
const FavoritesMenu: React.FC<FavoritesMenuProps> = ({ user, formatBookName, getBookUrlName, onFavoriteChange }) => { const FavoritesMenu: React.FC<FavoritesMenuProps> = ({ user, formatBookName, getBookUrlName, onFavoriteChange, setSelectedVersion }) => {
const [isOpen, setIsOpen] = useState(false); const [isOpen, setIsOpen] = useState(false);
const [favorites, setFavorites] = useState<Favorite[]>([]); const [favorites, setFavorites] = useState<Favorite[]>([]);
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
@@ -71,14 +72,19 @@ const FavoritesMenu: React.FC<FavoritesMenuProps> = ({ user, formatBookName, get
const navigateToFavorite = (favorite: Favorite) => { const navigateToFavorite = (favorite: Favorite) => {
const urlBookName = getBookUrlName(favorite.book); const urlBookName = getBookUrlName(favorite.book);
// Switch to the version the favorite was stored with
if (favorite.version && favorite.version !== 'esv' && setSelectedVersion) {
setSelectedVersion(favorite.version);
}
if (favorite.chapter) { if (favorite.chapter) {
// Navigate to chapter, with verse hash if it's a verse favorite // Navigate to chapter, with verse hash if it's a verse favorite
let url = `/book/${urlBookName}/chapter/${favorite.chapter}`; let navUrl = `/book/${urlBookName}/chapter/${favorite.chapter}`;
if (favorite.verse_start) { if (favorite.verse_start) {
url += `#verse-${favorite.verse_start}`; navUrl += `#verse-${favorite.verse_start}`;
} }
navigate(url); navigate(navUrl);
} else { } else {
// Navigate to book // Navigate to book
navigate(`/book/${urlBookName}`); navigate(`/book/${urlBookName}`);