// fichaje.eu — Screen: Mis documentos (personal docs + digital signature) const ScreenMisDocs = () => { const [signOpen, setSignOpen] = React.useState(false); const [filter, setFilter] = React.useState('todos'); const filtered = filter === 'todos' ? MY_DOCS : MY_DOCS.filter(d => d.kind === filter); const kindMeta = { contract: { label: 'Contrato', icon: , tone: 'brand' }, payslip: { label: 'Nómina', icon: , tone: 'success' }, policy: { label: 'Política', icon: , tone: 'violet' }, tax: { label: 'Fiscal', icon: , tone: 'warning' }, }; return (
Mis documentos
{MY_DOCS.length} documentos · 1 pendiente de firma
}>Subir }>Descargar todo
{[ { v: 'todos', l: 'Todos', c: MY_DOCS.length }, { v: 'contract', l: 'Contratos', c: MY_DOCS.filter(d => d.kind === 'contract').length }, { v: 'payslip', l: 'Nóminas', c: MY_DOCS.filter(d => d.kind === 'payslip').length }, { v: 'policy', l: 'Políticas', c: MY_DOCS.filter(d => d.kind === 'policy').length }, { v: 'tax', l: 'Fiscal', c: MY_DOCS.filter(d => d.kind === 'tax').length }, ].map(f => ( ))}
{filtered.map((d, i) => { const k = kindMeta[d.kind]; return (
PDF
{d.name}
{d.size} · {d.date}
{k.icon}{k.label} {d.status} {d.status === 'pendiente' ? ( } onClick={() => setSignOpen(d)}>Firmar ) : ( }>Descargar )}
); })}
Tienes 1 documento pendiente
Política de teletrabajo 2026 — plazo hasta el 25 may.
} onClick={() => setSignOpen(MY_DOCS[3])}>Firmar ahora
1.2 GB usadosde 3 GB
Cifrado AES-256 · Solo tú y RRHH tenéis acceso.
{[ { name: 'Anexo dietas comercial', date: '12 ene 2026' }, { name: 'Acuerdo de confidencialidad', date: '04 mar 2024' }, { name: 'Contrato indefinido', date: '04 mar 2024' }, ].map((s, i) => (
{s.name}
Firmado el {s.date}
))}
{signOpen && setSignOpen(false)}/>}
); }; const SignModal = ({ doc, onClose }) => { const [signed, setSigned] = React.useState(false); const [signature, setSignature] = React.useState(''); return (
e.stopPropagation()} style={{ background: '#fff', borderRadius: 'var(--r-xl)', width: 720, maxHeight: '85vh', overflow: 'hidden', display: 'flex', flexDirection: 'column', boxShadow: 'var(--shadow-lg)' }}>
Firmar documento
{doc.name}
{/* Fake document preview */}
Política de Teletrabajo 2026
IABusiness.es · v2.1 · Vigencia desde el 1 jun 2026

La presente política establece el marco de teletrabajo aplicable a todos los empleados de IABusiness.es con contrato indefinido o temporal de duración superior a 6 meses.

El empleado podrá teletrabajar hasta 3 días por semana, comunicando con antelación al manager directo los días previstos. La empresa proporcionará el equipo informático necesario y una compensación mensual de 35€ en concepto de gastos de conectividad y suministros.

Los días de teletrabajo deberán fichar en la aplicación oficial fichaje.eu, manteniendo el horario laboral acordado y atendiendo a las reuniones programadas con normalidad…

FIRMA DEL EMPLEADO
{signed ? (signature || 'Marc Vives') : '— Pendiente de firma —'}
{signed &&
Firmado el 13 may 2026, 14:52 · IP 81.34.x.x · Cert. digital fichaje.eu
}
{!signed ? (
setSignature(e.target.value)} placeholder="Marc Vives" style={{ fontFamily: 'cursive', fontSize: 16 }}/>
Cancelar } onClick={() => setSigned(true)}>Firmar digitalmente
) : (
Documento firmado correctamente
}>Descargar copia Cerrar
)}
); }; Object.assign(window, { ScreenMisDocs });