From 023f5ac254566bf340245a3f6a8a625e372df88b Mon Sep 17 00:00:00 2001 From: sundasnoreen12 <72802712+sundasnoreen12@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:40:21 +0500 Subject: [PATCH] feat: added implementation for new sidebar (#1260) * feat: added implementation for new sidebar * test: fixed test cases * refactor: fixed naming convention and combine useeffects * refactor: improved sidebar UI and renamed sidebar flag * refactor: remove additional states * refactor: fixed UI and logic related issue * refactor: simplified condition * refactor: toggle sidebar action * refactor: fixed toggle issues * refactor: back arrow component * refactor: changed useeffect position --------- Co-authored-by: Awais Ansari --- .env | 1 + .env.development | 1 + .env.test | 1 + src/courseware/course/Course.jsx | 13 +- src/courseware/course/CourseBreadcrumbs.jsx | 2 +- src/courseware/course/new-sidebar/Sidebar.jsx | 17 +++ .../course/new-sidebar/SidebarContext.js | 5 + .../new-sidebar/SidebarContextProvider.jsx | 103 ++++++++++++++++ .../course/new-sidebar/SidebarTriggers.jsx | 21 ++++ .../course/new-sidebar/common/SidebarBase.jsx | 113 ++++++++++++++++++ .../course/new-sidebar/constants.js | 6 + .../new-sidebar/icons/RightSidebarFilled.jsx | 20 ++++ .../icons/RightSidebarOutlined.jsx | 20 ++++ .../course/new-sidebar/icons/index.js | 2 + src/courseware/course/new-sidebar/messages.js | 36 ++++++ .../DiscussionsNotificationsSidebar.jsx | 31 +++++ .../DiscussionsNotificationsTrigger.jsx | 97 +++++++++++++++ .../discussions/DiscussionsWidget.jsx | 35 ++++++ .../discussions/DiscussionsWidget.test.jsx | 74 ++++++++++++ .../discussions-notifications/index.js | 2 + .../notifications/NotificationsWidget.jsx | 62 ++++++++++ .../NotificationsWidget.test.jsx | 112 +++++++++++++++++ .../course/new-sidebar/sidebars/index.js | 13 ++ src/courseware/course/sequence/Sequence.jsx | 17 ++- .../UpgradeNotification.jsx | 33 ++++- .../UpgradeNotification.scss | 4 + src/index.jsx | 1 + src/index.scss | 7 ++ 28 files changed, 834 insertions(+), 15 deletions(-) create mode 100644 src/courseware/course/new-sidebar/Sidebar.jsx create mode 100644 src/courseware/course/new-sidebar/SidebarContext.js create mode 100644 src/courseware/course/new-sidebar/SidebarContextProvider.jsx create mode 100644 src/courseware/course/new-sidebar/SidebarTriggers.jsx create mode 100644 src/courseware/course/new-sidebar/common/SidebarBase.jsx create mode 100644 src/courseware/course/new-sidebar/constants.js create mode 100644 src/courseware/course/new-sidebar/icons/RightSidebarFilled.jsx create mode 100644 src/courseware/course/new-sidebar/icons/RightSidebarOutlined.jsx create mode 100644 src/courseware/course/new-sidebar/icons/index.js create mode 100644 src/courseware/course/new-sidebar/messages.js create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/DiscussionsNotificationsSidebar.jsx create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/DiscussionsNotificationsTrigger.jsx create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/discussions/DiscussionsWidget.jsx create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/discussions/DiscussionsWidget.test.jsx create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/index.js create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/notifications/NotificationsWidget.jsx create mode 100644 src/courseware/course/new-sidebar/sidebars/discussions-notifications/notifications/NotificationsWidget.test.jsx create mode 100644 src/courseware/course/new-sidebar/sidebars/index.js diff --git a/.env b/.env index b1622473..32adc06e 100644 --- a/.env +++ b/.env @@ -13,6 +13,7 @@ DISCOVERY_API_BASE_URL='' DISCUSSIONS_MFE_BASE_URL='' ECOMMERCE_BASE_URL='' ENABLE_JUMPNAV='true' +ENABLE_NEW_SIDEBAR='' ENABLE_NOTICES='' ENTERPRISE_LEARNER_PORTAL_HOSTNAME='' EXAMS_BASE_URL='' diff --git a/.env.development b/.env.development index 34e014ef..aa709821 100644 --- a/.env.development +++ b/.env.development @@ -13,6 +13,7 @@ DISCOVERY_API_BASE_URL='http://localhost:18381' DISCUSSIONS_MFE_BASE_URL='http://localhost:2002' ECOMMERCE_BASE_URL='http://localhost:18130' ENABLE_JUMPNAV='true' +ENABLE_NEW_SIDEBAR='' ENABLE_NOTICES='' ENTERPRISE_LEARNER_PORTAL_HOSTNAME='localhost:8734' EXAMS_BASE_URL='' diff --git a/.env.test b/.env.test index b2e2ba7c..34745fe2 100644 --- a/.env.test +++ b/.env.test @@ -13,6 +13,7 @@ DISCOVERY_API_BASE_URL='http://localhost:18381' DISCUSSIONS_MFE_BASE_URL='http://localhost:2002' ECOMMERCE_BASE_URL='http://localhost:18130' ENABLE_JUMPNAV='true' +ENABLE_NEW_SIDEBAR='' ENABLE_NOTICES='' ENTERPRISE_LEARNER_PORTAL_HOSTNAME='localhost:8734' EXAMS_BASE_URL='http://localhost:18740' diff --git a/src/courseware/course/Course.jsx b/src/courseware/course/Course.jsx index 0ebc75e8..9926db09 100644 --- a/src/courseware/course/Course.jsx +++ b/src/courseware/course/Course.jsx @@ -15,6 +15,8 @@ import ContentTools from './content-tools'; import CourseBreadcrumbs from './CourseBreadcrumbs'; import SidebarProvider from './sidebar/SidebarContextProvider'; import SidebarTriggers from './sidebar/SidebarTriggers'; +import NewSidebarProvider from './new-sidebar/SidebarContextProvider'; +import NewSidebarTriggers from './new-sidebar/SidebarTriggers'; import { useModel } from '../../generic/model-store'; @@ -34,6 +36,7 @@ const Course = ({ } = useModel('courseHomeMeta', courseId); const sequence = useModel('sequences', sequenceId); const section = useModel('sections', sequence ? sequence.sectionId : null); + const enableNewSidebar = getConfig().ENABLE_NEW_SIDEBAR; const pageTitleBreadCrumbs = [ sequence, @@ -64,12 +67,14 @@ const Course = ({ )); }, [sequenceId]); + const SidebarProviderComponent = enableNewSidebar === 'true' ? NewSidebarProvider : SidebarProvider; + return ( - + {`${pageTitleBreadCrumbs.join(' | ')} | ${getConfig().SITE_NAME}`} -
+
- + {enableNewSidebar === 'true' ? : } )}
@@ -113,7 +118,7 @@ const Course = ({ onClose={() => setWeeklyGoalCelebrationOpen(false)} /> - + ); }; diff --git a/src/courseware/course/CourseBreadcrumbs.jsx b/src/courseware/course/CourseBreadcrumbs.jsx index a49906a8..24e2f774 100644 --- a/src/courseware/course/CourseBreadcrumbs.jsx +++ b/src/courseware/course/CourseBreadcrumbs.jsx @@ -153,7 +153,7 @@ const CourseBreadcrumbs = ({ }, [courseStatus, sequenceStatus, allSequencesInSections]); return ( -