FormSubmission
tipo Desde 1.5.0 Sin import
Cómo terminó un envío de Form.trySubmit:
{ ok: true, result }:submitterminó bien y devolvióresult.{ ok: false, reason: "invalid" }: los datos no superaron el schema del navegador, o el servidor respondió conissues(un400, o unApiErrorconissues);errorsyerrorson los mensajes que muestra el formulario, yfailure, elClientErrordel servidor (nullsi validó el navegador).{ ok: false, reason: "error" }: el envío falló sinissues, como un409o un fallo de red;errores el texto deerrorMessage(nullsi unresetlo descartó).{ ok: false, reason: "skipped" }: no se envió nada, porque ya había un envío en curso, porque el script se ejecuta sólo para producir HTML (SSR) o porque unresetdescartó los valores mientras el schema validaba.
Se autoimporta en los componentes y en app/.
ts
import type { FormSubmission } from "@meekojs/meeko/framework";Código fuente src/app/composables/useForm.ts:162
Declaración #
ts
type FormSubmission<Result> =
| {
readonly ok: true
readonly result: Result
}
| {
readonly ok: false
readonly reason: 'invalid'
readonly errors: Readonly<Record<string, string>>
readonly error: string | null
readonly failure: Error | null
}
| {
readonly ok: false
readonly reason: 'error'
readonly error: string | null
readonly failure: Error
}
| {
readonly ok: false
readonly reason: 'skipped'
}Parámetros de tipo #
-
Result Lo que devuelve
submitcuando el envío termina bien.
Ejemplo #
ts
async function save(event: SubmitEvent): Promise<void> {
const outcome = await form.trySubmit(event);
if (outcome.ok) lastSaved.value = outcome.result.updatedAt;
else if (outcome.reason === "error") console.warn(outcome.failure);
}