UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

44 lines 1.28 kB
import React, { useCallback, useMemo } from 'react'; import Toggle from "../Toggle/Toggle.js"; import useDependencePaths from "./useDependencePaths.js"; import { jsx as _jsx } from "react/jsx-runtime"; export default function Indeterminate(props) { const { dependencePaths, propagateIndeterminateState = 'checked', valueOn = true, valueOff = false, value: valueProp, onChange, ...rest } = props; const { indeterminate, internalValue, setAllStates, ariaControlsIds } = useDependencePaths(dependencePaths, propagateIndeterminateState); const changeHandler = useCallback(value => { setAllStates(value === valueOn); onChange?.(value === valueOn ? valueOn : valueOff); }, [onChange, setAllStates, valueOff, valueOn]); const value = useMemo(() => { if (typeof internalValue !== 'undefined') { return internalValue ? valueOn : valueOff; } return valueProp; }, [valueProp, internalValue, valueOn, valueOff]); return _jsx(Toggle, { ...rest, variant: "checkbox", htmlAttributes: { indeterminate, ['aria-controls']: ariaControlsIds }, valueOn: valueOn, valueOff: valueOff, value: value, onChange: changeHandler }); } //# sourceMappingURL=Indeterminate.js.map