supermemory/apps/web/lib/searchParams.ts
2024-06-22 17:43:16 -05:00

34 lines
729 B
TypeScript

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((c) => {
const valid = z
.object({
id: z.string(),
name: z.string(),
})
.safeParse(c);
if (!valid.success) {
return null;
}
return valid.data;
}),
).withDefault([]),
});