Files
cinny/src/index.tsx
T

54 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-06-12 21:15:23 +10:00
/* eslint-disable import/first */
2021-07-28 18:45:52 +05:30
import React from 'react';
2024-01-21 23:50:56 +11:00
import { createRoot } from 'react-dom/client';
2023-06-12 21:15:23 +10:00
import { enableMapSet } from 'immer';
import '@fontsource/inter/variable.css';
import 'folds/dist/style.css';
import { configClass, varsClass } from 'folds';
enableMapSet();
2021-07-28 18:45:52 +05:30
import './index.scss';
import settings from './client/state/settings';
2024-09-07 21:45:55 +08:00
import { trimTrailingSlash } from './app/utils/common';
2021-07-28 18:45:52 +05:30
import App from './app/pages/App';
// import i18n (needs to be bundled ;))
import './app/i18n';
2023-06-12 21:15:23 +10:00
document.body.classList.add(configClass, varsClass);
2022-07-09 18:08:35 +05:30
settings.applyTheme();
2021-07-28 18:45:52 +05:30
2024-09-07 21:45:55 +08:00
// Register Service Worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register(
import.meta.env.MODE === 'production' ? `${trimTrailingSlash(import.meta.env.BASE_URL)}/sw.js` : '/dev-sw.js?dev-sw'
)
navigator.serviceWorker.addEventListener('message', (event) => {
if (event.data?.type === 'token' && event.data?.responseKey) {
// Get the token for SW.
const token = localStorage.getItem('cinny_access_token');
event.source!.postMessage({
responseKey: event.data.responseKey,
token,
})
}
})
}
2024-01-21 23:50:56 +11:00
const mountApp = () => {
const rootContainer = document.getElementById('root');
if (rootContainer === null) {
console.error('Root container element not found!');
return;
}
const root = createRoot(rootContainer);
root.render(<App />);
};
mountApp();