Merge pull request #11102 from ToolJet/fix/sidebar-pinning

Fix: close sidebar on left side item click
This commit is contained in:
Johnson Cherian 2024-10-24 13:21:13 +05:30 committed by GitHub
commit ecc5b2afac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 8 deletions

View file

@ -50,9 +50,14 @@ export const LeftSidebar = ({ darkMode = false, switchDarkMode }) => {
// const exposed
const handleSelectedSidebarItem = (item) => {
if (item === 'debugger') resetUnreadErrorCount();
setSelectedSidebarItem(item);
if (!isSidebarOpen) toggleLeftSidebar(true);
pinned && localStorage.setItem('selectedSidebarItem', item);
if (item === selectedSidebarItem && !pinned) {
setSelectedSidebarItem(null);
} else {
setSelectedSidebarItem(item);
pinned && localStorage.setItem('selectedSidebarItem', item);
}
toggleLeftSidebar(!isSidebarOpen);
};
const setSideBarBtnRefs = (page) => (ref) => {

View file

@ -1,12 +1,22 @@
const selectedItem = localStorage.getItem('selectedSidebarItem');
const isLeftSideBarPinned = !!selectedItem;
const selectedSidebarItem = selectedItem;
const initialState = {
isLeftSideBarPinned: false,
selectedSidebarItem: false,
isSidebarOpen: false,
isSidebarOpen: isLeftSideBarPinned || !!selectedSidebarItem,
isLeftSideBarPinned,
selectedSidebarItem,
};
export const createLeftSideBarSlice = (set) => ({
export const createLeftSideBarSlice = (set, get) => ({
...initialState,
setIsLeftSideBarPinned: (status) => set(() => ({ isLeftSideBarPinned: status }), false, 'setIsLeftSideBarPinned'),
setIsLeftSideBarPinned: (status) => {
status
? localStorage.setItem('selectedSidebarItem', get().selectedSidebarItem)
: localStorage.removeItem('selectedSidebarItem');
set(() => ({ isLeftSideBarPinned: status }));
},
setSelectedSidebarItem: (selectedSidebarItem) =>
set(() => ({ selectedSidebarItem }), false, 'setSelectedSidebarItem'),
toggleLeftSidebar: (isSidebarOpen) =>