@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
38 lines (37 loc) • 962 B
JavaScript
import { jsx } from "react/jsx-runtime";
import { forwardRef } from "react";
import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
import { useControlled } from "../hooks/useControlled.js";
import { HvButton } from "../Button/Button.js";
const HvToggleButton = forwardRef(function HvToggleButton2(props, ref) {
const {
defaultSelected,
selected,
notSelectedIcon,
selectedIcon = null,
onClick,
children,
...others
} = useDefaultProps("HvToggleButton", props);
const [isSelected, setIsSelected] = useControlled(
selected,
Boolean(defaultSelected)
);
return /* @__PURE__ */ jsx(
HvButton,
{
ref,
icon: true,
selected: isSelected,
onClick: (event) => {
setIsSelected(!isSelected);
onClick?.(event, !isSelected);
},
...others,
children: children || (!isSelected ? notSelectedIcon : selectedIcon)
}
);
});
export {
HvToggleButton
};