const useDrawerSheetStore = create((set) => ({
drawerSheets: {},
currentRoute: null,
previousRoute: null,
addDrawerSheet: (drawerSheetObject) => {
set((state) => {
const drawerSheets = { ...state.drawerSheets };
if (drawerSheets[drawerSheetObject.name]) { drawerSheets[drawerSheetObject.name].children = drawerSheetObject.children }
else { drawerSheets[drawerSheetObject.name] = drawerSheetObject }
return { drawerSheets: drawerSheets };
});
},
removeDrawerSheet: (drawerSheetName) => {
set((state) => {
const drawerSheets = { ...state.drawerSheets };
delete drawerSheets[drawerSheetName];
return { drawerSheets: drawerSheets };
});
},
openDrawerSheet: (drawerSheetName) => {
set((state) => {
const drawerSheets = { ...state.drawerSheets };
drawerSheets[drawerSheetName].open = true;
return { drawerSheets: drawerSheets };
});
},
closeDrawerSheet: (drawerSheetName) => {
set((state) => {
const drawerSheets = { ...state.drawerSheets };
drawerSheets[drawerSheetName].open = false;
return { drawerSheets: drawerSheets };
});
},
toggleDrawerSheet: (drawerSheetName) => {
set((state) => {
const drawerSheets = { ...state.drawerSheets };
drawerSheets[drawerSheetName].open = !drawerSheets[drawerSheetName].open;
return { drawerSheets: drawerSheets };
});
},
updateDrawerSheetOpen: (drawerSheetName, open) => {
set((state) => {
const drawerSheets = { ...state.drawerSheets };
drawerSheets[drawerSheetName].open = open;
return { drawerSheets: drawerSheets };
});
},
updateNavigationState: (navigationState) => {
const currentRoute = getCurrentRouteFromNavigationState(navigationState);
set((state) => ({ currentRoute: currentRoute, previousRoute: state.currentRoute }));
}
}));
useDrawerSheetStore
![](https://media.dev.to/cdn-cgi/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1279297%2F6b97d021-9c7a-41a7-8c24-1c14b8cbe2c8.png)