@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
48 lines (47 loc) • 1.3 kB
JavaScript
import { jsxs } from "react/jsx-runtime";
import { useContext } from "react";
import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
import { setId } from "../../utils/setId.js";
import { VerticalNavigationContext } from "../VerticalNavigationContext.js";
import { useClasses } from "./Action.styles.js";
import { staticClasses } from "./Action.styles.js";
import { HvButton } from "../../Button/Button.js";
const HvVerticalNavigationAction = (props) => {
const {
className,
classes: classesProp,
id,
label = "",
icon,
...others
} = useDefaultProps("HvVerticalNavigationAction", props);
const { isOpen } = useContext(VerticalNavigationContext);
const { classes, cx } = useClasses(classesProp);
return /* @__PURE__ */ jsxs(
HvButton,
{
id: setId(id, "button"),
variant: "secondaryGhost",
icon: !isOpen,
startIcon: isOpen && icon,
className: cx(
classes.action,
{
[classes.noIcon]: !icon,
[classes.minimized]: !isOpen
},
className
),
...!isOpen && { "aria-label": label },
...others,
children: [
!isOpen && icon,
isOpen && label
]
}
);
};
export {
HvVerticalNavigationAction,
staticClasses as actionClasses
};