Skip to content

Commit c18958a

Browse files
committed
feat: remove waffle flags for managing course outline sidebar
1 parent b6c29df commit c18958a

File tree

22 files changed

+28
-146
lines changed

22 files changed

+28
-146
lines changed

src/course-home/data/__snapshots__/redux.test.js.snap

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ exports[`Data layer integration tests Test fetchDatesTab Should fetch, normalize
1818
"courseOutlineShouldUpdate": false,
1919
"courseOutlineStatus": "loading",
2020
"courseStatus": "loading",
21-
"coursewareOutlineSidebarSettings": {},
2221
"sequenceId": null,
2322
"sequenceMightBeUnit": false,
2423
"sequenceStatus": "loading",
@@ -410,7 +409,6 @@ exports[`Data layer integration tests Test fetchOutlineTab Should fetch, normali
410409
"courseOutlineShouldUpdate": false,
411410
"courseOutlineStatus": "loading",
412411
"courseStatus": "loading",
413-
"coursewareOutlineSidebarSettings": {},
414412
"sequenceId": null,
415413
"sequenceMightBeUnit": false,
416414
"sequenceStatus": "loading",
@@ -682,7 +680,6 @@ exports[`Data layer integration tests Test fetchProgressTab Should fetch, normal
682680
"courseOutlineShouldUpdate": false,
683681
"courseOutlineStatus": "loading",
684682
"courseStatus": "loading",
685-
"coursewareOutlineSidebarSettings": {},
686683
"sequenceId": null,
687684
"sequenceMightBeUnit": false,
688685
"sequenceStatus": "loading",

src/courseware/course/Course.jsx

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { useEffect, useState } from 'react';
22
import PropTypes from 'prop-types';
33
import { Helmet } from 'react-helmet';
4-
import { useDispatch, useSelector } from 'react-redux';
4+
import { useDispatch } from 'react-redux';
55
import { getConfig } from '@edx/frontend-platform';
66
import { useLocation, useNavigate } from 'react-router-dom';
77
import { breakpoints, useWindowSize } from '@openedx/paragon';
88

99
import { AlertList } from '@src/generic/user-messages';
1010
import { useModel } from '@src/generic/model-store';
11-
import { getCoursewareOutlineSidebarSettings } from '../data/selectors';
1211
import Chat from './chat/Chat';
1312
import SidebarProvider from './sidebar/SidebarContextProvider';
1413
import NewSidebarProvider from './new-sidebar/SidebarContextProvider';
@@ -37,8 +36,6 @@ const Course = ({
3736
} = useModel('courseHomeMeta', courseId);
3837
const sequence = useModel('sequences', sequenceId);
3938
const section = useModel('sections', sequence ? sequence.sectionId : null);
40-
const { enableNavigationSidebar } = useSelector(getCoursewareOutlineSidebarSettings);
41-
const navigationDisabled = enableNavigationSidebar || (sequence?.navigationDisabled ?? false);
4239
const navigate = useNavigate();
4340
const { pathname } = useLocation();
4441

@@ -84,17 +81,13 @@ const Course = ({
8481
<title>{`${pageTitleBreadCrumbs.join(' | ')} | ${getConfig().SITE_NAME}`}</title>
8582
</Helmet>
8683
<div className="position-relative d-flex align-items-xl-center mb-4 mt-1 flex-column flex-xl-row">
87-
{navigationDisabled || (
88-
<>
89-
<CourseBreadcrumbsSlot
90-
courseId={courseId}
91-
sectionId={section ? section.id : null}
92-
sequenceId={sequenceId}
93-
isStaff={isStaff}
94-
unitId={unitId}
95-
/>
96-
</>
97-
)}
84+
<CourseBreadcrumbsSlot
85+
courseId={courseId}
86+
sectionId={section ? section.id : null}
87+
sequenceId={sequenceId}
88+
isStaff={isStaff}
89+
unitId={unitId}
90+
/>
9891
{shouldDisplayChat && (
9992
<>
10093
<Chat

src/courseware/course/sequence/Sequence.jsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
sendTrackEvent,
77
sendTrackingLogEvent,
88
} from '@edx/frontend-platform/analytics';
9+
import { getConfig } from '@edx/frontend-platform';
910
import { useIntl } from '@edx/frontend-platform/i18n';
1011
import { useSelector } from 'react-redux';
1112
import SequenceExamWrapper from '@edx/frontend-lib-special-exams';
@@ -15,7 +16,6 @@ import { useModel } from '@src/generic/model-store';
1516
import { useSequenceBannerTextAlert, useSequenceEntranceExamAlert } from '@src/alerts/sequence-alerts/hooks';
1617
import SequenceContainerSlot from '../../../plugin-slots/SequenceContainerSlot';
1718

18-
import { getCoursewareOutlineSidebarSettings } from '../../data/selectors';
1919
import CourseLicense from '../course-license';
2020
import { NotificationsDiscussionsSidebarSlot } from '../../../plugin-slots/NotificationsDiscussionsSidebarSlot';
2121
import messages from './messages';
@@ -47,7 +47,6 @@ const Sequence = ({
4747
const unit = useModel('units', unitId);
4848
const sequenceStatus = useSelector(state => state.courseware.sequenceStatus);
4949
const sequenceMightBeUnit = useSelector(state => state.courseware.sequenceMightBeUnit);
50-
const { enableNavigationSidebar: isEnabledOutlineSidebar } = useSelector(getCoursewareOutlineSidebarSettings);
5150
const handleNext = () => {
5251
const nextIndex = sequence.unitIds.indexOf(unitId) + 1;
5352
const newUnitId = sequence.unitIds[nextIndex];
@@ -170,7 +169,7 @@ const Sequence = ({
170169
/>
171170
<CourseOutlineSidebarSlot />
172171
<div className="sequence w-100">
173-
{!isEnabledOutlineSidebar && (
172+
{!getConfig().ENABLE_SEQUENCE_NAVIGATION && (
174173
<div className="sequence-navigation-container">
175174
<SequenceNavigation
176175
sequenceId={sequenceId}
@@ -203,7 +202,6 @@ const Sequence = ({
203202
unitId={unitId}
204203
unitLoadedHandler={handleUnitLoaded}
205204
isOriginalUserStaff={originalUserIsStaff}
206-
isEnabledOutlineSidebar={isEnabledOutlineSidebar}
207205
renderUnitNavigation={renderUnitNavigation}
208206
/>
209207
{unitHasLoaded && renderUnitNavigation(false)}

src/courseware/course/sequence/Sequence.test.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ describe('Sequence', () => {
9696
unitBlocks,
9797
sequenceBlocks,
9898
sequenceMetadata,
99-
enableNavigationSidebar: { enable_navigation_sidebar: true },
10099
}, false);
101100
const { container } = render(
102101
<SidebarWrapper overrideData={{ sequenceId: sequenceBlocks[0].id }} />,

src/courseware/course/sequence/SequenceContent.jsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ const SequenceContent = ({
1616
unitId,
1717
unitLoadedHandler,
1818
isOriginalUserStaff,
19-
isEnabledOutlineSidebar,
2019
renderUnitNavigation,
2120
}) => {
2221
const intl = useIntl();
@@ -63,7 +62,6 @@ const SequenceContent = ({
6362
id={unitId}
6463
onLoaded={unitLoadedHandler}
6564
isOriginalUserStaff={isOriginalUserStaff}
66-
isEnabledOutlineSidebar={isEnabledOutlineSidebar}
6765
renderUnitNavigation={renderUnitNavigation}
6866
/>
6967
);
@@ -76,7 +74,6 @@ SequenceContent.propTypes = {
7674
unitId: PropTypes.string,
7775
unitLoadedHandler: PropTypes.func.isRequired,
7876
isOriginalUserStaff: PropTypes.bool.isRequired,
79-
isEnabledOutlineSidebar: PropTypes.bool.isRequired,
8077
renderUnitNavigation: PropTypes.func.isRequired,
8178
};
8279

src/courseware/course/sequence/SequenceContent.test.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ describe('Sequence Content', () => {
1515
sequenceId: courseware.sequenceId,
1616
unitId: models.sequences[courseware.sequenceId].unitIds[0],
1717
unitLoadedHandler: () => { },
18+
renderUnitNavigation: () => { },
1819
};
1920
});
2021

@@ -38,7 +39,7 @@ describe('Sequence Content', () => {
3839
});
3940

4041
it('displays message for no content', () => {
41-
render(<SequenceContent {...mockData} unitId={null} />, { wrapWithRouter: true });
42+
render(<SequenceContent {...mockData} unitId="" />, { wrapWithRouter: true });
4243
expect(screen.getByText('There is no content here.')).toBeInTheDocument();
4344
});
4445
});

src/courseware/course/sequence/Unit/index.jsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ const Unit = ({
2222
onLoaded,
2323
id,
2424
isOriginalUserStaff,
25-
isEnabledOutlineSidebar,
2625
renderUnitNavigation,
2726
}) => {
2827
const { formatMessage } = useIntl();
@@ -48,7 +47,7 @@ const Unit = ({
4847

4948
return (
5049
<div className="unit">
51-
<UnitTitleSlot unitId={id} {...{ unit, isEnabledOutlineSidebar, renderUnitNavigation }} />
50+
<UnitTitleSlot unitId={id} {...{ unit, renderUnitNavigation }} />
5251
<UnitSuspense {...{ courseId, id }} />
5352
<ContentIFrame
5453
elementId="unit-iframe"
@@ -70,7 +69,6 @@ Unit.propTypes = {
7069
id: PropTypes.string.isRequired,
7170
onLoaded: PropTypes.func,
7271
isOriginalUserStaff: PropTypes.bool.isRequired,
73-
isEnabledOutlineSidebar: PropTypes.bool.isRequired,
7472
renderUnitNavigation: PropTypes.func.isRequired,
7573
};
7674

src/courseware/course/sequence/Unit/index.test.jsx

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ const defaultProps = {
1414
onLoaded: jest.fn().mockName('props.onLoaded'),
1515
id: 'unit-id',
1616
isOriginalUserStaff: false,
17-
isEnabledOutlineSidebar: false,
1817
renderUnitNavigation: jest.fn(enabled => enabled && 'UnitNaviagtion'),
1918
};
2019

@@ -68,16 +67,8 @@ describe('<Unit />', () => {
6867
expect(screen.getByText('Bookmark this page')).toBeInTheDocument();
6968
});
7069

71-
it('does not render unit navigation buttons', () => {
72-
renderComponent(defaultProps);
73-
74-
const nextButton = screen.queryByText('UnitNaviagtion');
75-
76-
expect(nextButton).toBeNull();
77-
});
78-
79-
it('renders unit navigation buttons when isEnabledOutlineSidebar is true', () => {
80-
const props = { ...defaultProps, isEnabledOutlineSidebar: true };
70+
it('renders unit navigation buttons', () => {
71+
const props = { ...defaultProps };
8172
renderComponent(props);
8273

8374
const nextButton = screen.getByText('UnitNaviagtion');

src/courseware/course/sequence/sequence-navigation/SequenceNavigation.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,13 @@ const SequenceNavigation = ({
100100
);
101101
};
102102

103-
return sequenceStatus === LOADED && (
103+
return sequenceStatus === LOADED ? (
104104
<nav id="courseware-sequence-navigation" data-testid="courseware-sequence-navigation" className={classNames('sequence-navigation', className, { 'mr-2': shouldDisplayNotificationTriggerInSequence })}>
105105
{renderPreviousButton()}
106106
{renderUnitButtons()}
107107
{renderNextButton()}
108108
</nav>
109-
);
109+
) : null;
110110
};
111111

112112
SequenceNavigation.propTypes = {

src/courseware/course/sidebar/SidebarContextProvider.jsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import { breakpoints, useWindowSize } from '@openedx/paragon';
22
import PropTypes from 'prop-types';
3-
import { useSelector } from 'react-redux';
43
import {
54
useEffect, useState, useMemo, useCallback,
65
} from 'react';
76

87
import { useModel } from '@src/generic/model-store';
98
import { getLocalStorage, setLocalStorage } from '@src/data/localStorage';
10-
import { getCoursewareOutlineSidebarSettings } from '../../data/selectors';
119

1210
import * as discussionsSidebar from './sidebars/discussions';
1311
import * as notificationsSidebar from './sidebars/notifications';
@@ -25,11 +23,10 @@ const SidebarProvider = ({
2523
const shouldDisplayFullScreen = useWindowSize().width < breakpoints.extraLarge.minWidth;
2624
const shouldDisplaySidebarOpen = useWindowSize().width > breakpoints.extraLarge.minWidth;
2725
const query = new URLSearchParams(window.location.search);
28-
const { alwaysOpenAuxiliarySidebar } = useSelector(getCoursewareOutlineSidebarSettings);
2926
const isInitiallySidebarOpen = shouldDisplaySidebarOpen || query.get('sidebar') === 'true';
3027

3128
let initialSidebar = shouldDisplayFullScreen ? getLocalStorage(`sidebar.${courseId}`) : null;
32-
if (!shouldDisplayFullScreen && isInitiallySidebarOpen && alwaysOpenAuxiliarySidebar) {
29+
if (!shouldDisplayFullScreen && isInitiallySidebarOpen) {
3330
initialSidebar = isUnitHasDiscussionTopics
3431
? SIDEBARS[discussionsSidebar.ID].ID
3532
: verifiedMode && SIDEBARS[notificationsSidebar.ID].ID;

0 commit comments

Comments
 (0)