import React from 'react'; import { Helmet } from 'react-helmet'; import { useIntl } from '@edx/frontend-platform/i18n'; import { logError } from '@edx/frontend-platform/logging'; import { initializeHotjar } from '@edx/frontend-enterprise-hotjar'; import { ErrorPage, AppContext } from '@edx/frontend-platform/react'; import FooterSlot from '@openedx/frontend-slot-footer'; import { Alert } from '@openedx/paragon'; import { RequestKeys } from 'data/constants/requests'; import store from 'data/store'; import { selectors, actions, } from 'data/redux'; import { reduxHooks } from 'hooks'; import Dashboard from 'containers/Dashboard'; import track from 'tracking'; import fakeData from 'data/services/lms/fakeData/courses'; import AppWrapper from 'containers/WidgetContainers/AppWrapper'; import LearnerDashboardHeader from 'containers/LearnerDashboardHeader'; import { getConfig } from '@edx/frontend-platform'; import messages from './messages'; import './App.scss'; export const App = () => { const { authenticatedUser } = React.useContext(AppContext); const { formatMessage } = useIntl(); const isFailed = { initialize: reduxHooks.useRequestIsFailed(RequestKeys.initialize), refreshList: reduxHooks.useRequestIsFailed(RequestKeys.refreshList), }; const hasNetworkFailure = isFailed.initialize || isFailed.refreshList; const { supportEmail } = reduxHooks.usePlatformSettingsData(); const loadData = reduxHooks.useLoadData(); React.useEffect(() => { if (authenticatedUser?.administrator || getConfig().NODE_ENV === 'development') { window.loadEmptyData = () => { loadData({ ...fakeData.globalData, courses: [] }); }; window.loadMockData = () => { loadData({ ...fakeData.globalData, courses: [ ...fakeData.courseRunData, ...fakeData.entitlementData, ], }); }; window.store = store; window.selectors = selectors; window.actions = actions; window.track = track; } if (getConfig().HOTJAR_APP_ID) { try { initializeHotjar({ hotjarId: getConfig().HOTJAR_APP_ID, hotjarVersion: getConfig().HOTJAR_VERSION, hotjarDebug: !!getConfig().HOTJAR_DEBUG, }); } catch (error) { logError(error); } } }, [authenticatedUser, loadData]); return ( <> {formatMessage(messages.pageTitle)}
{hasNetworkFailure ? ( ) : ( )}
); }; export default App;