diff --git a/src/courseware/course/sequence/Sequence.jsx b/src/courseware/course/sequence/Sequence.jsx index 4b197330..56828b91 100644 --- a/src/courseware/course/sequence/Sequence.jsx +++ b/src/courseware/course/sequence/Sequence.jsx @@ -43,6 +43,7 @@ const Sequence = ({ originalUserIsStaff, } = useModel('courseHomeMeta', courseId); const sequence = useModel('sequences', sequenceId); + const section = useModel('sections', sequence ? sequence.sectionId : null); const unit = useModel('units', unitId); const sequenceStatus = useSelector(state => state.courseware.sequenceStatus); const sequenceMightBeUnit = useSelector(state => state.courseware.sequenceMightBeUnit); @@ -161,7 +162,12 @@ const Sequence = ({ const defaultContent = ( <>
- +
{!isEnabledOutlineSidebar && ( diff --git a/src/courseware/course/sidebar/sidebars/course-outline/hooks.jsx b/src/courseware/course/sidebar/sidebars/course-outline/hooks.jsx index 2dc079cd..47c6c89e 100644 --- a/src/courseware/course/sidebar/sidebars/course-outline/hooks.jsx +++ b/src/courseware/course/sidebar/sidebars/course-outline/hooks.jsx @@ -14,6 +14,7 @@ import { getCourseOutlineStatus, getSequenceId, getCourseOutline, + getSequenceStatus, } from '@src/courseware/data/selectors'; import { ID } from './constants'; @@ -24,6 +25,7 @@ export const useCourseOutlineSidebar = () => { const { enableNavigationSidebar: isEnabledSidebar } = useSelector(getCoursewareOutlineSidebarSettings); const courseOutlineShouldUpdate = useSelector(getCourseOutlineShouldUpdate); const courseOutlineStatus = useSelector(getCourseOutlineStatus); + const sequenceStatus = useSelector(getSequenceStatus); const activeSequenceId = useSelector(getSequenceId); const { sections = {}, sequences = {}, units = {} } = useSelector(getCourseOutline); @@ -113,5 +115,6 @@ export const useCourseOutlineSidebar = () => { sequences, units, handleUnitClick, + sequenceStatus, }; }; diff --git a/src/courseware/data/selectors.js b/src/courseware/data/selectors.js index b042826b..7f1c8224 100644 --- a/src/courseware/data/selectors.js +++ b/src/courseware/data/selectors.js @@ -16,6 +16,8 @@ export const getCourseOutline = state => state.courseware.courseOutline; export const getCourseOutlineStatus = state => state.courseware.courseOutlineStatus; +export const getSequenceStatus = state => state.courseware.sequenceStatus; + export const getCoursewareOutlineSidebarSettings = state => state.courseware.coursewareOutlineSidebarSettings; export const getCourseOutlineShouldUpdate = state => state.courseware.courseOutlineShouldUpdate; diff --git a/src/data/hooks.ts b/src/data/hooks.ts index f8ad29be..bd460274 100644 --- a/src/data/hooks.ts +++ b/src/data/hooks.ts @@ -2,4 +2,6 @@ import { useSelector } from 'react-redux'; import { RootState } from '../store'; // eslint-disable-next-line import/prefer-default-export -export const useContextId = () => useSelector(state => state.courseHome.courseId); +export const useContextId = () => useSelector( + state => state.courseware.courseId ?? state.courseHome.courseId, +); diff --git a/src/plugin-slots/CourseOutlineSidebarTriggerSlot/README.md b/src/plugin-slots/CourseOutlineSidebarTriggerSlot/README.md index 00558633..7771c0e3 100644 --- a/src/plugin-slots/CourseOutlineSidebarTriggerSlot/README.md +++ b/src/plugin-slots/CourseOutlineSidebarTriggerSlot/README.md @@ -1,6 +1,11 @@ # Course Outline Sidebar Trigger Slot ### Slot ID: `course_outline_sidebar_trigger_slot` +### Props: +* `sectionId` +* `sequenceId` +* `unitId` +* `isStaff` ## Description diff --git a/src/plugin-slots/CourseOutlineSidebarTriggerSlot/index.tsx b/src/plugin-slots/CourseOutlineSidebarTriggerSlot/index.tsx index 239c3ab7..1f15fc97 100644 --- a/src/plugin-slots/CourseOutlineSidebarTriggerSlot/index.tsx +++ b/src/plugin-slots/CourseOutlineSidebarTriggerSlot/index.tsx @@ -4,12 +4,27 @@ import { PluginSlot } from '@openedx/frontend-plugin-framework'; import CourseOutlineTrigger from '../../courseware/course/sidebar/sidebars/course-outline/CourseOutlineTrigger'; -export const CourseOutlineSidebarTriggerSlot : React.FC = () => ( +interface Props { + sectionId?: string; + sequenceId?: string; + unitId?: string; + isStaff?: boolean; +} + +export const CourseOutlineSidebarTriggerSlot : React.FC = ({ + sectionId, sequenceId, unitId, isStaff, +}) => (