'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'; export default function OfflineLoginPage() { const t = useTranslations(); async function handlePinSuccess(userId: string):Promise { // Initialize database with user's encryption key if (window.electron) { try { // Get encryption key const encryptionKey = await window.electron.getUserEncryptionKey(userId); if (encryptionKey) { // Initialize database await window.electron.dbInitialize(userId, encryptionKey); // Navigate to main page window.location.href = '/'; } } catch (error) { console.error('[OfflineLogin] Error initializing database:', error); } } } function handleBackToOnline():void { if (window.electron) { window.electron.logout(); } } useEffect(():void => { // Check if we have offline capability async function checkOfflineCapability() { if (window.electron) { const offlineStatus = await window.electron.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 */}
); }