UNPKG

bananas-commerce-admin

Version:

What's this, an admin for apes?

68 lines 2.8 kB
import React, { useMemo } from "react"; import CssBaseline from "@mui/material/CssBaseline"; import { styled, ThemeProvider } from "@mui/material/styles"; import useMediaQuery from "@mui/material/useMediaQuery"; import { MaterialDesignContent, SnackbarProvider } from "notistack"; import { ApiContextProvider } from "./contexts/ApiContext"; import { I18nContextProvider } from "./contexts/I18nContext"; import { UserContextProvider } from "./contexts/UserContext"; import { parentPath } from "./router/routes"; import Admin from "./Admin"; import { createMainTheme } from "./themes"; const StyledSnackbarContent = styled(MaterialDesignContent)(({ theme }) => theme.unstable_sx({ "&.notistack-MuiContent-default": { bgcolor: "primary.main", }, "&.notistack-MuiContent-error": { bgcolor: "error.main", }, "&.notistack-MuiContent-warning": { bgcolor: "warning.main", }, "&.notistack-MuiContent-info": { bgcolor: "info.main", }, "&.notistack-MuiContent-success": { bgcolor: "success.main", }, })); export const App = ({ theme: userTheme, api, contrib, ...rest }) => { const potentialSchema = typeof api === "object" && "schema" in api ? api.schema : api; let schemaPath; if (typeof potentialSchema === "string" || potentialSchema instanceof URL) { try { schemaPath = new URL(potentialSchema).pathname; } catch { // NOTE: This should always be true, but what do I know? if (typeof potentialSchema === "string") { schemaPath = potentialSchema; } } } if (schemaPath != null) { rest.basepath ??= parentPath(schemaPath); } const themeMode = useMediaQuery("(prefers-color-scheme: dark)") ? "dark" : "light"; const theme = useMemo(() => { return createMainTheme(themeMode, userTheme); }, [themeMode]); return (React.createElement(ThemeProvider, { theme: theme }, React.createElement(CssBaseline, null), React.createElement(SnackbarProvider, { anchorOrigin: { vertical: "bottom", horizontal: "right", }, Components: { default: StyledSnackbarContent, error: StyledSnackbarContent, warning: StyledSnackbarContent, info: StyledSnackbarContent, success: StyledSnackbarContent, }, maxSnack: 4 }, React.createElement(ApiContextProvider, { api: api, contrib: contrib }, React.createElement(I18nContextProvider, null, React.createElement(UserContextProvider, null, React.createElement(Admin, { ...rest }))))))); }; export default App; //# sourceMappingURL=App.js.map