'use client'; import { useEffect } from 'react'; import OfflinePinVerify from '@/components/offline/OfflinePinVerify'; import { useTranslations } from 'next-intl'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faWifi, faArrowLeft } from '@fortawesome/free-solid-svg-icons'; import * as tauri from '@/lib/tauri'; export default function OfflineLoginPage() { const t = useTranslations(); async function handlePinSuccess(userId: string): Promise { try { const encryptionKey = await tauri.getUserEncryptionKey(userId); if (encryptionKey) { await tauri.dbInitialize(userId, encryptionKey); await tauri.loginSuccess(); } } catch (error) { console.error('[OfflineLogin] Error initializing database:', error); } } function handleBackToOnline(): void { tauri.logout(); } useEffect((): void => { async function checkOfflineCapability() { const offlineStatus = await tauri.offlineModeGet(); if (!offlineStatus.hasPin) { window.location.href = '/login/login'; } } checkOfflineCapability().then(); }, []); return (
{/* Offline indicator */}
{t('offline.mode.title')}
{/* Logo */}
ERitors
{/* PIN Verify Component */} {/* Back to online link */}
); }