1
1
import '../styles/index.css'
2
2
3
- import { dehydrate } from '@tanstack/react-query'
4
3
import { Analytics } from '@vercel/analytics/react'
5
4
import { ToastContainer } from 'react-toastify'
6
- import { headers } from 'next/dist/client/components/headers'
7
5
8
6
import { ClerkProvider } from '@clerk/nextjs'
9
7
10
8
import { appConfig } from '~/app.config'
11
9
import { Root } from '~/components/layout/root/Root'
12
- import { REQUEST_GEO , REQUEST_PATHNAME } from '~/constants/system'
13
10
import { defineMetadata } from '~/lib/define-metadata'
14
11
import { sansFont , serifFont } from '~/lib/fonts'
12
+ import { AggregationProvider } from '~/providers/root/aggregation-data-provider'
13
+ import { queries } from '~/queries/definition'
15
14
import { getQueryClient } from '~/utils/query-client.server'
16
15
17
16
import { Providers } from '../providers/root'
18
- import { Hydrate } from './hydrate'
19
17
import { init } from './init'
20
18
21
19
init ( )
@@ -88,33 +86,36 @@ export default async function RootLayout(props: Props) {
88
86
89
87
const queryClient = getQueryClient ( )
90
88
91
- const dehydratedState = dehydrate ( queryClient , {
92
- shouldDehydrateQuery : ( query ) => {
93
- if ( query . state . error ) return false
94
- if ( ! query . meta ) return true
95
- const {
96
- shouldHydration,
97
- hydrationRoutePath,
98
- skipHydration,
99
- forceHydration,
100
- } = query . meta
101
-
102
- if ( forceHydration ) return true
103
- if ( hydrationRoutePath ) {
104
- const pathname = headers ( ) . get ( REQUEST_PATHNAME )
105
-
106
- if ( pathname === query . meta ?. hydrationRoutePath ) {
107
- if ( ! shouldHydration ) return true
108
- return ( shouldHydration as Function ) ( query . state . data as any )
109
- }
110
- }
111
-
112
- if ( skipHydration ) return false
113
-
114
- return ( shouldHydration as Function ) ?.( query . state . data as any ) ?? false
115
- } ,
89
+ // const dehydratedState = dehydrate(queryClient, {
90
+ // shouldDehydrateQuery: (query) => {
91
+ // if (query.state.error) return false
92
+ // if (!query.meta) return true
93
+ // const {
94
+ // shouldHydration,
95
+ // hydrationRoutePath,
96
+ // skipHydration,
97
+ // forceHydration,
98
+ // } = query.meta
99
+
100
+ // if (forceHydration) return true
101
+ // if (hydrationRoutePath) {
102
+ // const pathname = headers().get(REQUEST_PATHNAME)
103
+
104
+ // if (pathname === query.meta?.hydrationRoutePath) {
105
+ // if (!shouldHydration) return true
106
+ // return (shouldHydration as Function)(query.state.data as any)
107
+ // }
108
+ // }
109
+
110
+ // if (skipHydration) return false
111
+
112
+ // return (shouldHydration as Function)?.(query.state.data as any) ?? false
113
+ // },
114
+ // })
115
+
116
+ const data = await queryClient . fetchQuery ( {
117
+ ...queries . aggregation . root ( ) ,
116
118
} )
117
- const geo = headers ( ) . get ( REQUEST_GEO )
118
119
119
120
return (
120
121
// <ClerkProvider localization={ClerkZhCN}>
@@ -124,12 +125,12 @@ export default async function RootLayout(props: Props) {
124
125
className = { `${ sansFont . variable } ${ serifFont . variable } m-0 h-full p-0 font-sans` }
125
126
>
126
127
< Providers >
127
- < Hydrate state = { dehydratedState } >
128
- < Root > { children } </ Root >
129
- </ Hydrate >
128
+ < AggregationProvider aggregationData = { data } />
129
+ { /* <Hydrate state={dehydratedState}> */ }
130
+ < Root > { children } </ Root >
131
+ { /* </Hydrate> */ }
130
132
</ Providers >
131
133
< ToastContainer />
132
- { ! ! geo && < div > { geo } </ div > }
133
134
</ body >
134
135
</ html >
135
136
< Analytics />
0 commit comments