diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-19 12:41:06 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-19 12:44:12 +0000 |
| commit | 64fb87d0ceb591a49aacad39bf5e885cab7decfa (patch) | |
| tree | da60a56a0f6546d20d753519e525e9259f789e9c /apps/web/lib | |
| parent | f94432b94512cef90cca6d0d5396b4547ccbe68b (diff) | |
| download | karakeep-64fb87d0ceb591a49aacad39bf5e885cab7decfa.tar.zst | |
feature(web): Add support for demo mode
Diffstat (limited to 'apps/web/lib')
| -rw-r--r-- | apps/web/lib/clientConfig.tsx | 11 | ||||
| -rw-r--r-- | apps/web/lib/providers.tsx | 21 |
2 files changed, 25 insertions, 7 deletions
diff --git a/apps/web/lib/clientConfig.tsx b/apps/web/lib/clientConfig.tsx new file mode 100644 index 00000000..fac76d3b --- /dev/null +++ b/apps/web/lib/clientConfig.tsx @@ -0,0 +1,11 @@ +import { createContext, useContext } from "react"; + +import type { ClientConfig } from "@hoarder/shared/config"; + +export const ClientConfigCtx = createContext<ClientConfig>({ + demoMode: false, +}); + +export function useClientConfig() { + return useContext(ClientConfigCtx); +} diff --git a/apps/web/lib/providers.tsx b/apps/web/lib/providers.tsx index db51c361..ce667f8d 100644 --- a/apps/web/lib/providers.tsx +++ b/apps/web/lib/providers.tsx @@ -7,6 +7,9 @@ import { httpBatchLink, loggerLink } from "@trpc/client"; import { SessionProvider } from "next-auth/react"; import superjson from "superjson"; +import type { ClientConfig } from "@hoarder/shared/config"; + +import { ClientConfigCtx } from "./clientConfig"; import { api } from "./trpc"; function makeQueryClient() { @@ -40,9 +43,11 @@ function getQueryClient() { export default function Providers({ children, session, + clientConfig, }: { children: React.ReactNode; session: Session | null; + clientConfig: ClientConfig; }) { const queryClient = getQueryClient(); @@ -64,12 +69,14 @@ export default function Providers({ ); return ( - <SessionProvider session={session}> - <api.Provider client={trpcClient} queryClient={queryClient}> - <QueryClientProvider client={queryClient}> - {children} - </QueryClientProvider> - </api.Provider> - </SessionProvider> + <ClientConfigCtx.Provider value={clientConfig}> + <SessionProvider session={session}> + <api.Provider client={trpcClient} queryClient={queryClient}> + <QueryClientProvider client={queryClient}> + {children} + </QueryClientProvider> + </api.Provider> + </SessionProvider> + </ClientConfigCtx.Provider> ); } |
