From 26199fa9547eb3a8f5efbb34b58a2c48b7c12aec Mon Sep 17 00:00:00 2001 From: sundasnoreen12 <72802712+sundasnoreen12@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:22:18 +0500 Subject: [PATCH] fix: reset initialsidebar after shouldDisplaySidebarOpen (#1428) * fix: reset initialsidebar after shouldDisplaySidebarOpen * fix: fixed issue due to localstorage sidebar value when shifting from old to new one --- src/courseware/course/new-sidebar/Sidebar.jsx | 3 ++- src/courseware/course/new-sidebar/SidebarContextProvider.jsx | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/courseware/course/new-sidebar/Sidebar.jsx b/src/courseware/course/new-sidebar/Sidebar.jsx index e8debc66..189e21e9 100644 --- a/src/courseware/course/new-sidebar/Sidebar.jsx +++ b/src/courseware/course/new-sidebar/Sidebar.jsx @@ -6,7 +6,8 @@ import { SIDEBARS } from './sidebars'; const Sidebar = () => { const { currentSidebar, isDiscussionbarAvailable, isNotificationbarAvailable } = useContext(SidebarContext); - if (currentSidebar === null || (!isDiscussionbarAvailable && !isNotificationbarAvailable)) { return null; } + if (currentSidebar === null || (!isDiscussionbarAvailable && !isNotificationbarAvailable) + || !SIDEBARS[currentSidebar]) { return null; } const SidebarToRender = SIDEBARS[currentSidebar].Sidebar; return ( diff --git a/src/courseware/course/new-sidebar/SidebarContextProvider.jsx b/src/courseware/course/new-sidebar/SidebarContextProvider.jsx index a87ed8ab..36993886 100644 --- a/src/courseware/course/new-sidebar/SidebarContextProvider.jsx +++ b/src/courseware/course/new-sidebar/SidebarContextProvider.jsx @@ -61,6 +61,10 @@ const SidebarProvider = ({ } }, [hideDiscussionbar, hideNotificationbar]); + useEffect(() => { + setCurrentSidebar(initialSidebar); + }, [shouldDisplaySidebarOpen, initialSidebar]); + const handleWidgetToggle = useCallback((widgetId, sidebarId) => { setHideDiscussionbar(prevWidgetId => (widgetId === WIDGETS.DISCUSSIONS ? true : prevWidgetId)); setHideNotificationbar(prevWidgetId => (widgetId === WIDGETS.NOTIFICATIONS ? true : prevWidgetId));