Files
spacedrive/interface/hooks/useZodRouteParams.ts
Brendan Allan 835de32fd6 zod-powered search params (#790)
* zod-powered search params

* fix ci

* fix context menu

* fix the *other* context menu

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2023-05-05 05:39:52 +00:00

11 lines
335 B
TypeScript

import { useMemo } from 'react';
import { useParams } from 'react-router';
import { z } from 'zod';
export function useZodRouteParams<Z extends z.ZodType<Record<string, any>>>(schema: Z) {
// eslint-disable-next-line no-restricted-syntax
const params = useParams();
return useMemo(() => schema.parse(params), [params, schema]);
}