diff --git a/.changeset/three-students-grin.md b/.changeset/three-students-grin.md new file mode 100644 index 0000000..f57380b --- /dev/null +++ b/.changeset/three-students-grin.md @@ -0,0 +1,5 @@ +--- +"@dreamkit/site": patch +--- + +Update examples diff --git a/packages/site/src/pages/api/$route/_examples/optional-search-param.tsx b/packages/site/src/pages/api/$route/_examples/optional-search-param.tsx index 3fb140e..d0a04e4 100644 --- a/packages/site/src/pages/api/$route/_examples/optional-search-param.tsx +++ b/packages/site/src/pages/api/$route/_examples/optional-search-param.tsx @@ -4,10 +4,11 @@ import { $route, Link, s } from "dreamkit"; export const homeRoute = $route.path("/").create(() => ( <> {/* @ts-expect-error */} - section + link without params +
{/* @ts-expect-error */} - section with params + link with params )); @@ -15,10 +16,4 @@ export const homeRoute = $route.path("/").create(() => ( export const sectionRoute = $route .path("/section") .params({ name: s.string().optional() }) - .create(({ params }) => { - return ( - - ); - }); + .create(({ params }) => <>name: {params.name}); diff --git a/packages/site/src/pages/api/$route/_examples/path-param.tsx b/packages/site/src/pages/api/$route/_examples/path-param.tsx index b759c40..eb7b9d5 100644 --- a/packages/site/src/pages/api/$route/_examples/path-param.tsx +++ b/packages/site/src/pages/api/$route/_examples/path-param.tsx @@ -4,11 +4,12 @@ import { $route, Link, s } from "dreamkit"; export const homeRoute = $route.path("/").create(() => ( <> {/* @ts-expect-error */} - + user 1 +
{/* @ts-expect-error */} - + user 2 diff --git a/packages/site/src/pages/api/$route/_examples/synced-search-params.tsx b/packages/site/src/pages/api/$route/_examples/synced-search-params.tsx index 339fb43..440c3df 100644 --- a/packages/site/src/pages/api/$route/_examples/synced-search-params.tsx +++ b/packages/site/src/pages/api/$route/_examples/synced-search-params.tsx @@ -1,58 +1,34 @@ // title: Synced search params -import { type InferObjectProps, Input, $route, s } from "dreamkit"; -import { createResource, For } from "solid-js"; - -const users = Array.from({ length: 10 }).map((_, i) => ({ - id: i + 1, - name: `User ${i + 1}`, - country: { code: ["US", "ES"][i % 2] }, -})); - -const params = { - id: s.number().optional(), - name: s.string().optional(), - country: s - .object({ - code: s.string().optional(), - }) - .optional(), -}; - -function fetchUsers(input: InferObjectProps) { - const name = - typeof input.name === "string" ? input.name.toLowerCase() : undefined; - return users.filter((user) => { - if (input.id !== undefined && user.id !== input.id) return false; - if (name && !user.name.toLowerCase().includes(name)) return false; - if ( - input.country?.code !== undefined && - user.country.code !== input.country.code - ) - return false; - return true; - }); -} +import { Input, $route, s } from "dreamkit"; export default $route .path("/") - .params(params) - .onParamsError({ value: { id: 1 } }) + .params( + s + .object({ + name: s.string(), + country: s.object({ + code: s.string(), + }), + }) + .deepPartial(), + ) .create(({ params, setParams }) => { - const [users] = createResource( - () => ({ ...params, country: { ...params.country } }), - fetchUsers, - ); - return ( -
-
+ <> + Look at the address bar of your browser. +

setParams({ ...params, name: name || undefined }) } /> +

+

setParams({ @@ -61,16 +37,7 @@ export default $route }) } /> -

- -
+

+ ); }); diff --git a/packages/site/src/pages/api/create-action/_examples/basic-usage.tsx b/packages/site/src/pages/api/create-action/_examples/basic-usage.tsx index 0997467..6ff2266 100644 --- a/packages/site/src/pages/api/create-action/_examples/basic-usage.tsx +++ b/packages/site/src/pages/api/create-action/_examples/basic-usage.tsx @@ -1,19 +1,35 @@ // title: Basic usage -import { $route, createAction } from "dreamkit"; +import { $api, $route, createAction } from "dreamkit"; -export default $route.path("/").create(() => { - const start = createAction( - () => - new Promise((resolve) => { - setTimeout(() => resolve(Date.now()), 1000); - }), - ); - return ( - <> -

{start.result}

- - - ); +export const start = $api.title("Start").create(async () => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + const id = Date.now(); + if (id % 2) throw new Error("Random error"); + return id; }); + +export default $route + .path("/") + .api({ start }) + .create(({ api }) => { + const start = createAction(api.start); + return ( + <> + + - - ); -} +export default $route + .path("/") + .api({ remove }) + .create(({ api }) => { + const [key, setKey] = createSignal(""); + const remove = createAction(api.remove).with(() => ({ key: key() })); + createEffect(() => { + if (remove.state === "success") { + setKey(""); + remove.clear(); + } + }); + return ( + <> +

+ +

+ +

+ + ); + }); diff --git a/packages/site/src/pages/examples/sqlite.code.tsx b/packages/site/src/pages/examples/sqlite.code.tsx index fb8480f..206db8d 100644 --- a/packages/site/src/pages/examples/sqlite.code.tsx +++ b/packages/site/src/pages/examples/sqlite.code.tsx @@ -47,7 +47,7 @@ export const fetchUsers = $api export const prueba = $route .api({ fetchUsers }) .params(fetchUsers.params) - .path("/users2") + .path("/users") .create(({ api, params, setParams }) => { const [users] = createResource(() => ({ ...params }), api.fetchUsers); return (