@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
38 lines (37 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const useControlled = require("../hooks/useControlled.cjs");
const Button = require("../Button/Button.cjs");
const HvToggleButton = React.forwardRef(function HvToggleButton2(props, ref) {
const {
defaultSelected,
selected,
notSelectedIcon,
selectedIcon = null,
onClick,
children,
...others
} = uikitReactUtils.useDefaultProps("HvToggleButton", props);
const [isSelected, setIsSelected] = useControlled.useControlled(
selected,
Boolean(defaultSelected)
);
return /* @__PURE__ */ jsxRuntime.jsx(
Button.HvButton,
{
ref,
icon: true,
selected: isSelected,
onClick: (event) => {
setIsSelected(!isSelected);
onClick?.(event, !isSelected);
},
...others,
children: children || (!isSelected ? notSelectedIcon : selectedIcon)
}
);
});
exports.HvToggleButton = HvToggleButton;