UNPKG

@gechiui/components

Version:
73 lines (63 loc) 2.02 kB
/** * External dependencies */ import { colord } from 'colord'; // eslint-disable-next-line no-restricted-imports import memoize from 'memize'; /** * GeChiUI dependencies */ import { useCallback, useMemo } from '@gechiui/element'; /** * Internal dependencies */ function isLegacyProps(props) { var _props$color; return typeof props.onChangeComplete !== 'undefined' || typeof props.disableAlpha !== 'undefined' || typeof ((_props$color = props.color) === null || _props$color === void 0 ? void 0 : _props$color.hex) === 'string'; } function getColorFromLegacyProps(props) { if (typeof (props === null || props === void 0 ? void 0 : props.color) === 'undefined') { return undefined; } if (typeof props.color === 'string') { return props.color; } if (props.color.hex) { return props.color.hex; } } const transformColorStringToLegacyColor = memoize(color => { const colordColor = colord(color); const hex = colordColor.toHex(); const rgb = colordColor.toRgb(); const hsv = colordColor.toHsv(); const hsl = colordColor.toHsl(); return { hex, rgb, hsv, hsl, source: 'hex', oldHue: hsl.h }; }); export function useDeprecatedProps(props) { const onChange = useCallback(color => { var _props$onChange; if (isLegacyProps(props)) { return props.onChangeComplete(transformColorStringToLegacyColor(color)); } return (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, color); }, [props.onChangeComplete, props.onChange]); const color = useMemo(() => { return isLegacyProps(props) ? getColorFromLegacyProps(props) : props.color; }, [props.color]); const enableAlpha = useMemo(() => { return isLegacyProps(props) ? !props.disableAlpha : props.enableAlpha; }, [props.disableAlpha, props.enableAlpha]); return { ...(isLegacyProps(props) ? {} : props), onChange, color, enableAlpha }; } //# sourceMappingURL=use-deprecated-props.js.map