Skip to content

Commit

Permalink
Merge pull request #40716 from code-dot-org/revert-40684-hidden-stage…
Browse files Browse the repository at this point in the history
…-redux

Revert "Hidden stage redux"
  • Loading branch information
dmcavoy committed May 23, 2021
2 parents 886d501 + d783e39 commit 49380ca
Show file tree
Hide file tree
Showing 29 changed files with 499 additions and 505 deletions.
54 changes: 27 additions & 27 deletions apps/src/code-studio/components/TeacherContentToggle.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import Radium from 'radium';
import {connect} from 'react-redux';
import {ViewType} from '../viewAsRedux';
import {lessonIsLockedForAllStudents} from '@cdo/apps/templates/progress/progressHelpers';
import {isLessonHiddenForSection} from '../hiddenLessonRedux';
import {isStageHiddenForSection} from '../hiddenStageRedux';

/**
* When viewing a puzzle, we want teachers to be able to toggle between what the
* student would see and what they see as a teacher. In some cases (such as
* locked lessons and hidden lessons) this means hiding the main content, and
* locked stages and hidden stages) this means hiding the main content, and
* replacing it with something else.
* We accomplish this by having the server render that other content to a known
* dom element (#locked-stage, #hidden-stage). This component then creates
Expand All @@ -22,10 +22,10 @@ class TeacherContentToggle extends React.Component {
isBlocklyOrDroplet: PropTypes.bool.isRequired,
// redux provided
viewAs: PropTypes.string.isRequired,
hiddenLessonsInitialized: PropTypes.bool.isRequired,
hiddenStagesInitialized: PropTypes.bool.isRequired,
sectionsAreLoaded: PropTypes.bool.isRequired,
isHiddenLesson: PropTypes.bool.isRequired,
isLockedLesson: PropTypes.bool.isRequired
isHiddenStage: PropTypes.bool.isRequired,
isLockedStage: PropTypes.bool.isRequired
};

componentDidMount() {
Expand All @@ -51,10 +51,10 @@ class TeacherContentToggle extends React.Component {
render() {
const {
viewAs,
hiddenLessonsInitialized,
hiddenStagesInitialized,
sectionsAreLoaded,
isLockedLesson,
isHiddenLesson,
isLockedStage,
isHiddenStage,
isBlocklyOrDroplet
} = this.props;

Expand All @@ -68,12 +68,12 @@ class TeacherContentToggle extends React.Component {
let contentStyle = {
height: '100%'
};
let hasOverlayFrame = isLockedLesson || isHiddenLesson;
let hasOverlayFrame = isLockedStage || isHiddenStage;

if (viewAs === ViewType.Student) {
// Keep this hidden until we've made our async calls for hidden_stages and
// locked lessons, so that we don't flash content before hiding it
if (!hiddenLessonsInitialized || !sectionsAreLoaded || hasOverlayFrame) {
// locked stages, so that we don't flash content before hiding it
if (!hiddenStagesInitialized || !sectionsAreLoaded || hasOverlayFrame) {
contentStyle.visibility = 'hidden';
}
}
Expand All @@ -88,20 +88,20 @@ class TeacherContentToggle extends React.Component {
contentStyle.display = 'none';
}

const showLockedLessonMessage = isLockedLesson && !isHiddenLesson;
const showHiddenLessonMessage = isHiddenLesson;
const showLockedStageMessage = isLockedStage && !isHiddenStage;
const showHiddenStageMessage = isHiddenStage;

// Note: This component depends on the fact that the only thing we change about
// our children as we rerender is their style.
return (
<div style={styles.container}>
<div style={contentStyle} ref="content" />
<div
style={[frameStyle, !showLockedLessonMessage && styles.hidden]}
style={[frameStyle, !showLockedStageMessage && styles.hidden]}
ref="lockMessage"
/>
<div
style={[frameStyle, !showHiddenLessonMessage && styles.hidden]}
style={[frameStyle, !showHiddenStageMessage && styles.hidden]}
ref="hiddenMessage"
/>
</div>
Expand All @@ -124,31 +124,31 @@ export const UnconnectedTeacherContentToggle = Radium(TeacherContentToggle);
export const mapStateToProps = state => {
const viewAs = state.viewAs;

let isLockedLesson = false;
let isHiddenLesson = false;
const {currentLessonId} = state.progress;
let isLockedStage = false;
let isHiddenStage = false;
const {currentStageId} = state.progress;
if (viewAs === ViewType.Student) {
const {selectedSectionId} = state.teacherSections;

isLockedLesson = lessonIsLockedForAllStudents(currentLessonId, state);
isHiddenLesson = isLessonHiddenForSection(
state.hiddenLesson,
isLockedStage = lessonIsLockedForAllStudents(currentStageId, state);
isHiddenStage = isStageHiddenForSection(
state.hiddenStage,
selectedSectionId,
currentLessonId
currentStageId
);
} else if (!state.verifiedTeacher.isVerified) {
// if not-authorized teacher
isLockedLesson = state.progress.stages.some(
lesson => lesson.id === currentLessonId && lesson.lockable
isLockedStage = state.progress.stages.some(
stage => stage.id === currentStageId && stage.lockable
);
}

return {
viewAs,
sectionsAreLoaded: state.teacherSections.sectionsAreLoaded,
hiddenLessonsInitialized: state.hiddenLesson.hiddenLessonsInitialized,
isHiddenLesson,
isLockedLesson
hiddenStagesInitialized: state.hiddenStage.hiddenStagesInitialized,
isHiddenStage,
isLockedStage
};
};

Expand Down
4 changes: 2 additions & 2 deletions apps/src/code-studio/components/progress/LessonProgress.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -246,10 +246,10 @@ const styles = {
export const UnconnectedLessonProgress = LessonProgress;

export default connect(state => ({
levels: levelsForLessonId(state.progress, state.progress.currentLessonId),
levels: levelsForLessonId(state.progress, state.progress.currentStageId),
lessonExtrasUrl: lessonExtrasUrl(
state.progress,
state.progress.currentLessonId
state.progress.currentStageId
),
isLessonExtras: state.progress.isLessonExtras,
currentPageNumber: state.progress.currentPageNumber,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import lessonLock from '../../lessonLockRedux';
import progress, {
initProgress,
mergeResults,
setLessonExtrasEnabled
setStageExtrasEnabled
} from '../../progressRedux';
import {TestResults} from '@cdo/apps/constants';

Expand Down Expand Up @@ -119,7 +119,7 @@ export default storybook => {
results[100] = TestResults.ALL_PASS;
}
store.dispatch(mergeResults(results));
store.dispatch(setLessonExtrasEnabled(showStageExtras));
store.dispatch(setStageExtrasEnabled(showStageExtras));
return store;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const initialState = {
levels: []
}
],
focusAreaLessonIds: [],
focusAreaStageIds: [],
isSummaryView: false,
professionalLearningCourse: false
}
Expand Down
4 changes: 2 additions & 2 deletions apps/src/code-studio/components/progress/ScriptOverview.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import ProgressLegend from '@cdo/apps/templates/progress/ProgressLegend';
import {resourceShape} from '@cdo/apps/templates/courseOverview/resourceType';
import {resourceShape as migratedResourceShape} from '@cdo/apps/lib/levelbuilder/shapes';
import ScriptOverviewHeader from './ScriptOverviewHeader';
import {isScriptHiddenForSection} from '@cdo/apps/code-studio/hiddenLessonRedux';
import {isScriptHiddenForSection} from '@cdo/apps/code-studio/hiddenStageRedux';
import {
onDismissRedirectDialog,
dismissedRedirectDialog
Expand Down Expand Up @@ -218,7 +218,7 @@ export default connect((state, ownProps) => ({
viewAs: state.viewAs,
isRtl: state.isRtl,
currentCourseId: state.progress.courseId,
hiddenLessonState: state.hiddenLesson,
hiddenLessonState: state.hiddenStage,
selectedSectionId: parseInt(state.teacherSections.selectedSectionId),
sectionsForDropdown: sectionsForDropdown(
state.teacherSections,
Expand Down
4 changes: 2 additions & 2 deletions apps/src/code-studio/components/progress/TeacherPanel.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ViewAsToggle from './ViewAsToggle';
import FontAwesome from '@cdo/apps/templates/FontAwesome';
import {fullyLockedLessonMapping} from '../../lessonLockRedux';
import {ViewType} from '../../viewAsRedux';
import {hasLockableLessons} from '../../progressRedux';
import {hasLockableStages} from '../../progressRedux';
import {pageTypes} from '@cdo/apps/templates/teacherDashboard/teacherSectionsRedux';
import StudentTable, {studentShape} from './StudentTable';
import {teacherDashboardUrl} from '@cdo/apps/templates/teacherDashboard/urlHelpers';
Expand Down Expand Up @@ -267,7 +267,7 @@ export default connect(state => {

// Pretend we don't have lockable lessons if we're not authorized to see them
const scriptHasLockableStages =
lockableAuthorized && hasLockableLessons(state.progress);
lockableAuthorized && hasLockableStages(state.progress);

return {
viewAs: state.viewAs,
Expand Down

0 comments on commit 49380ca

Please sign in to comment.