Files
frontend-app-learner-dashboard/src/index.jsx
2025-04-04 10:24:46 -04:00

70 lines
1.5 KiB
JavaScript
Executable File

/* eslint-disable import/prefer-default-export */
import 'core-js/stable';
import 'regenerator-runtime/runtime';
import React, { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import {
Route, Navigate, Routes,
} from 'react-router-dom';
import {
AppProvider,
ErrorPage,
PageWrap,
} from '@edx/frontend-platform/react';
import store from 'data/store';
import {
APP_READY,
APP_INIT_ERROR,
initialize,
subscribe,
mergeConfig,
} from '@edx/frontend-platform';
import { configuration } from './config';
import messages from './i18n';
import App from './App';
import NoticesWrapper from './components/NoticesWrapper';
subscribe(APP_READY, () => {
const root = createRoot(document.getElementById('root'));
root.render(
<StrictMode>
<AppProvider store={store}>
<NoticesWrapper>
<Routes>
<Route path="/" element={<PageWrap><App /></PageWrap>} />
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
</NoticesWrapper>
</AppProvider>
</StrictMode>,
);
});
subscribe(APP_INIT_ERROR, (error) => {
const root = createRoot(document.getElementById('root'));
root.render(
<StrictMode>
<ErrorPage message={error.message} />
</StrictMode>,
);
});
export const appName = 'LearnerHomeAppConfig';
initialize({
handlers: {
config: () => {
mergeConfig(configuration, appName);
},
},
messages,
requireAuthenticatedUser: true,
});