From 2ea9933b82287765bfa40212a1b3cb48e40e65ae Mon Sep 17 00:00:00 2001 From: sehyunc <41171808+sehyunc@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:03:01 -0800 Subject: [PATCH 1/4] meta: create server store for state needed at ssr-time --- app/layout.tsx | 83 ++++++++++--------- app/zustand/page-client.tsx | 31 +++++++ app/zustand/page.tsx | 5 ++ lib/constants/storage.ts | 2 + package.json | 4 +- pnpm-lock.yaml | 27 ++++++ providers/state-provider/cookie-actions.ts | 22 +++++ providers/state-provider/cookie-storage.ts | 46 ++++++++++ .../deferred-state-provider.tsx | 0 .../state-provider/server-store-provider.tsx | 53 ++++++++++++ providers/state-provider/server-store.ts | 65 +++++++++++++++ providers/state-provider/state-provider.tsx | 0 12 files changed, 296 insertions(+), 42 deletions(-) create mode 100644 app/zustand/page-client.tsx create mode 100644 app/zustand/page.tsx create mode 100644 providers/state-provider/cookie-actions.ts create mode 100644 providers/state-provider/cookie-storage.ts create mode 100644 providers/state-provider/deferred-state-provider.tsx create mode 100644 providers/state-provider/server-store-provider.tsx create mode 100644 providers/state-provider/server-store.ts create mode 100644 providers/state-provider/state-provider.tsx diff --git a/app/layout.tsx b/app/layout.tsx index a4356a98..021ce179 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -30,6 +30,7 @@ import { isTestnet } from "@/lib/viem" import { RenegadeProvider } from "@/providers/renegade-provider/renegade-provider" import { SideProvider } from "@/providers/side-provider" import { SolanaProvider } from "@/providers/solana-provider" +import { ServerStoreProvider } from "@/providers/state-provider/server-store-provider" import { ThemeProvider } from "@/providers/theme-provider" import { WagmiProvider } from "@/providers/wagmi-provider/wagmi-provider" @@ -111,46 +112,48 @@ export default async function RootLayout({ attribute="class" defaultTheme="dark" > - - - - - - - - - - -
- {children} -