From 0c295c66b4863c8f54d386c136e7c54f7c98e88f Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Sun, 4 Dec 2022 17:29:56 -0800 Subject: [PATCH] Use zod preprocess to coerce string to number and string to boolean before performing zod validations. Using error messages on UI. --- .../search/advancedSearch/index.svelte | 36 ++++++++++++------- .../components/search/textSearch/index.svelte | 3 +- src/lib/zodValidation.ts | 30 ++++++++++++---- src/routes/+page.svelte | 2 ++ src/routes/search/+page.server.ts | 15 +++----- 5 files changed, 54 insertions(+), 32 deletions(-) diff --git a/src/lib/components/search/advancedSearch/index.svelte b/src/lib/components/search/advancedSearch/index.svelte index e15920b..3b1b3bb 100644 --- a/src/lib/components/search/advancedSearch/index.svelte +++ b/src/lib/components/search/advancedSearch/index.svelte @@ -3,20 +3,28 @@ import { boredState } from '$lib/stores/boredState'; export let form: ActionData; + const errors = form?.errors; let submitting = $boredState?.loading; - let minAge = +form?.minAge || 1; - let minPlayers = +form?.minPlayers || 1; - let maxPlayers = +form?.maxPlayers || 1; - let exactMinPlayers = form?.exactMinPlayers || false; - let exactMaxPlayers = form?.exactMaxPlayers || false; + let minAge = +form?.data?.minAge || 1; + let minPlayers = +form?.data?.minPlayers || 1; + let maxPlayers = +form?.data?.maxPlayers || 1; + let exactMinPlayers = Boolean(form?.data?.exactMinPlayers) || false; + let exactMaxPlayers = Boolean(form?.data?.exactMaxPlayers) || false;