1- import { QueryClient , QueryClientProvider } from '@tanstack/solid-query'
2- import { SolidQueryDevtools } from '@tanstack/solid-query-devtools'
3- import { TanStackRouterDevtoolsPanel } from '@tanstack/solid-router-devtools'
1+ import { Match , Switch } from 'solid-js'
2+ // query imports
3+ import { useQuery } from '@tanstack/solid-query'
4+
5+ // router imports
46import {
57 Link ,
68 Outlet ,
@@ -9,15 +11,15 @@ import {
911 createRoute ,
1012 createRouter ,
1113} from '@tanstack/solid-router'
12- import { TanStackDevtools } from '@tanstack/solid-devtools'
1314
1415const rootRoute = createRootRoute ( {
1516 component : ( ) => (
1617 < >
1718 < div class = "p-2 flex gap-2" >
1819 < Link to = "/" class = "[&.active]:font-bold" >
1920 Home
20- </ Link > { ' ' }
21+ </ Link >
22+
2123 < Link to = "/about" class = "[&.active]:font-bold" >
2224 About
2325 </ Link >
@@ -28,57 +30,62 @@ const rootRoute = createRootRoute({
2830 ) ,
2931} )
3032
33+ /*
34+ / demo route
35+ */
3136const indexRoute = createRoute ( {
3237 getParentRoute : ( ) => rootRoute ,
3338 path : '/' ,
3439 component : function Index ( ) {
40+ /*
41+ / demo query resolves after three seconds and returns string
42+ */
43+ const exampleQuery = useQuery < string > ( ( ) => ( {
44+ queryKey : [ 'example-query' ] ,
45+ queryFn : ( ) => {
46+ return new Promise ( ( resolve ) => {
47+ setTimeout ( ( ) => {
48+ resolve ( 'fetched data' )
49+ } , 3000 )
50+ } )
51+ } ,
52+ } ) )
53+
3554 return (
3655 < div class = "p-2" >
3756 < h3 > Welcome Home!</ h3 >
57+ < Switch >
58+ < Match when = { exampleQuery . isLoading } >
59+ < p > Loading...</ p >
60+ </ Match >
61+
62+ < Match when = { exampleQuery . data } >
63+ < p > { exampleQuery . data } </ p >
64+ </ Match >
65+ </ Switch >
3866 </ div >
3967 )
4068 } ,
4169} )
42- function About ( ) {
43- return (
44- < div class = "p-2" >
45- < h3 > Hello from About!</ h3 >
46- </ div >
47- )
48- }
4970
71+ /*
72+ / demo route
73+ */
5074const aboutRoute = createRoute ( {
5175 getParentRoute : ( ) => rootRoute ,
5276 path : '/about' ,
53- component : About ,
77+ component : function About ( ) {
78+ return (
79+ < div class = "p-2" >
80+ < h3 > Hello from About!</ h3 >
81+ </ div >
82+ )
83+ } ,
5484} )
5585
5686const routeTree = rootRoute . addChildren ( [ indexRoute , aboutRoute ] )
87+ export const router = createRouter ( { routeTree } )
5788
58- const router = createRouter ( { routeTree } )
59-
60- const queryClient = new QueryClient ( )
61-
62- export default function DevtoolsExample ( ) {
63- return (
64- < >
65- < TanStackDevtools
66- plugins = { [
67- {
68- name : 'TanStack Query' ,
69- render : (
70- < QueryClientProvider client = { queryClient } >
71- < SolidQueryDevtools />
72- </ QueryClientProvider >
73- ) ,
74- } ,
75- {
76- name : 'TanStack Router' ,
77- render : < TanStackRouterDevtoolsPanel router = { router } /> ,
78- } ,
79- ] }
80- />
81- < RouterProvider router = { router } />
82- </ >
83- )
89+ export default function Router ( ) {
90+ return < RouterProvider router = { router } />
8491}
0 commit comments