From e86335c5d8cda31a8bf7a4507ddac5683796fc0f Mon Sep 17 00:00:00 2001 From: julianajlk Date: Mon, 15 Mar 2021 16:44:51 -0400 Subject: [PATCH 01/20] Add Sidebar and SidebarNotificationButton components --- src/courseware/course/Course.jsx | 41 +++++++++--- src/courseware/course/CourseBreadcrumbs.jsx | 2 +- src/courseware/course/Sidebar.jsx | 43 +++++++++++++ src/courseware/course/Sidebar.scss | 63 +++++++++++++++++++ .../course/SidebarNotificationButton.jsx | 28 +++++++++ .../course/SidebarNotificationButton.scss | 44 +++++++++++++ src/courseware/course/messages.js | 26 ++++++++ src/courseware/course/sequence/Sequence.jsx | 18 ++++++ .../SequenceNavigation.jsx | 18 +++++- src/index.scss | 8 +++ 10 files changed, 280 insertions(+), 11 deletions(-) create mode 100644 src/courseware/course/Sidebar.jsx create mode 100644 src/courseware/course/Sidebar.scss create mode 100644 src/courseware/course/SidebarNotificationButton.jsx create mode 100644 src/courseware/course/SidebarNotificationButton.scss create mode 100644 src/courseware/course/messages.js diff --git a/src/courseware/course/Course.jsx b/src/courseware/course/Course.jsx index 2220d63e48..cc1b7cf1d5 100644 --- a/src/courseware/course/Course.jsx +++ b/src/courseware/course/Course.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Helmet } from 'react-helmet'; import { useDispatch } from 'react-redux'; @@ -13,8 +13,11 @@ import Sequence from './sequence'; import { CelebrationModal, shouldCelebrateOnSectionLoad } from './celebration'; import ContentTools from './content-tools'; import CourseBreadcrumbs from './CourseBreadcrumbs'; +import SidebarNotificationButton from './SidebarNotificationButton'; + import CourseSock from '../../generic/course-sock'; import { useModel } from '../../generic/model-store'; +import useWindowSize from '../../generic/tabs/useWindowSize'; /** [MM-P2P] Experiment */ import { initCoursewareMMP2P, MMP2PBlockModal } from '../../experiments/mm-p2p'; @@ -60,6 +63,15 @@ function Course({ /** [MM-P2P] Experiment */ const MMP2P = initCoursewareMMP2P(courseId, sequenceId, unitId); + const windowSize = useWindowSize(); + const isMobileWidth = windowSize.width <= 576; + + const [sidebarVisible, setSidebar] = useState(false); + const isSidebarVisible = () => sidebarVisible && setSidebar; + const toggleSidebar = () => { + if (!sidebarVisible) { setSidebar(true); } else { setSidebar(false); } + }; + return ( <> @@ -76,13 +88,22 @@ function Course({ }} /> )} - +
+ + { !isMobileWidth ? ( + + ) : null} +
+ diff --git a/src/courseware/course/CourseBreadcrumbs.jsx b/src/courseware/course/CourseBreadcrumbs.jsx index a90dd5e4b3..d9890a0734 100644 --- a/src/courseware/course/CourseBreadcrumbs.jsx +++ b/src/courseware/course/CourseBreadcrumbs.jsx @@ -60,7 +60,7 @@ export default function CourseBreadcrumbs({ }, [courseStatus, sequenceStatus]); return ( -