mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 05:40:31 +00:00
feat(Sidebar): Refactoring sidebar menu with feature and permissions abilities control.
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
import { useCallback } from 'react';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { createSelector } from 'reselect';
|
||||
import {
|
||||
splashStopLoading,
|
||||
splashStartLoading,
|
||||
dashboardPageTitle,
|
||||
openSidebarSubmenu,
|
||||
closeSidebarSubmenu,
|
||||
openDialog,
|
||||
closeDialog,
|
||||
} from '../../store/dashboard/dashboard.actions';
|
||||
|
||||
export const useDispatchAction = (action) => {
|
||||
@@ -30,3 +35,44 @@ export const useSplashLoading = () => {
|
||||
useDispatchAction(splashStopLoading),
|
||||
];
|
||||
};
|
||||
|
||||
/**
|
||||
* Sidebar submenu actions.
|
||||
*/
|
||||
export const useSidebarSubmnuActions = () => {
|
||||
return {
|
||||
openSidebarSubmenu: useDispatchAction(openSidebarSubmenu),
|
||||
closeSidebarSubmenu: useDispatchAction(closeSidebarSubmenu),
|
||||
toggleSidebarSubmenu: useDispatchAction(openSidebarSubmenu),
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves the sidebar submenu selector.
|
||||
*/
|
||||
const sidebarSubmenuSelector = createSelector(
|
||||
(state) => state.dashboard.sidebarSubmenu,
|
||||
(sidebarSubmenu) => sidebarSubmenu,
|
||||
);
|
||||
|
||||
/**
|
||||
* Retrieves the sidebar submenu selector.
|
||||
*/
|
||||
export const useSidebarSubmenu = () => {
|
||||
const sidebarSubmenu = useSelector(sidebarSubmenuSelector);
|
||||
|
||||
return {
|
||||
isOpen: sidebarSubmenu?.isOpen || false,
|
||||
submenuId: sidebarSubmenu?.submenuId || null,
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Dialogs actions.
|
||||
*/
|
||||
export const useDialogActions = () => {
|
||||
return {
|
||||
openDialog: useDispatchAction(openDialog),
|
||||
closeDialog: useDispatchAction(closeDialog),
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user