// import { useUserTheme } from "@kyoo/models"; import { ThemeSelector } from "@kyoo/primitives"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ComponentType, ReactNode, useState } from "react"; const QueryProvider = ({ children }: { children: ReactNode }) => { // const [queryClient] = useState(() => createQueryClient()); const [queryClient] = useState(() => new QueryClient({})); return {children}; }; const ThemeProvider = ({ children }: { children: ReactNode }) => { // TODO: change "auto" and use the user's theme cookie const userTheme = "auto"; //useUserTheme("auto"); return ( {children} ); }; type ProviderComponent

= ComponentType<{ children: ReactNode } & P>; type Provider = ProviderComponent; const withProviders = ( providers: Provider[], ): ComponentType<{ children: ReactNode; }> => { const ProviderImpl = ({ children }: { children: ReactNode }) => { return providers.reduceRight( (acc, Prov) => {acc}, children, ); }; return ProviderImpl; }; export const Providers = withProviders([ QueryProvider, // AccountProvider, // HydratationBoundary, ThemeProvider, // PortalProvider, // SnackbarProvider // ConnectionErrorVerifier // DownloadProvider // NavigationThemeProvider // WithLayout ]);