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:
@@ -497,12 +497,13 @@ function App() {
|
||||
{user && (
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-2">
|
||||
<div className="flex justify-end">
|
||||
<FavoritesMenu
|
||||
user={user}
|
||||
formatBookName={formatBookName}
|
||||
getBookUrlName={getBookUrlName}
|
||||
onFavoriteChange={() => setUser((prev: any) => ({ ...prev }))}
|
||||
/>
|
||||
<FavoritesMenu
|
||||
user={user}
|
||||
formatBookName={formatBookName}
|
||||
getBookUrlName={getBookUrlName}
|
||||
setSelectedVersion={setSelectedVersion}
|
||||
onFavoriteChange={() => setUser((prev: any) => ({ ...prev }))}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -18,9 +18,10 @@ interface FavoritesMenuProps {
|
||||
formatBookName: (bookName: string) => string;
|
||||
getBookUrlName: (bookName: string) => string;
|
||||
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 [favorites, setFavorites] = useState<Favorite[]>([]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
@@ -72,13 +73,18 @@ const FavoritesMenu: React.FC<FavoritesMenuProps> = ({ user, formatBookName, get
|
||||
const navigateToFavorite = (favorite: Favorite) => {
|
||||
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) {
|
||||
// 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) {
|
||||
url += `#verse-${favorite.verse_start}`;
|
||||
navUrl += `#verse-${favorite.verse_start}`;
|
||||
}
|
||||
navigate(url);
|
||||
navigate(navUrl);
|
||||
} else {
|
||||
// Navigate to book
|
||||
navigate(`/book/${urlBookName}`);
|
||||
|
||||
Reference in New Issue
Block a user