UNPKG

@gechiui/components

Version:
81 lines (66 loc) 2.23 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useDeprecatedProps = useDeprecatedProps; var _colord = require("colord"); var _memize = _interopRequireDefault(require("memize")); var _element = require("@gechiui/element"); /** * External dependencies */ /** * GeChiUI 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 = (0, _memize.default)(color => { const colordColor = (0, _colord.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 }; }); function useDeprecatedProps(props) { const onChange = (0, _element.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 = (0, _element.useMemo)(() => { return isLegacyProps(props) ? getColorFromLegacyProps(props) : props.color; }, [props.color]); const enableAlpha = (0, _element.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