Locking the current unit and sub section nav when we’re on gated content.

Will follow up with a “locked content” UI in the next commit.
This commit is contained in:
David Joy
2020-01-13 11:22:30 -05:00
parent afa4c51a13
commit d097617feb
6 changed files with 58 additions and 20 deletions

View File

@@ -4,10 +4,11 @@ import SubSectionNavigation from './SubSectionNavigation';
import CourseStructureContext from '../CourseStructureContext';
import Unit from './Unit';
import {
useSubSectionMetadata,
useLoadSubSectionMetadata,
useExamRedirect,
usePersistentUnitPosition
usePersistentUnitPosition,
} from './data/hooks';
import SubSectionMetadataContext from './SubSectionMetadataContext';
export default function SubSection() {
const {
@@ -16,16 +17,26 @@ export default function SubSection() {
unitId,
blocks,
} = useContext(CourseStructureContext);
const { metadata } = useSubSectionMetadata(courseId, subSectionId);
const { metadata } = useLoadSubSectionMetadata(courseId, subSectionId);
usePersistentUnitPosition(courseId, subSectionId, unitId, metadata);
useExamRedirect(metadata, blocks);
const ready = blocks !== null && metadata !== null;
return ready && (
<section className="d-flex flex-column flex-grow-1">
<SubSectionNavigation />
<Unit id={unitId} unit={blocks[unitId]} />
</section>
if (!ready) {
return null;
}
const isGated = metadata.gatedContent.gated;
return (
<SubSectionMetadataContext.Provider value={metadata}>
<section className="d-flex flex-column flex-grow-1">
<SubSectionNavigation />
{isGated && <div>This is gated content.</div>}
{!isGated && <Unit id={unitId} unit={blocks[unitId]} />}
</section>
</SubSectionMetadataContext.Provider>
);
}