import { Fragment, useState } from 'wp.element'; import { __ } from 'wp.i18n'; import { BlockControls, __experimentalLinkControl as LinkControl, } from 'wp.blockEditor'; import { Popover, KeyboardShortcuts, ToolbarButton } from 'wp.components'; import { rawShortcut, displayShortcut } from 'wp.keycodes'; import { link, linkOff } from '@wordpress/icons'; export const canUseURLPicker = () => { return !!LinkControl; }; const URLPicker = ({ isSelected, onChange, url, opensInNewTab, anchorRef }) => { const [isURLPickerOpen, setIsURLPickerOpen] = useState(false); const urlIsSet = !!url; const urlIsSetandSelected = urlIsSet && isSelected; const openLinkControl = () => { setIsURLPickerOpen(true); return false; // prevents default behaviour for event }; const unlinkButton = () => { onChange({ url: undefined, linkTarget: undefined, rel: undefined, }); setIsURLPickerOpen(false); }; return ( {!urlIsSet && ( )} {urlIsSetandSelected && ( )} {isSelected && ( )} {(isURLPickerOpen || urlIsSetandSelected) && ( setIsURLPickerOpen(false)} anchorRef={anchorRef?.current} > onChange(values)} /> )} ); }; export default URLPicker;