import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import '@fontsource/inter/cyrillic-400.css';
import '@fontsource/inter/cyrillic-600.css';
import '@fontsource/inter/cyrillic-700.css';
import '@fontsource/inter/latin-400.css';
import '@fontsource/inter/latin-600.css';
import '@fontsource/inter/latin-700.css';
import '@fontsource/jetbrains-mono/cyrillic-400.css';
import '@fontsource/jetbrains-mono/latin-400.css';
import './ui/theme/theme.css';
import { App } from './app/App';
import { flushSaves, init } from './app/store';
import { registerPwa } from './pwa/register';

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <App />
  </StrictMode>,
);

void init();
registerPwa();

// При сворачивании приложения сохраняем всё сразу.
document.addEventListener('visibilitychange', () => {
  if (document.visibilityState === 'hidden') void flushSaves();
});
window.addEventListener('pagehide', () => void flushSaves());
