@gechiui/components
Version:
UI components for GeChiUI.
81 lines (66 loc) • 2.23 kB
JavaScript
;
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