aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/lib
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-19 12:41:06 +0000
committerMohamedBassem <me@mbassem.com>2024-03-19 12:44:12 +0000
commit64fb87d0ceb591a49aacad39bf5e885cab7decfa (patch)
treeda60a56a0f6546d20d753519e525e9259f789e9c /apps/web/lib
parentf94432b94512cef90cca6d0d5396b4547ccbe68b (diff)
downloadkarakeep-64fb87d0ceb591a49aacad39bf5e885cab7decfa.tar.zst
feature(web): Add support for demo mode
Diffstat (limited to 'apps/web/lib')
-rw-r--r--apps/web/lib/clientConfig.tsx11
-rw-r--r--apps/web/lib/providers.tsx21
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>
);
}