@wordpress/block-editor
Version:
82 lines (73 loc) • 2 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
import { Component } from '@wordpress/element';
import { Button } from '@wordpress/components';
import { link, keyboardReturn, arrowLeft } from '@wordpress/icons';
/**
* Internal dependencies
*/
import URLInput from './';
class URLInputButton extends Component {
constructor() {
super(...arguments);
this.toggle = this.toggle.bind(this);
this.submitLink = this.submitLink.bind(this);
this.state = {
expanded: false
};
}
toggle() {
this.setState({
expanded: !this.state.expanded
});
}
submitLink(event) {
event.preventDefault();
this.toggle();
}
render() {
const {
url,
onChange
} = this.props;
const {
expanded
} = this.state;
const buttonLabel = url ? __('Edit link') : __('Insert link');
return createElement("div", {
className: "block-editor-url-input__button"
}, createElement(Button, {
icon: link,
label: buttonLabel,
onClick: this.toggle,
className: "components-toolbar__control",
isPressed: !!url
}), expanded && createElement("form", {
className: "block-editor-url-input__button-modal",
onSubmit: this.submitLink
}, createElement("div", {
className: "block-editor-url-input__button-modal-line"
}, createElement(Button, {
className: "block-editor-url-input__back",
icon: arrowLeft,
label: __('Close'),
onClick: this.toggle
}), createElement(URLInput, {
__nextHasNoMarginBottom: true,
value: url || '',
onChange: onChange
}), createElement(Button, {
icon: keyboardReturn,
label: __('Submit'),
type: "submit"
}))));
}
}
/**
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md
*/
export default URLInputButton;
//# sourceMappingURL=button.js.map