Files
agw/src/client/shared/db/provider.tsx
Felix Förtsch 053707d96a normalize project structure: src/client + src/server + src/shared
- restructure from src/ + server/ to src/client/ + src/server/ + src/shared/
- switch backend runtime from Node (tsx) to Bun
- merge server/package.json into root, remove @hono/node-server + tsx
- convert server @/ imports to relative paths
- standardize biome config (lineWidth 80, quoteStyle double)
- add CLAUDE.md, .env.example at root
- update vite.config, tsconfig, deploy.sh for new structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:55:52 +01:00

23 lines
656 B
TypeScript

import type { PGlite } from "@electric-sql/pglite"
import { type ReactNode, createContext, use } from "react"
import { getDb } from "./client"
import { migrateFromLocalStorage } from "./migrate-from-localstorage"
const dbPromise = getDb().then(async (db) => {
await migrateFromLocalStorage(db)
return db
})
const DbContext = createContext<PGlite | null>(null)
export function DbProvider({ children }: { children: ReactNode }) {
const db = use(dbPromise)
return <DbContext value={db}>{children}</DbContext>
}
export function useDb(): PGlite {
const db = use(DbContext)
if (!db) throw new Error("useDb must be used within DbProvider")
return db
}