diff --git a/app/[locale]/bible/reader.tsx b/app/[locale]/bible/reader.tsx index f96fe90..f9fca6e 100644 --- a/app/[locale]/bible/reader.tsx +++ b/app/[locale]/bible/reader.tsx @@ -494,6 +494,36 @@ export default function BibleReaderNew() { const currentBook = books.find(book => book.id === selectedBook) const maxChapters = currentBook?.chapters?.length || 1 + const handleShare = async () => { + if (!selectedBook || !selectedChapter) return + + const shareUrl = `${window.location.origin}/${locale}/bible?version=${selectedVersion}&book=${selectedBook}&chapter=${selectedChapter}` + const shareText = currentBook ? `${currentBook.name} ${selectedChapter}` : `Chapter ${selectedChapter}` + + if (navigator.share) { + try { + await navigator.share({ + title: shareText, + url: shareUrl + }) + } catch (error) { + // User cancelled sharing or fallback to clipboard + try { + await navigator.clipboard.writeText(shareUrl) + } catch (clipError) { + console.error('Failed to copy link:', clipError) + } + } + } else { + // Fallback: copy to clipboard + try { + await navigator.clipboard.writeText(shareUrl) + } catch (error) { + console.error('Failed to copy link:', error) + } + } + } + const scrollToVerse = (verseNum: number) => { const verseElement = verseRefs.current[verseNum] if (verseElement) { @@ -535,7 +565,13 @@ export default function BibleReaderNew() { } const handleChapterBookmark = async () => { - if (!user || !selectedBook || !selectedChapter) return + if (!selectedBook || !selectedChapter) return + + // If user is not authenticated, redirect to login + if (!user) { + router.push(`/${locale}/login?redirect=${encodeURIComponent(`/${locale}/bible?version=${selectedVersion}&book=${selectedBook}&chapter=${selectedChapter}`)}`) + return + } setBookmarkLoading(true) const token = localStorage.getItem('authToken') @@ -577,7 +613,11 @@ export default function BibleReaderNew() { } const handleVerseBookmark = async (verse: BibleVerse) => { - if (!user) return + // If user is not authenticated, redirect to login + if (!user) { + router.push(`/${locale}/login?redirect=${encodeURIComponent(`/${locale}/bible?version=${selectedVersion}&book=${selectedBook}&chapter=${selectedChapter}&verse=${verse.verseNum}`)}`) + return + } const token = localStorage.getItem('authToken') if (!token) return @@ -624,17 +664,7 @@ export default function BibleReaderNew() { navigator.clipboard.writeText(text).then(() => { setCopyFeedback({ open: true, - message: t('verseCopied') - }) - }) - } - - const handleShare = () => { - const url = `${window.location.origin}/${locale}/bible?book=${selectedBook}&chapter=${selectedChapter}&version=${selectedVersion}` - navigator.clipboard.writeText(url).then(() => { - setCopyFeedback({ - open: true, - message: t('linkCopied') + message: t('bible.copied') }) }) } @@ -719,7 +749,7 @@ export default function BibleReaderNew() { - {user && !preferences.readingMode && ( + {!preferences.readingMode && ( - {user && ( - - - {isChapterBookmarked ? : } - - - )} + + + {(isChapterBookmarked && user) ? : } + + - +