0.0.28 • Published 3 years ago
cms-client-dane v0.0.28
cms-client
Visually edit your react components with end-to-end type safe schemas.
Installation
pnpm add cms-client-dane
npm i cms-client-dane
yarn add cms-client-dane
Usage
Build a component
import { z } from "zod";
export default function Button({ children }: ButtonProps) {
return <button type="button">{children}</button>;
}
export type ButtonProps = z.infer<typeof ButtonProps>;
export const ButtonProps = z.object({
children: z.string().default("Click me!"),
});
Define your CMS
import { C, loadable } from "cms-client-dane";
export const cms = new C();
// Link your component
cms.define(
loadable(() => import(`~/components/Button`)),
{
name: "Button",
icon: `mdi:button`,
schema: ButtonProps,
}
);
Render a page with remix.run
import { json, LoaderArgs } from "@remix-run/node";
import Button from "~/components/Button";
import { Page } from "cms-client-dane";
export const loader = async ({ request }: LoaderArgs) => {
const pageData = await cms.getPageData(request);
return json({ pageData });
};
export default function Index() {
const { pageData } = useLoaderData<typeof loader>();
return <Page data={pageData} />;
}
0.0.28
3 years ago
0.0.27
3 years ago
0.0.26
3 years ago
0.0.25
3 years ago
0.0.24
3 years ago
0.0.23
3 years ago
0.0.22
3 years ago
0.0.21
3 years ago
0.0.19
3 years ago
0.0.17
3 years ago
0.0.16
3 years ago
0.0.15
3 years ago
0.0.14
3 years ago
0.0.13
3 years ago
0.0.12
3 years ago
0.0.11
3 years ago
0.0.10
3 years ago
0.0.9
3 years ago
0.0.8
3 years ago
0.0.7
3 years ago
0.0.6
3 years ago
0.0.5
3 years ago
0.0.4
3 years ago
0.0.3
3 years ago
0.0.2
3 years ago
0.0.1
3 years ago