Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

FormSubmission

tipo Desde 1.5.0 Sin import

Cómo terminó un envío de Form.trySubmit:

  • { ok: true, result }: submit terminó bien y devolvió result.
  • { ok: false, reason: "invalid" }: los datos no superaron el schema del navegador, o el servidor respondió con issues (un 400, o un ApiError con issues); errors y error son los mensajes que muestra el formulario, y failure, el ClientError del servidor (null si validó el navegador).
  • { ok: false, reason: "error" }: el envío falló sin issues, como un 409 o un fallo de red; error es el texto de errorMessage (null si un reset lo 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 un reset descartó 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 submit cuando 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);
}

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/app/composables/useForm.ts