UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

38 lines (37 loc) 962 B
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 };