From db938540a5913caf275ea2f143d0e77c2e037ae8 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Fri, 16 Dec 2022 10:18:54 +0000 Subject: [PATCH] safeParse query params --- packages/lib/hooks/useTypedQuery.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/lib/hooks/useTypedQuery.ts b/packages/lib/hooks/useTypedQuery.ts index 2e7a4aae56..39b68cb4e5 100644 --- a/packages/lib/hooks/useTypedQuery.ts +++ b/packages/lib/hooks/useTypedQuery.ts @@ -8,8 +8,18 @@ export function useTypedQuery(schema: T) { [K in keyof InferedSchema]: undefined extends InferedSchema[K] ? K : never; }[keyof InferedSchema]; + type ArrayOnlyKeys = { + [K in keyof InferedSchema]: InferedSchema[K] extends Array & undefined ? K : never; + }; + const { query: unparsedQuery, ...router } = useRouter(); - const parsedQuery = schema.parse(unparsedQuery); + const parsedQuerySchema = schema.safeParse(unparsedQuery); + + let parsedQuery: InferedSchema = {} as InferedSchema; + + if (parsedQuerySchema.success) { + parsedQuery = parsedQuerySchema.data; + } // Set the query based on schema values function setQuery(key: J, value: Partial) {