import PropTypes from 'prop-types'; import { useSelector } from 'react-redux'; import { useParams } from 'react-router-dom'; import { Container, Layout, Stack } from '@openedx/paragon'; import { useIntl, injectIntl } from '@edx/frontend-platform/i18n'; import { ErrorAlert } from '@edx/frontend-lib-content-components'; import { getProcessingNotification } from '../generic/processing-notification/data/selectors'; import SubHeader from '../generic/sub-header/SubHeader'; import { RequestStatus } from '../data/constants'; import getPageHeadTitle from '../generic/utils'; import ProcessingNotification from '../generic/processing-notification'; import InternetConnectionAlert from '../generic/internet-connection-alert'; import Loading from '../generic/Loading'; import AddComponent from './add-component/AddComponent'; import CourseXBlock from './course-xblock/CourseXBlock'; import HeaderTitle from './header-title/HeaderTitle'; import Breadcrumbs from './breadcrumbs/Breadcrumbs'; import HeaderNavigations from './header-navigations/HeaderNavigations'; import Sequence from './course-sequence'; import Sidebar from './sidebar'; import { useCourseUnit } from './hooks'; import messages from './messages'; const CourseUnit = ({ courseId }) => { const { blockId } = useParams(); const intl = useIntl(); const { isLoading, sequenceId, unitTitle, isQueryPending, savingStatus, isTitleEditFormOpen, isErrorAlert, isInternetConnectionAlertFailed, unitXBlockActions, handleTitleEditSubmit, headerNavigationsActions, handleTitleEdit, handleInternetConnectionFailed, handleCreateNewCourseXBlock, courseVerticalChildren, } = useCourseUnit({ courseId, blockId }); document.title = getPageHeadTitle('', unitTitle); const { isShow: isShowProcessingNotification, title: processingNotificationTitle, } = useSelector(getProcessingNotification); if (isLoading) { return ; } return ( <>
{intl.formatMessage(messages.alertFailedGeneric, { actionName: 'save', type: 'changes' })} )} breadcrumbs={( )} headerActions={( )} /> {courseVerticalChildren.children.map(({ name, blockId: id, shouldScroll }) => ( ))}
{isQueryPending && ( )}
); }; CourseUnit.propTypes = { courseId: PropTypes.string.isRequired, }; export default injectIntl(CourseUnit);