From 2230173da858f85c6c79a1a9b616923ac52325e4 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Fri, 8 Oct 2021 09:33:15 -0400 Subject: [PATCH] feat: rollout jump nav to course staff (#672) As per https://openedx.atlassian.net/browse/TNL-7107 we need to rollout jumpnav to course staff. --- src/courseware/course/Course.jsx | 1 + src/courseware/course/CourseBreadcrumbs.jsx | 12 ++++++++---- src/courseware/course/CourseBreadcrumbs.test.jsx | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/courseware/course/Course.jsx b/src/courseware/course/Course.jsx index 7458fe7a..a33e8291 100644 --- a/src/courseware/course/Course.jsx +++ b/src/courseware/course/Course.jsx @@ -90,6 +90,7 @@ function Course({ courseId={courseId} sectionId={section ? section.id : null} sequenceId={sequenceId} + isStaff={course ? course.isStaff : null} unitId={unitId} //* * [MM-P2P] Experiment */ mmp2p={MMP2P} diff --git a/src/courseware/course/CourseBreadcrumbs.jsx b/src/courseware/course/CourseBreadcrumbs.jsx index 41d4d2f7..d0148ef1 100644 --- a/src/courseware/course/CourseBreadcrumbs.jsx +++ b/src/courseware/course/CourseBreadcrumbs.jsx @@ -6,17 +6,15 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faHome } from '@fortawesome/free-solid-svg-icons'; import { useSelector } from 'react-redux'; import { SelectMenu } from '@edx/paragon'; -import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; import { useModel, useModels } from '../../generic/model-store'; /** [MM-P2P] Experiment */ import { MMP2PFlyoverTrigger } from '../../experiments/mm-p2p'; import JumpNavMenuItem from './JumpNavMenuItem'; function CourseBreadcrumb({ - content, withSeparator, courseId, unitId, + content, withSeparator, courseId, unitId, isStaff, }) { const defaultContent = content.filter(destination => destination.default)[0] || { id: courseId, label: '' }; - const { administrator } = getAuthenticatedUser(); return ( <> @@ -30,7 +28,7 @@ function CourseBreadcrumb({ whiteSpace: 'nowrap', }} > - { getConfig().ENABLE_JUMPNAV !== 'true' || content.length < 2 || !administrator + { getConfig().ENABLE_JUMPNAV !== 'true' || content.length < 2 || !isStaff ? ( {defaultContent.label} @@ -65,12 +63,14 @@ CourseBreadcrumb.propTypes = { unitId: PropTypes.string, withSeparator: PropTypes.bool, courseId: PropTypes.string, + isStaff: PropTypes.bool, }; CourseBreadcrumb.defaultProps = { withSeparator: false, unitId: null, courseId: null, + isStaff: null, }; export default function CourseBreadcrumbs({ @@ -78,6 +78,7 @@ export default function CourseBreadcrumbs({ sectionId, sequenceId, unitId, + isStaff, /** [MM-P2P] Experiment */ mmp2p, }) { @@ -140,6 +141,7 @@ export default function CourseBreadcrumbs({ content={content} unitId={unitId} withSeparator + isStaff={isStaff} /> ))} {/** [MM-P2P] Experiment */} @@ -156,6 +158,7 @@ CourseBreadcrumbs.propTypes = { sectionId: PropTypes.string, sequenceId: PropTypes.string, unitId: PropTypes.string, + isStaff: PropTypes.bool, /** [MM-P2P] Experiment */ mmp2p: PropTypes.shape({ state: PropTypes.shape({ @@ -168,6 +171,7 @@ CourseBreadcrumbs.defaultProps = { sectionId: null, sequenceId: null, unitId: null, + isStaff: null, /** [MM-P2P] Experiment */ mmp2p: {}, }; diff --git a/src/courseware/course/CourseBreadcrumbs.test.jsx b/src/courseware/course/CourseBreadcrumbs.test.jsx index a51e8e29..ae5111b8 100644 --- a/src/courseware/course/CourseBreadcrumbs.test.jsx +++ b/src/courseware/course/CourseBreadcrumbs.test.jsx @@ -109,6 +109,7 @@ describe('CourseBreadcrumbs', () => { courseId="course-v1:edX+DemoX+Demo_Course" sectionId="block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations" sequenceId="block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions" + isStaff />, ); it('renders course breadcrumbs as expected', async () => {