UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

43 lines 1.55 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; const _excluded = ["dependencePaths", "propagateIndeterminateState", "valueOn", "valueOff", "value", "onChange"]; import React, { useCallback, useMemo } from 'react'; import Toggle from '../Toggle/Toggle'; import useDependencePaths from './useDependencePaths'; export default function Indeterminate(props) { const { dependencePaths, propagateIndeterminateState = 'checked', valueOn = true, valueOff = false, value: valueProp, onChange } = props, rest = _objectWithoutProperties(props, _excluded); const { indeterminate, internalValue, setAllStates } = useDependencePaths(dependencePaths, propagateIndeterminateState); const changeHandler = useCallback(value => { setAllStates(value === valueOn); onChange === null || onChange === void 0 ? void 0 : onChange(value === valueOn ? valueOn : valueOff); }, [onChange, setAllStates, valueOff, valueOn]); const value = useMemo(() => { if (typeof valueProp !== 'undefined') { return valueProp; } return internalValue ? valueOn : valueOff; }, [valueProp, internalValue, valueOn, valueOff]); return React.createElement(Toggle, _extends({}, rest, { variant: "checkbox", htmlAttributes: { indeterminate }, valueOn: valueOn, valueOff: valueOff, value: value, onChange: changeHandler })); } //# sourceMappingURL=Indeterminate.js.map