import React from "react";
import ReactDOM from "react-dom/client";
import { BrowserRouter, HashRouter } from "react-router-dom";
import { ThemeProvider, CssBaseline } from "@mui/material";

import App from "./App";
import theme from "./theme/theme";
import { AuthProvider } from "./context/AuthContext";
import { OfflineProvider } from "./offline/context/OfflineContext";
import { StartupProvider } from "./startup/StartupContext";
import { DemoShopProvider } from "./platform/demo/DemoShopContext";
import SyncScopeBridge from "./offline/context/SyncScopeBridge";

const AppRouter = window.location.protocol === "file:" ? HashRouter : BrowserRouter;
ReactDOM.createRoot(document.getElementById("root")).render(
    <React.StrictMode>
        <AppRouter>
            <ThemeProvider theme={theme}>
                <CssBaseline />

                <OfflineProvider>
                    <AuthProvider>
                        <DemoShopProvider><SyncScopeBridge /><StartupProvider><App /></StartupProvider></DemoShopProvider>
                    </AuthProvider>
                </OfflineProvider>

            </ThemeProvider>
        </AppRouter>
    </React.StrictMode>
);
