nitropage
Version:
A free and open source, extensible visual page builder based on SolidStart.
21 lines (17 loc) • 685 B
text/typescript
import { getUser } from "#lib/auth/server";
import { EditorUiContext } from "#lib/context/admin";
import { getValidLayouts as getValidLayouts_ } from "#lib/server/layout";
import { createAsyncStore, query } from "@solidjs/router";
import { useContext } from "solid-js";
export const getValidLayouts = query(async (pageId: string) => {
"use server";
await getUser({ assert: {} });
return await getValidLayouts_(pageId);
}, "np-validLayouts");
export const useValidLayouts = () => {
const [editorUi] = useContext(EditorUiContext)!;
return createAsyncStore(
async () => (await getValidLayouts(editorUi.pageId)) ?? {},
{ initialValue: {}, deferStream: true },
);
};