Files
ColdBreeze-chat-web/src/index.tsx
T
2023-02-09 22:37:55 +08:00

54 lines
1.5 KiB
TypeScript

// just for debug performance problem
// import "./wdyr";
import { Suspense } from 'react';
import ReactDOM from "react-dom/client";
import toast, { Toaster } from "react-hot-toast";
import { DndProvider } from "react-dnd";
import { HTML5Backend } from "react-dnd-html5-backend";
import "./assets/index.css";
import "./common/DayjsSetting";
import "./common/TippySetting";
import { register } from "./serviceWorkerRegistration";
import MobileAppTip from "./common/component/MobileAppTip";
import ReduxRoutes from "./routes";
import NewVersion from "./common/component/NewVersion";
// import i18n (needs to be bundled ;))
import './i18n';
import { isDarkMode } from './common/utils';
const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement);
// dark mode
if (isDarkMode()) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
root.render(
<Suspense fallback="loading">
<Toaster toastOptions={{
className: "dark:!bg-gray-800 dark:!text-gray-50"
}} />
<DndProvider backend={HTML5Backend}>
<ReduxRoutes />
</DndProvider>
<MobileAppTip />
</Suspense>
);
register({
// onSuccess: () => {
// toast.success("Service Worker Installed");
// },
onUpdate: (reg) => {
const handleUpdate = () => {
reg.unregister().then(() => {
window.location.reload();
});
};
toast((t) => <NewVersion id={t.id} handleUpdate={handleUpdate} />, {
duration: Infinity,
position: "top-right"
});
}
});