@wordpress/components
Version:
UI components for WordPress.
81 lines (70 loc) • 1.93 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = FocalPointPickerGrid;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _focalPointPickerStyle = require("./styles/focal-point-picker-style");
var _hooks = require("../utils/hooks");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const {
clearTimeout,
setTimeout
} = typeof window !== 'undefined' ? window : {};
function FocalPointPickerGrid({
bounds = {},
value,
...props
}) {
const animationProps = useRevealAnimation(value);
const style = {
width: bounds.width,
height: bounds.height
};
return (0, _element.createElement)(_focalPointPickerStyle.GridView, (0, _extends2.default)({}, props, animationProps, {
className: "components-focal-point-picker__grid",
style: style
}), (0, _element.createElement)(_focalPointPickerStyle.GridLineX, {
style: {
top: '33%'
}
}), (0, _element.createElement)(_focalPointPickerStyle.GridLineX, {
style: {
top: '66%'
}
}), (0, _element.createElement)(_focalPointPickerStyle.GridLineY, {
style: {
left: '33%'
}
}), (0, _element.createElement)(_focalPointPickerStyle.GridLineY, {
style: {
left: '66%'
}
}));
}
/**
* Custom hook that renders the "flash" animation whenever the value changes.
*
* @param {string} value Value of (box) side.
*/
function useRevealAnimation(value) {
const [isActive, setIsActive] = (0, _element.useState)(false);
(0, _hooks.useUpdateEffect)(() => {
setIsActive(true);
const timeout = setTimeout(() => {
setIsActive(false);
}, 600);
return () => clearTimeout(timeout);
}, [value]);
return {
isActive
};
}
//# sourceMappingURL=grid.js.map