cf2349ef2f
- Next.js 15 + TypeScript + Bootstrap 5 + FontAwesome - Layout replica SAM.Master (sidebar collapsable + header) - Sidebar, Header, LoadingSpinner, ModalConfirmacion components - Login page with RUT validation - Dashboard page with summary cards - AuthContext + JWT auth with cookies - api.ts centralized HTTP client - useInactividad hook (30min timeout) - validarRut.ts + utils.ts migrated - Original CSS + images copied from project - Dockerfile multi-stage build
28 lines
761 B
TypeScript
28 lines
761 B
TypeScript
'use client';
|
|
|
|
interface Props {
|
|
open: boolean;
|
|
title: string;
|
|
message: string;
|
|
onConfirm: () => void;
|
|
onCancel: () => void;
|
|
confirmText?: string;
|
|
}
|
|
|
|
export default function ModalConfirmacion({ open, title, message, onConfirm, onCancel, confirmText = 'Aceptar' }: Props) {
|
|
if (!open) return null;
|
|
|
|
return (
|
|
<div className="modal-overlay" onClick={onCancel}>
|
|
<div className="modal-content" onClick={e => e.stopPropagation()}>
|
|
<h3>{title}</h3>
|
|
<p>{message}</p>
|
|
<div className="modal-actions">
|
|
<button className="btn btn-secondary" onClick={onCancel}>Cancelar</button>
|
|
<button className="btn btn-primary" onClick={onConfirm}>{confirmText}</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|