aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile/lib/providers.tsx
blob: 4a7def1d6ebff7beb804624fd8da43d274c5ba98 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { useEffect } from "react";
import FullPageSpinner from "@/components/ui/FullPageSpinner";
import { Toaster } from "sonner-native";

import { TRPCSettingsProvider } from "@karakeep/shared-react/providers/trpc-provider";

import { ReaderSettingsProvider } from "./readerSettings";
import useAppSettings from "./settings";

export function Providers({ children }: { children: React.ReactNode }) {
  const { settings, isLoading, load } = useAppSettings();

  useEffect(() => {
    load();
  }, []);

  if (isLoading) {
    // Don't render anything if the settings still hasn't been loaded
    return <FullPageSpinner />;
  }

  return (
    <TRPCSettingsProvider settings={settings}>
      <ReaderSettingsProvider>
        {children}
        <Toaster />
      </ReaderSettingsProvider>
    </TRPCSettingsProvider>
  );
}