UNPKG

4.15 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _element = require("@wordpress/element");
11
12var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
14var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
16var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
18var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
20var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
22var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
24var _i18n = require("@wordpress/i18n");
25
26var _components = require("@wordpress/components");
27
28var _blockEditor = require("@wordpress/block-editor");
29
30var _keycodes = require("@wordpress/keycodes");
31
32var _blocks = require("@wordpress/blocks");
33
34/**
35 * WordPress dependencies
36 */
37var MoreEdit =
38/*#__PURE__*/
39function (_Component) {
40 (0, _inherits2.default)(MoreEdit, _Component);
41
42 function MoreEdit() {
43 var _this;
44
45 (0, _classCallCheck2.default)(this, MoreEdit);
46 _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MoreEdit).apply(this, arguments));
47 _this.onChangeInput = _this.onChangeInput.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
48 _this.onKeyDown = _this.onKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
49 _this.state = {
50 defaultText: (0, _i18n.__)('Read more')
51 };
52 return _this;
53 }
54
55 (0, _createClass2.default)(MoreEdit, [{
56 key: "onChangeInput",
57 value: function onChangeInput(event) {
58 // Set defaultText to an empty string, allowing the user to clear/replace the input field's text
59 this.setState({
60 defaultText: ''
61 });
62 var value = event.target.value.length === 0 ? undefined : event.target.value;
63 this.props.setAttributes({
64 customText: value
65 });
66 }
67 }, {
68 key: "onKeyDown",
69 value: function onKeyDown(event) {
70 var keyCode = event.keyCode;
71 var insertBlocksAfter = this.props.insertBlocksAfter;
72
73 if (keyCode === _keycodes.ENTER) {
74 insertBlocksAfter([(0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)())]);
75 }
76 }
77 }, {
78 key: "getHideExcerptHelp",
79 value: function getHideExcerptHelp(checked) {
80 return checked ? (0, _i18n.__)('The excerpt is hidden.') : (0, _i18n.__)('The excerpt is visible.');
81 }
82 }, {
83 key: "render",
84 value: function render() {
85 var _this$props$attribute = this.props.attributes,
86 customText = _this$props$attribute.customText,
87 noTeaser = _this$props$attribute.noTeaser;
88 var setAttributes = this.props.setAttributes;
89
90 var toggleHideExcerpt = function toggleHideExcerpt() {
91 return setAttributes({
92 noTeaser: !noTeaser
93 });
94 };
95
96 var defaultText = this.state.defaultText;
97 var value = customText !== undefined ? customText : defaultText;
98 var inputLength = value.length + 1;
99 return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, null, (0, _element.createElement)(_components.ToggleControl, {
100 label: (0, _i18n.__)('Hide the excerpt on the full content page'),
101 checked: !!noTeaser,
102 onChange: toggleHideExcerpt,
103 help: this.getHideExcerptHelp
104 }))), (0, _element.createElement)("div", {
105 className: "wp-block-more"
106 }, (0, _element.createElement)("input", {
107 type: "text",
108 value: value,
109 size: inputLength,
110 onChange: this.onChangeInput,
111 onKeyDown: this.onKeyDown
112 })));
113 }
114 }]);
115 return MoreEdit;
116}(_element.Component);
117
118exports.default = MoreEdit;
119//# sourceMappingURL=edit.js.map
\No newline at end of file