diff --git a/gameyfin/src/main/frontend/App.tsx b/gameyfin/src/main/frontend/App.tsx index 3eae1d2..6df9096 100644 --- a/gameyfin/src/main/frontend/App.tsx +++ b/gameyfin/src/main/frontend/App.tsx @@ -4,7 +4,7 @@ import "Frontend/util/custom-validators"; import {HeroUIProvider} from "@heroui/react"; import {ThemeProvider as NextThemesProvider} from "next-themes"; import {themeNames} from "Frontend/theming/themes"; -import {AuthProvider} from "Frontend/util/auth"; +import {AuthProvider, useAuth} from "Frontend/util/auth"; import {IconContext, X} from "@phosphor-icons/react"; import client from "Frontend/generated/connect-client.default"; import {ErrorHandlingMiddleware} from "Frontend/util/middleware"; @@ -12,37 +12,51 @@ import {initializeLibraryState} from "Frontend/state/LibraryState"; import {initializeGameState} from "Frontend/state/GameState"; import {initializeScanState} from "Frontend/state/ScanState"; import {ToastProvider} from "@heroui/toast"; +import {initializePluginState} from "Frontend/state/PluginState"; +import {isAdmin} from "Frontend/util/utils"; export default function App() { client.middlewares = [ErrorHandlingMiddleware]; - initializeLibraryState(); - initializeGameState(); - initializeScanState(); - return ( - - - , - classNames: { - closeButton: "opacity-100 absolute right-4 top-1/2 -translate-y-1/2", - progressTrack: "h-1", - } - }} - toastOffset={64} - /> - + ); } + +function ViewWithAuth() { + const auth = useAuth(); + + initializeLibraryState(); + initializeGameState(); + + if (isAdmin(auth)) { + initializeScanState(); + initializePluginState(); + } + + return <> + + + , + classNames: { + closeButton: "opacity-100 absolute right-4 top-1/2 -translate-y-1/2", + progressTrack: "h-1", + } + }} + toastOffset={64} + /> + + ; +} \ No newline at end of file