开启 ppr 优化渲染性能
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
'use server'
|
||||
import './globals.css'
|
||||
import {ReactNode} from 'react'
|
||||
import {Metadata} from 'next'
|
||||
import './globals.css'
|
||||
import {Toaster} from '@/components/ui/sonner'
|
||||
import StoresProvider from '@/components/stores-provider'
|
||||
import Effects from '@/app/effects'
|
||||
import {ProfileStoreProvider} from '@/components/stores/profile'
|
||||
import {LayoutStoreProvider} from '@/components/stores/layout'
|
||||
import {ClientStoreProvider} from '@/components/stores/client'
|
||||
import {getProfile} from '@/actions/auth'
|
||||
|
||||
export async function generateMetadata(): Promise<Metadata> {
|
||||
return {
|
||||
@@ -12,19 +14,29 @@ export async function generateMetadata(): Promise<Metadata> {
|
||||
}
|
||||
}
|
||||
|
||||
export default async function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
export default async function RootLayout(props: Readonly<{
|
||||
children: ReactNode
|
||||
}>) {
|
||||
return (
|
||||
<html lang="zh-CN">
|
||||
<body>
|
||||
<StoresProvider>
|
||||
<Effects>{children}</Effects>
|
||||
</StoresProvider>
|
||||
<StoreProviders>
|
||||
<Effects>{props.children}</Effects>
|
||||
</StoreProviders>
|
||||
<Toaster position="top-center" richColors expand/>
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
|
||||
function StoreProviders(props: {children: ReactNode}) {
|
||||
return (
|
||||
<ProfileStoreProvider profile={getProfile().then(resp => resp.success ? resp.data : null)}>
|
||||
<LayoutStoreProvider>
|
||||
<ClientStoreProvider>
|
||||
{props.children}
|
||||
</ClientStoreProvider>
|
||||
</LayoutStoreProvider>
|
||||
</ProfileStoreProvider>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user