use jotai for all states (#19)

This commit is contained in:
Doh
2025-01-04 11:20:36 -05:00
committed by GitHub
parent 306242f2ec
commit ad05a46206
18 changed files with 212 additions and 243 deletions

View File

@@ -5,7 +5,7 @@ import { Toaster } from '@/components/ui/toaster'
import { JotaiProvider } from '@/components/jotai-providers'
import { Suspense } from 'react'
import { JotaiHydrate } from '@/components/jotai-hydrate'
import { loadSettings } from './actions/data'
import { loadSettings, loadHabitsData, loadCoinsData, loadWishlistData } from './actions/data'
// Inter (clean, modern, excellent readability)
const inter = Inter({
subsets: ['latin'],
@@ -32,13 +32,26 @@ export default async function RootLayout({
}: {
children: React.ReactNode
}) {
const initialSettings = await loadSettings()
const [initialSettings, initialHabits, initialCoins, initialWishlist] = await Promise.all([
loadSettings(),
loadHabitsData(),
loadCoinsData(),
loadWishlistData()
])
return (
<html lang="en">
<body className={activeFont.className}>
<JotaiProvider>
<Suspense fallback="loading">
<JotaiHydrate initialSettings={initialSettings}>
<JotaiHydrate
initialValues={{
settings: initialSettings,
habits: initialHabits,
coins: initialCoins,
wishlist: initialWishlist
}}
>
{children}
</JotaiHydrate>
</Suspense>