import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { init } from './providers/FirebaseProvider';
import { createRoot } from 'react-dom/client';
import { useTranslation } from 'react-i18next';
import { ApiApolloProvider } from './providers/ApiApolloProvider';
import { StrictMode, useEffect } from 'react';
import { store } from './store';
import { Provider } from 'react-redux';

init();

const RootComponent = () => {
  const {
    i18n: { language },
  } = useTranslation();

  useEffect(() => {
    document.documentElement.lang = language;
  }, [language]);

  return (
    <Provider store={store}>
      <ApiApolloProvider>
        <App />
      </ApiApolloProvider>
    </Provider>
  );
};

const rootElement = document.getElementById('root');
if (!rootElement) {
  throw new Error('Failed to find the root element');
}

const root = createRoot(rootElement);
root.render(
  <StrictMode>
    <RootComponent />
  </StrictMode>,
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
