@veracity/vui
Version:
Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.
38 lines (36 loc) • 1.21 kB
JavaScript
import { useStyleConfig } from "../core/theme.js";
import { useSidemenuContext } from "./context.js";
import { useCallback, useMemo } from "react";
//#region src/sidemenuV2/useSidemenuItem.ts
const useSidemenuItem = (itemId) => {
const sidemenuContext = useSidemenuContext();
const styles = useStyleConfig("SidemenuV2", sidemenuContext);
const isSubmenuOpen = useMemo(() => {
return itemId ? sidemenuContext?.submenuStates?.[itemId] ?? false : false;
}, [itemId, sidemenuContext?.submenuStates]);
const handleToggleSubmenu = useCallback(() => {
if (itemId && sidemenuContext?.toggleSubmenu) sidemenuContext.toggleSubmenu(itemId);
}, [itemId, sidemenuContext?.toggleSubmenu]);
const isDark = sidemenuContext?.variant === "dark";
const size = sidemenuContext?.size ?? "lg";
const isMenuExpanded = sidemenuContext?.isMenuExpanded ?? true;
return useMemo(() => ({
isDark,
size,
styles,
isMenuExpanded,
isSubmenuOpen,
toggleSubmenu: handleToggleSubmenu
}), [
isDark,
size,
styles,
isMenuExpanded,
isSubmenuOpen,
handleToggleSubmenu
]);
};
//#endregion
export { useSidemenuItem as default };
globalThis.__vuiVersion__ = "5.3.1"
//# sourceMappingURL=useSidemenuItem.js.map