From 8d71ed1ee4473063ab228471a946cacc19a1b8f4 Mon Sep 17 00:00:00 2001 From: Alexandre Mouton-Brady Date: Tue, 11 Jan 2022 23:01:56 +0100 Subject: [PATCH] :sparkles: Add data fetching on the about page --- ts-router/src/pages/about.data.ts | 19 ++++++++++++++++--- ts-router/src/pages/about.tsx | 19 ++++++++++++------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/ts-router/src/pages/about.data.ts b/ts-router/src/pages/about.data.ts index 8b3fb23..bfa9f6d 100644 --- a/ts-router/src/pages/about.data.ts +++ b/ts-router/src/pages/about.data.ts @@ -1,9 +1,22 @@ import type { RouteDataFunc } from 'solid-app-router'; +import { createResource } from 'solid-js'; + +function wait(ms: number, data: T): Promise { + return new Promise((resolve) => setTimeout(resolve, ms, data)); +} + +function random(min: number, max: number): number { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +function fetchName(): Promise { + return wait(random(500, 1000), 'Solid'); +} const AboutData: RouteDataFunc = () => { - return { - name: 'about', - }; + const [data] = createResource(fetchName); + + return data; }; export default AboutData; diff --git a/ts-router/src/pages/about.tsx b/ts-router/src/pages/about.tsx index ebd8dac..ef8debc 100644 --- a/ts-router/src/pages/about.tsx +++ b/ts-router/src/pages/about.tsx @@ -1,8 +1,12 @@ -import { Suspense } from 'solid-js'; +import { Component, createEffect, Suspense } from 'solid-js'; import { useData } from 'solid-app-router'; export default function About() { - const data = useData(); + const name = useData<() => string>(); + + createEffect(() => { + console.log(name()); + }); return (
@@ -10,11 +14,12 @@ export default function About() {

A page all about this website.

- -
-          {JSON.stringify(data, null, 2)}
-        
-
+

+ We love + ...}> +  {name()} + +

); }