UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

32 lines (31 loc) 923 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'useControlledState', { enumerable: true, get: function () { return useControlledState; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const useControlledState = ( initialValue, controlledState, setControlledState, ) => { let [uncontrolledState, setUncontrolledState] = _react.useState(initialValue); let state = _react.useMemo( () => (void 0 !== controlledState ? controlledState : uncontrolledState), [controlledState, uncontrolledState], ); let setState = _react.useCallback( (value) => { setUncontrolledState(value); setControlledState?.(value); }, [setControlledState, setUncontrolledState], ); return [state, setState]; };