'use client'; import { useEffect, useState } from 'react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { FielUploadModal } from '@/components/sat/FielUploadModal'; import { SyncStatus } from '@/components/sat/SyncStatus'; import { SyncHistory } from '@/components/sat/SyncHistory'; import { getFielStatus, deleteFiel } from '@/lib/api/fiel'; import type { FielStatus } from '@horux/shared'; export default function SatConfigPage() { const [fielStatus, setFielStatus] = useState(null); const [loading, setLoading] = useState(true); const [showUploadModal, setShowUploadModal] = useState(false); const [deleting, setDeleting] = useState(false); const fetchFielStatus = async () => { try { const status = await getFielStatus(); setFielStatus(status); } catch (err) { console.error('Error fetching FIEL status:', err); } finally { setLoading(false); } }; useEffect(() => { fetchFielStatus(); }, []); const handleUploadSuccess = (status: FielStatus) => { setFielStatus(status); setShowUploadModal(false); }; const handleDelete = async () => { if (!confirm('Estas seguro de eliminar la FIEL? Se detendran las sincronizaciones automaticas.')) { return; } setDeleting(true); try { await deleteFiel(); setFielStatus({ configured: false }); } catch (err) { console.error('Error deleting FIEL:', err); } finally { setDeleting(false); } }; if (loading) { return (

Configuracion SAT

Cargando...

); } return (

Configuracion SAT

Gestiona tu FIEL y la sincronizacion automatica de CFDIs

{/* Estado de la FIEL */} FIEL (e.firma) Tu firma electronica para autenticarte con el SAT {fielStatus?.configured ? (

RFC

{fielStatus.rfc}

No. Serie

{fielStatus.serialNumber}

Vigente hasta

{fielStatus.validUntil ? new Date(fielStatus.validUntil).toLocaleDateString('es-MX') : '-'}

Estado

{fielStatus.isExpired ? 'Vencida' : `Valida (${fielStatus.daysUntilExpiration} dias)`}

) : (

No tienes una FIEL configurada. Sube tu certificado y llave privada para habilitar la sincronizacion automatica de CFDIs con el SAT.

)}
{/* Estado de Sincronizacion */} {/* Historial */} {/* Modal de carga */} {showUploadModal && ( setShowUploadModal(false)} /> )}
); }