aboutsummaryrefslogtreecommitdiff
path: root/apps/web/lib/searchParams.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/lib/searchParams.ts')
-rw-r--r--apps/web/lib/searchParams.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/apps/web/lib/searchParams.ts b/apps/web/lib/searchParams.ts
new file mode 100644
index 00000000..9899eaf7
--- /dev/null
+++ b/apps/web/lib/searchParams.ts
@@ -0,0 +1,26 @@
+import {
+ createSearchParamsCache,
+ parseAsInteger,
+ parseAsString,
+ parseAsBoolean,
+ parseAsArrayOf,
+ parseAsJson,
+} from "nuqs/server";
+import { z } from "zod";
+
+export const homeSearchParamsCache = createSearchParamsCache({
+ firstTime: parseAsBoolean.withDefault(false),
+});
+
+export const chatSearchParamsCache = createSearchParamsCache({
+ firstTime: parseAsBoolean.withDefault(false),
+ q: parseAsString.withDefault(""),
+ spaces: parseAsArrayOf(
+ parseAsJson(() =>
+ z.object({
+ id: z.string(),
+ name: z.string(),
+ }),
+ ),
+ ).withDefault([]),
+});