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 Footer from '@edx/frontend-component-footer'; import { Alert } from '@edx/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 ZendeskFab from 'components/ZendeskFab'; import { ExperimentProvider } from 'ExperimentContext'; import track from 'tracking'; import fakeData from 'data/services/lms/fakeData/courses'; import AppWrapper from 'containers/WidgetContainers/AppWrapper'; import LearnerDashboardHeader from 'containers/LearnerDashboardHeader'; 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 || process.env.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 (process.env.HOTJAR_APP_ID) { try { initializeHotjar({ hotjarId: process.env.HOTJAR_APP_ID, hotjarVersion: process.env.HOTJAR_VERSION, hotjarDebug: !!process.env.HOTJAR_DEBUG, }); } catch (error) { logError(error); } } }, [authenticatedUser, loadData]); return ( <> {formatMessage(messages.pageTitle)}
{hasNetworkFailure ? ( ) : ( )}
); }; export default App;