UNPKG

@wordpress/block-editor

Version:
55 lines (52 loc) 1.78 kB
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