import { MENSUALIDADES_MAX, MENSUALIDADES_MIN, PCT_ENGANCHE, PCT_ENGANCHE_FIRMA, PCT_ESCRITURACION, type EsquemaFrasaResultado, } from '../lib/esquema-frasa' import { formatoMoneda, formatoPorcentaje } from '../lib/formatters' interface Props { /** Esquema FRASA 2026 calculado (siempre presente: solo se renderiza con unidad) */ esquema: EsquemaFrasaResultado numMensualidades: number onNumMensualidades: (n: number) => void escrituracionDiferida: boolean onEscrituracionDiferida: (v: boolean) => void } const pasoBase = 'flex-1 rounded-xl border border-[#E5E7EB] bg-white p-4 dark:border-[#1E293B] dark:bg-[#0F172A]' const pasoTitulo = 'text-xs font-semibold uppercase tracking-wider text-[#64748B] dark:text-[#94A3B8]' const pasoMonto = 'mt-1 text-lg font-semibold text-[#111827] dark:text-[#E2E8F0]' /** * Panel único del esquema FRASA 2026 (reemplaza a las 4 propuestas): * línea de tiempo Hoy → A la firma → Mensualidades, el detalle de conceptos * (enganche de firma 2.5%, enganche 7.5%, escrituración 5.5%) y los controles * del diferimiento: número de mensualidades (1..36) y si la escrituración se * difiere con el enganche o se paga a la firma. */ export function EsquemaPanel({ esquema, numMensualidades, onNumMensualidades, escrituracionDiferida, onEscrituracionDiferida, }: Props) { return (
Hoy
{formatoMoneda(esquema.apartado)}
Apartado (aparta la unidad)
A la firma
{formatoMoneda(esquema.pagoUnicoFirma)}
Saldo de enganche de firma {!escrituracionDiferida && ' + escrituración'}
Después
{esquema.numMensualidades} × {formatoMoneda(esquema.mensualidad)}
Total diferible {formatoMoneda(esquema.baseDiferible)}
De {MENSUALIDADES_MIN} a {MENSUALIDADES_MAX}; cada una de {formatoMoneda(esquema.mensualidad)}