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 && (
|
{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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -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}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user