'use client' import { useState, useCallback, useEffect } from 'react' import { useRouter } from 'next/navigation' import PageLayout from '../components/PageLayout' import useAuthStore from '../store/authStore' import { useUserStatus } from '../hooks/useUserStatus' import { CheckCircleIcon, XCircleIcon, EnvelopeOpenIcon, IdentificationIcon, InformationCircleIcon, DocumentCheckIcon, ArrowUpOnSquareIcon, PencilSquareIcon, ClipboardDocumentCheckIcon } from '@heroicons/react/24/outline' interface StatusItem { key: string label: string description: string complete: boolean icon: React.ComponentType> } export default function QuickActionDashboardPage() { const router = useRouter() const user = useAuthStore(s => s.user) const { userStatus, loading, error, refreshStatus } = useUserStatus() const [isClient, setIsClient] = useState(false) useEffect(() => { setIsClient(true) }, []) // Derive status from real backend data const emailVerified = userStatus?.email_verified || false const idUploaded = userStatus?.documents_uploaded || false const additionalInfo = userStatus?.profile_completed || false const contractSigned = userStatus?.contract_signed || false const statusItems: StatusItem[] = [ { key: 'email', label: 'Email Verification', description: emailVerified ? 'Verified' : 'Missing', complete: emailVerified, icon: EnvelopeOpenIcon }, { key: 'id', label: 'ID Document', description: idUploaded ? 'Uploaded' : 'Missing', complete: idUploaded, icon: IdentificationIcon }, { key: 'info', label: 'Additional Info', description: additionalInfo ? 'Completed' : 'Missing', complete: additionalInfo, icon: InformationCircleIcon }, { key: 'contract', label: 'Contract', description: contractSigned ? 'Signed' : 'Missing', complete: contractSigned, icon: DocumentCheckIcon } ] // Action handlers - navigate to proper QuickAction pages const handleVerifyEmail = useCallback(() => { router.push('/quickaction-dashboard/register-email-verify') }, [router]) const handleUploadId = useCallback(() => { const userType = user?.userType || 'personal' router.push(`/quickaction-dashboard/register-upload-id/${userType}`) }, [router, user]) const handleCompleteInfo = useCallback(() => { const userType = user?.userType || 'personal' router.push(`/quickaction-dashboard/register-additional-information/${userType}`) }, [router, user]) const handleSignContract = useCallback(() => { const userType = user?.userType || 'personal' router.push(`/quickaction-dashboard/register-sign-contract/${userType}`) }, [router, user]) const canUploadId = emailVerified const canCompleteInfo = emailVerified && idUploaded const canSignContract = emailVerified && idUploaded && additionalInfo return (
{/* Background Pattern */} {/* Colored Blur Effect */}