mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-11-29 17:55:08 -05:00
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { HydrationBoundary, QueryClientProvider } from "@tanstack/react-query";
|
|
import { getServerData } from "one";
|
|
import { type ReactNode, useState } from "react";
|
|
// import { useUserTheme } from "@kyoo/models";
|
|
import { ThemeSelector } from "~/primitives/theme";
|
|
import { createQueryClient } from "~/query";
|
|
import { AccountProvider } from "./account-provider";
|
|
import { ErrorConsumer } from "./error-consumer";
|
|
import { ErrorProvider } from "./error-provider";
|
|
import { TranslationsProvider } from "./translations.native";
|
|
|
|
const QueryProvider = ({ children }: { children: ReactNode }) => {
|
|
const [queryClient] = useState(() => createQueryClient());
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<HydrationBoundary state={getServerData("queryState")}>{children}</HydrationBoundary>
|
|
</QueryClientProvider>
|
|
);
|
|
};
|
|
|
|
const ThemeProvider = ({ children }: { children: ReactNode }) => {
|
|
// TODO: change "auto" and use the user's theme cookie
|
|
const userTheme = "auto"; //useUserTheme("auto");
|
|
|
|
return (
|
|
<ThemeSelector theme={userTheme} font={{ normal: "inherit" }}>
|
|
{children}
|
|
</ThemeSelector>
|
|
);
|
|
};
|
|
|
|
export const Providers = ({ children }: { children: ReactNode }) => {
|
|
return (
|
|
<QueryProvider>
|
|
<ThemeProvider>
|
|
<ErrorProvider>
|
|
<AccountProvider>
|
|
<TranslationsProvider>
|
|
<ErrorConsumer scope="root">{children}</ErrorConsumer>
|
|
</TranslationsProvider>
|
|
</AccountProvider>
|
|
</ErrorProvider>
|
|
</ThemeProvider>
|
|
</QueryProvider>
|
|
);
|
|
};
|