'use client' import { Suspense, useState, useEffect } from 'react' import dynamic from 'next/dynamic' // Dynamic imports to avoid SSR issues with navigator/window const OfflineBibleReader = dynamic( () => import('@/components/bible/offline-bible-reader').then(mod => ({ default: mod.OfflineBibleReader })), { ssr: false, loading: () =>
Loading offline reader...
} ) const OfflineDownloadManager = dynamic( () => import('@/components/bible/offline-download-manager').then(mod => ({ default: mod.OfflineDownloadManager })), { ssr: false, loading: () =>
Loading download manager...
} ) const InstallPrompt = dynamic( () => import('@/components/pwa/install-prompt').then(mod => ({ default: mod.InstallPrompt })), { ssr: false } ) import { Box, Container, Typography, Tabs, Tab, Paper } from '@mui/material' interface BibleVersion { id: string name: string abbreviation: string language: string isDefault?: boolean } function OfflinePageContent() { const [tabValue, setTabValue] = useState(0) const [availableVersions, setAvailableVersions] = useState([]) useEffect(() => { // Fetch available Bible versions for download fetch('/api/bible/versions?all=true&limit=50') .then(res => res.json()) .then(data => { if (data.success && data.versions) { setAvailableVersions(data.versions) } }) .catch(err => console.error('Failed to fetch versions:', err)) }, []) const handleTabChange = (event: React.SyntheticEvent, newValue: number) => { setTabValue(newValue) } return ( Offline Bible Reading Download Bible versions for offline reading and access them without an internet connection. {tabValue === 0 && ( setTabValue(1)} /> )} {tabValue === 1 && ( setTabValue(0)} /> )} {/* PWA Install Prompt */} ) } export default function OfflinePage() { return ( Loading offline reading interface... }> ) }