@wordpress/block-editor
Version:
55 lines (52 loc) • 1.78 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { Button, __unstableMotion as motion, __unstableAnimatePresence as AnimatePresence } from '@wordpress/components';
import { settings as settingsIcon } from '@wordpress/icons';
import { useReducedMotion, useInstanceId } from '@wordpress/compose';
import { __ } from '@wordpress/i18n';
import { Fragment } from '@wordpress/element';
function LinkSettingsDrawer({
children,
settingsOpen,
setSettingsOpen
}) {
const prefersReducedMotion = useReducedMotion();
const MaybeAnimatePresence = prefersReducedMotion ? Fragment : AnimatePresence;
const MaybeMotionDiv = prefersReducedMotion ? 'div' : motion.div;
const id = useInstanceId(LinkSettingsDrawer);
const settingsDrawerId = `link-control-settings-drawer-${id}`;
return createElement(Fragment, null, createElement(Button, {
className: "block-editor-link-control__drawer-toggle",
"aria-expanded": settingsOpen,
onClick: () => setSettingsOpen(!settingsOpen),
icon: settingsIcon,
label: __('Link Settings'),
"aria-controls": settingsDrawerId
}), createElement(MaybeAnimatePresence, null, settingsOpen && createElement(MaybeMotionDiv, {
className: "block-editor-link-control__drawer",
hidden: !settingsOpen,
id: settingsDrawerId,
initial: "collapsed",
animate: "open",
exit: "collapsed",
variants: {
open: {
opacity: 1,
height: 'auto'
},
collapsed: {
opacity: 0,
height: 0
}
},
transition: {
duration: 0.1
}
}, createElement("div", {
className: "block-editor-link-control__drawer-inner"
}, children))));
}
export default LinkSettingsDrawer;
//# sourceMappingURL=settings-drawer.js.map