import React from 'react'; import PropTypes from 'prop-types'; import { useIntl, injectIntl } from '@edx/frontend-platform/i18n'; import { Button, Container, Layout, } from '@edx/paragon'; import { Add as IconAdd } from '@edx/paragon/icons'; import InternetConnectionAlert from '../generic/internet-connection-alert'; import { useModel } from '../generic/model-store'; import SubHeader from '../generic/sub-header/SubHeader'; import { USER_ROLES } from '../constants'; import messages from './messages'; import CourseTeamSideBar from './course-team-sidebar/CourseTeamSidebar'; import AddUserForm from './add-user-form/AddUserForm'; import AddTeamMember from './add-team-member/AddTeamMember'; import CourseTeamMember from './course-team-member/CourseTeamMember'; import InfoModal from './info-modal/InfoModal'; import { useCourseTeam } from './hooks'; import getPageHeadTitle from '../generic/utils'; const CourseTeam = ({ courseId }) => { const intl = useIntl(); const courseDetails = useModel('courseDetails', courseId); document.title = getPageHeadTitle(courseDetails?.name, intl.formatMessage(messages.headingTitle)); const { modalType, errorMessage, courseName, currentEmail, courseTeamUsers, currentUserEmail, isLoading, isSingleAdmin, isFormVisible, isQueryPending, isAllowActions, isInfoModalOpen, isOwnershipHint, isShowAddTeamMember, isShowInitialSidebar, isShowUserFilledSidebar, isInternetConnectionAlertFailed, openForm, hideForm, closeInfoModal, handleAddUserSubmit, handleOpenDeleteModal, handleDeleteUserSubmit, handleChangeRoleUserSubmit, handleInternetConnectionFailed, } = useCourseTeam({ intl, courseId }); if (isLoading) { // eslint-disable-next-line react/jsx-no-useless-fragment return <>; } return ( <>
{intl.formatMessage(messages.addNewMemberButton)} )} />
{isFormVisible && ( )} {courseTeamUsers.length ? courseTeamUsers.map(({ username, role, email }) => ( )) : null} {isShowAddTeamMember && ( )}
{isShowInitialSidebar && (
)}
{isShowUserFilledSidebar && ( )}
); }; CourseTeam.propTypes = { courseId: PropTypes.string.isRequired, }; export default injectIntl(CourseTeam);