Files
FRASA-CAS/apps/alta-clientes/src/forms/DatosGeneralesForm.tsx
Consult AS Technology ecd4edac02 feat: ecosistema FRASA — apps Cotizador, Alta Clientes, Cobranza y Landing
- Cotizador (/quote): 4 propuestas con formulas validadas del Excel, comparador,
  combobox de unidades, vigencia, PDF ANEXO A
- Alta Clientes (/client): wizard 8 pasos, validacion CURP RENAPO, OCR de INE,
  checklist de expediente, firma digital, 5 PDFs legales
- Cobranza (/pay): planes de enganche, mora, vista cobranza del dia, recibos PDF,
  bitacora, dashboard con filtros
- Landing (/): entrada al ecosistema
- Design system StudioBlank (monocromo, acento #1B4332) en las 4 apps
- 123 tests vitest
2026-08-21 22:27:36 +00:00

31 lines
924 B
TypeScript

import { useForm, FormProvider } from 'react-hook-form'
import { zodResolver } from '@hookform/resolvers/zod'
import type { DatosGenerales } from '../types'
import { datosGeneralesSchema } from '../lib/schemas'
import DatosGeneralesCampos from './DatosGeneralesCampos'
import Navegacion from './Navegacion'
export interface PasoProps<T> {
valores: T
onAnterior?: () => void
onSiguiente: (datos: T) => void
}
/** Paso 1: datos generales del cliente */
export default function DatosGeneralesForm({ valores, onSiguiente }: PasoProps<DatosGenerales>) {
const metodos = useForm<DatosGenerales>({
resolver: zodResolver(datosGeneralesSchema),
defaultValues: valores,
mode: 'onSubmit',
})
return (
<FormProvider {...metodos}>
<form onSubmit={metodos.handleSubmit(onSiguiente)} noValidate>
<DatosGeneralesCampos prefix="" />
<Navegacion />
</form>
</FormProvider>
)
}