@wordpress/editor 13.14.0 → 13.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/entities-saved-states/entity-record-item.js +3 -37
  3. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  4. package/build/components/entities-saved-states/entity-type-list.js +2 -4
  5. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  6. package/build/components/entities-saved-states/index.js +0 -1
  7. package/build/components/entities-saved-states/index.js.map +1 -1
  8. package/build/components/global-keyboard-shortcuts/{save-shortcut.js → index.js} +13 -25
  9. package/build/components/global-keyboard-shortcuts/index.js.map +1 -0
  10. package/build/components/index.js +32 -19
  11. package/build/components/index.js.map +1 -1
  12. package/build/components/post-comments/index.js +12 -15
  13. package/build/components/post-comments/index.js.map +1 -1
  14. package/build/components/post-excerpt/index.js +9 -20
  15. package/build/components/post-excerpt/index.js.map +1 -1
  16. package/build/components/post-pingbacks/index.js +12 -15
  17. package/build/components/post-pingbacks/index.js.map +1 -1
  18. package/build/components/post-preview-button/index.js +62 -157
  19. package/build/components/post-preview-button/index.js.map +1 -1
  20. package/build/components/post-publish-button/index.js +4 -9
  21. package/build/components/post-publish-button/index.js.map +1 -1
  22. package/build/components/post-publish-button/label.js +2 -4
  23. package/build/components/post-publish-button/label.js.map +1 -1
  24. package/build/components/post-publish-panel/index.js +1 -3
  25. package/build/components/post-publish-panel/index.js.map +1 -1
  26. package/build/components/post-saved-state/index.js +2 -5
  27. package/build/components/post-saved-state/index.js.map +1 -1
  28. package/build/components/post-schedule/label.js +4 -4
  29. package/build/components/post-schedule/label.js.map +1 -1
  30. package/build/components/post-sync-status/index.js +84 -5
  31. package/build/components/post-sync-status/index.js.map +1 -1
  32. package/build/components/post-text-editor/index.js +51 -58
  33. package/build/components/post-text-editor/index.js.map +1 -1
  34. package/build/components/post-type-support-check/index.js +10 -14
  35. package/build/components/post-type-support-check/index.js.map +1 -1
  36. package/build/hooks/custom-sources-backwards-compatibility.js +1 -24
  37. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  38. package/build/store/actions.js +37 -3
  39. package/build/store/actions.js.map +1 -1
  40. package/build/store/selectors.js +55 -63
  41. package/build/store/selectors.js.map +1 -1
  42. package/build-module/components/entities-saved-states/entity-record-item.js +6 -40
  43. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  44. package/build-module/components/entities-saved-states/entity-type-list.js +2 -4
  45. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  46. package/build-module/components/entities-saved-states/index.js +0 -1
  47. package/build-module/components/entities-saved-states/index.js.map +1 -1
  48. package/build-module/components/global-keyboard-shortcuts/{save-shortcut.js → index.js} +12 -23
  49. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -0
  50. package/build-module/components/index.js +9 -4
  51. package/build-module/components/index.js.map +1 -1
  52. package/build-module/components/post-comments/index.js +13 -14
  53. package/build-module/components/post-comments/index.js.map +1 -1
  54. package/build-module/components/post-excerpt/index.js +10 -19
  55. package/build-module/components/post-excerpt/index.js.map +1 -1
  56. package/build-module/components/post-pingbacks/index.js +13 -14
  57. package/build-module/components/post-pingbacks/index.js.map +1 -1
  58. package/build-module/components/post-preview-button/index.js +63 -149
  59. package/build-module/components/post-preview-button/index.js.map +1 -1
  60. package/build-module/components/post-publish-button/index.js +4 -9
  61. package/build-module/components/post-publish-button/index.js.map +1 -1
  62. package/build-module/components/post-publish-button/label.js +2 -4
  63. package/build-module/components/post-publish-button/label.js.map +1 -1
  64. package/build-module/components/post-publish-panel/index.js +1 -3
  65. package/build-module/components/post-publish-panel/index.js.map +1 -1
  66. package/build-module/components/post-saved-state/index.js +2 -5
  67. package/build-module/components/post-saved-state/index.js.map +1 -1
  68. package/build-module/components/post-schedule/label.js +4 -4
  69. package/build-module/components/post-schedule/label.js.map +1 -1
  70. package/build-module/components/post-sync-status/index.js +84 -8
  71. package/build-module/components/post-sync-status/index.js.map +1 -1
  72. package/build-module/components/post-text-editor/index.js +48 -56
  73. package/build-module/components/post-text-editor/index.js.map +1 -1
  74. package/build-module/components/post-type-support-check/index.js +11 -14
  75. package/build-module/components/post-type-support-check/index.js.map +1 -1
  76. package/build-module/hooks/custom-sources-backwards-compatibility.js +2 -24
  77. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  78. package/build-module/store/actions.js +31 -1
  79. package/build-module/store/actions.js.map +1 -1
  80. package/build-module/store/selectors.js +48 -57
  81. package/build-module/store/selectors.js.map +1 -1
  82. package/build-style/style-rtl.css +0 -18
  83. package/build-style/style.css +0 -18
  84. package/package.json +30 -30
  85. package/src/components/entities-saved-states/entity-record-item.js +3 -61
  86. package/src/components/entities-saved-states/entity-type-list.js +0 -2
  87. package/src/components/entities-saved-states/index.js +0 -1
  88. package/src/components/entities-saved-states/style.scss +0 -15
  89. package/src/components/global-keyboard-shortcuts/index.js +49 -0
  90. package/src/components/index.js +12 -3
  91. package/src/components/post-author/test/check.js +18 -12
  92. package/src/components/post-comments/index.js +11 -17
  93. package/src/components/post-excerpt/index.js +10 -16
  94. package/src/components/post-pingbacks/index.js +11 -15
  95. package/src/components/post-preview-button/index.js +73 -156
  96. package/src/components/post-preview-button/test/index.js +94 -158
  97. package/src/components/post-publish-button/index.js +2 -7
  98. package/src/components/post-publish-button/label.js +2 -2
  99. package/src/components/post-publish-button/test/index.js +0 -10
  100. package/src/components/post-publish-panel/index.js +1 -3
  101. package/src/components/post-saved-state/index.js +2 -5
  102. package/src/components/post-schedule/label.js +4 -4
  103. package/src/components/post-sync-status/index.js +100 -7
  104. package/src/components/post-text-editor/index.js +34 -57
  105. package/src/components/post-title/style.native.scss +5 -5
  106. package/src/components/post-type-support-check/index.js +8 -10
  107. package/src/components/post-type-support-check/test/index.js +35 -19
  108. package/src/hooks/custom-sources-backwards-compatibility.js +1 -25
  109. package/src/store/actions.js +34 -2
  110. package/src/store/selectors.js +47 -43
  111. package/src/store/test/selectors.js +49 -38
  112. package/build/components/global-keyboard-shortcuts/save-shortcut.js.map +0 -1
  113. package/build/components/global-keyboard-shortcuts/text-editor-shortcuts.js +0 -22
  114. package/build/components/global-keyboard-shortcuts/text-editor-shortcuts.js.map +0 -1
  115. package/build/components/global-keyboard-shortcuts/visual-editor-shortcuts.js +0 -45
  116. package/build/components/global-keyboard-shortcuts/visual-editor-shortcuts.js.map +0 -1
  117. package/build-module/components/global-keyboard-shortcuts/save-shortcut.js.map +0 -1
  118. package/build-module/components/global-keyboard-shortcuts/text-editor-shortcuts.js +0 -12
  119. package/build-module/components/global-keyboard-shortcuts/text-editor-shortcuts.js.map +0 -1
  120. package/build-module/components/global-keyboard-shortcuts/visual-editor-shortcuts.js +0 -32
  121. package/build-module/components/global-keyboard-shortcuts/visual-editor-shortcuts.js.map +0 -1
  122. package/src/components/global-keyboard-shortcuts/save-shortcut.js +0 -55
  123. package/src/components/global-keyboard-shortcuts/text-editor-shortcuts.js +0 -8
  124. package/src/components/global-keyboard-shortcuts/visual-editor-shortcuts.js +0 -29
  125. package/src/components/post-text-editor/test/index.js +0 -156
@@ -1,18 +1,12 @@
1
1
  import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
- /**
4
- * External dependencies
5
- */
6
- import classnames from 'classnames';
7
3
  /**
8
4
  * WordPress dependencies
9
5
  */
10
-
11
- import { Component, createRef, renderToString } from '@wordpress/element';
6
+ import { renderToString } from '@wordpress/element';
12
7
  import { Button, Path, SVG, VisuallyHidden } from '@wordpress/components';
13
8
  import { __, _x } from '@wordpress/i18n';
14
- import { withSelect, withDispatch } from '@wordpress/data';
15
- import { ifCondition, compose } from '@wordpress/compose';
9
+ import { useSelect, useDispatch } from '@wordpress/data';
16
10
  import { applyFilters } from '@wordpress/hooks';
17
11
  import { store as coreStore } from '@wordpress/core-data';
18
12
  /**
@@ -102,54 +96,44 @@ function writeInterstitialMessage(targetDocument) {
102
96
  targetDocument.close();
103
97
  }
104
98
 
105
- export class PostPreviewButton extends Component {
106
- constructor() {
107
- super(...arguments);
108
- this.buttonRef = createRef();
109
- this.openPreviewWindow = this.openPreviewWindow.bind(this);
110
- }
111
-
112
- componentDidUpdate(prevProps) {
113
- const {
114
- previewLink
115
- } = this.props; // This relies on the window being responsible to unset itself when
116
- // navigation occurs or a new preview window is opened, to avoid
117
- // unintentional forceful redirects.
118
-
119
- if (previewLink && !prevProps.previewLink) {
120
- this.setPreviewWindowLink(previewLink);
121
- }
122
- }
123
- /**
124
- * Sets the preview window's location to the given URL, if a preview window
125
- * exists and is not closed.
126
- *
127
- * @param {string} url URL to assign as preview window location.
128
- */
129
-
130
-
131
- setPreviewWindowLink(url) {
132
- const {
133
- previewWindow
134
- } = this;
135
-
136
- if (previewWindow && !previewWindow.closed) {
137
- previewWindow.location = url;
99
+ export default function PostPreviewButton({
100
+ className,
101
+ textContent,
102
+ forceIsAutosaveable,
103
+ role,
104
+ onPreview
105
+ }) {
106
+ const {
107
+ postId,
108
+ currentPostLink,
109
+ previewLink,
110
+ isSaveable,
111
+ isViewable
112
+ } = useSelect(select => {
113
+ var _postType$viewable;
114
+
115
+ const editor = select(editorStore);
116
+ const core = select(coreStore);
117
+ const postType = core.getPostType(editor.getCurrentPostType('type'));
118
+ return {
119
+ postId: editor.getCurrentPostId(),
120
+ currentPostLink: editor.getCurrentPostAttribute('link'),
121
+ previewLink: editor.getEditedPostPreviewLink(),
122
+ isSaveable: editor.isEditedPostSaveable(),
123
+ isViewable: (_postType$viewable = postType?.viewable) !== null && _postType$viewable !== void 0 ? _postType$viewable : false
124
+ };
125
+ }, []);
126
+ const {
127
+ __unstableSaveForPreview
128
+ } = useDispatch(editorStore);
138
129
 
139
- if (this.buttonRef.current) {
140
- this.buttonRef.current.focus();
141
- }
142
- }
130
+ if (!isViewable) {
131
+ return null;
143
132
  }
144
133
 
145
- getWindowTarget() {
146
- const {
147
- postId
148
- } = this.props;
149
- return `wp-preview-${postId}`;
150
- }
134
+ const targetId = `wp-preview-${postId}`;
151
135
 
152
- openPreviewWindow(event) {
136
+ const openPreviewWindow = async event => {
153
137
  // Our Preview button has its 'href' and 'target' set correctly for a11y
154
138
  // purposes. Unfortunately, though, we can't rely on the default 'click'
155
139
  // handler since sometimes it incorrectly opens a new tab instead of reusing
@@ -157,105 +141,35 @@ export class PostPreviewButton extends Component {
157
141
  // https://github.com/WordPress/gutenberg/pull/8330
158
142
  event.preventDefault(); // Open up a Preview tab if needed. This is where we'll show the preview.
159
143
 
160
- if (!this.previewWindow || this.previewWindow.closed) {
161
- this.previewWindow = window.open('', this.getWindowTarget());
162
- } // Focus the Preview tab. This might not do anything, depending on the browser's
144
+ const previewWindow = window.open('', targetId); // Focus the Preview tab. This might not do anything, depending on the browser's
163
145
  // and user's preferences.
164
146
  // https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus
165
147
 
166
-
167
- this.previewWindow.focus();
168
-
169
- if ( // If we don't need to autosave the post before previewing, then we simply
170
- // load the Preview URL in the Preview tab.
171
- !this.props.isAutosaveable || // Do not save or overwrite the post, if the post is already locked.
172
- this.props.isPostLocked) {
173
- this.setPreviewWindowLink(event.target.href);
174
- return;
175
- } // Request an autosave. This happens asynchronously and causes the component
176
- // to update when finished.
177
-
178
-
179
- if (this.props.isDraft) {
180
- this.props.savePost({
181
- isPreview: true
182
- });
183
- } else {
184
- this.props.autosave({
185
- isPreview: true
186
- });
187
- } // Display a 'Generating preview' message in the Preview tab while we wait for the
188
- // autosave to finish.
189
-
190
-
191
- writeInterstitialMessage(this.previewWindow.document);
192
- }
193
-
194
- render() {
195
- const {
196
- previewLink,
197
- currentPostLink,
198
- isSaveable,
199
- role
200
- } = this.props; // Link to the `?preview=true` URL if we have it, since this lets us see
201
- // changes that were autosaved since the post was last published. Otherwise,
202
- // just link to the post's URL.
203
-
204
- const href = previewLink || currentPostLink;
205
- const classNames = classnames({
206
- 'editor-post-preview': !this.props.className
207
- }, this.props.className);
208
- return createElement(Button, {
209
- variant: !this.props.className ? 'tertiary' : undefined,
210
- className: classNames,
211
- href: href,
212
- target: this.getWindowTarget(),
213
- disabled: !isSaveable,
214
- onClick: this.openPreviewWindow,
215
- ref: this.buttonRef,
216
- role: role
217
- }, this.props.textContent ? this.props.textContent : createElement(Fragment, null, _x('Preview', 'imperative verb'), createElement(VisuallyHidden, {
218
- as: "span"
219
- },
220
- /* translators: accessibility text */
221
- __('(opens in a new tab)'))));
222
- }
223
-
148
+ previewWindow.focus();
149
+ writeInterstitialMessage(previewWindow.document);
150
+ const link = await __unstableSaveForPreview({
151
+ forceIsAutosaveable
152
+ });
153
+ previewWindow.location = link;
154
+ onPreview?.();
155
+ }; // Link to the `?preview=true` URL if we have it, since this lets us see
156
+ // changes that were autosaved since the post was last published. Otherwise,
157
+ // just link to the post's URL.
158
+
159
+
160
+ const href = previewLink || currentPostLink;
161
+ return createElement(Button, {
162
+ variant: !className ? 'tertiary' : undefined,
163
+ className: className || 'editor-post-preview',
164
+ href: href,
165
+ target: targetId,
166
+ disabled: !isSaveable,
167
+ onClick: openPreviewWindow,
168
+ role: role
169
+ }, textContent || createElement(Fragment, null, _x('Preview', 'imperative verb'), createElement(VisuallyHidden, {
170
+ as: "span"
171
+ },
172
+ /* translators: accessibility text */
173
+ __('(opens in a new tab)'))));
224
174
  }
225
- export default compose([withSelect((select, {
226
- forcePreviewLink,
227
- forceIsAutosaveable
228
- }) => {
229
- var _postType$viewable;
230
-
231
- const {
232
- getCurrentPostId,
233
- getCurrentPostAttribute,
234
- getEditedPostAttribute,
235
- isEditedPostSaveable,
236
- isEditedPostAutosaveable,
237
- getEditedPostPreviewLink,
238
- isPostLocked
239
- } = select(editorStore);
240
- const {
241
- getPostType
242
- } = select(coreStore);
243
- const previewLink = getEditedPostPreviewLink();
244
- const postType = getPostType(getEditedPostAttribute('type'));
245
- return {
246
- postId: getCurrentPostId(),
247
- currentPostLink: getCurrentPostAttribute('link'),
248
- previewLink: forcePreviewLink !== undefined ? forcePreviewLink : previewLink,
249
- isSaveable: isEditedPostSaveable(),
250
- isAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),
251
- isViewable: (_postType$viewable = postType?.viewable) !== null && _postType$viewable !== void 0 ? _postType$viewable : false,
252
- isDraft: ['draft', 'auto-draft'].indexOf(getEditedPostAttribute('status')) !== -1,
253
- isPostLocked: isPostLocked()
254
- };
255
- }), withDispatch(dispatch => ({
256
- autosave: dispatch(editorStore).autosave,
257
- savePost: dispatch(editorStore).savePost
258
- })), ifCondition(({
259
- isViewable
260
- }) => isViewable)])(PostPreviewButton);
261
175
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-preview-button/index.js"],"names":["classnames","Component","createRef","renderToString","Button","Path","SVG","VisuallyHidden","__","_x","withSelect","withDispatch","ifCondition","compose","applyFilters","store","coreStore","editorStore","writeInterstitialMessage","targetDocument","markup","write","title","close","PostPreviewButton","constructor","arguments","buttonRef","openPreviewWindow","bind","componentDidUpdate","prevProps","previewLink","props","setPreviewWindowLink","url","previewWindow","closed","location","current","focus","getWindowTarget","postId","event","preventDefault","window","open","isAutosaveable","isPostLocked","target","href","isDraft","savePost","isPreview","autosave","document","render","currentPostLink","isSaveable","role","classNames","className","undefined","textContent","select","forcePreviewLink","forceIsAutosaveable","getCurrentPostId","getCurrentPostAttribute","getEditedPostAttribute","isEditedPostSaveable","isEditedPostAutosaveable","getEditedPostPreviewLink","getPostType","postType","isViewable","viewable","indexOf","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, renderToString } from '@wordpress/element';\nimport { Button, Path, SVG, VisuallyHidden } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ifCondition, compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction writeInterstitialMessage( targetDocument ) {\n\tlet markup = renderToString(\n\t\t<div className=\"editor-post-preview-button__interstitial-message\">\n\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"outer\"\n\t\t\t\t\td=\"M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"inner\"\n\t\t\t\t\td=\"M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t\t<p>{ __( 'Generating preview…' ) }</p>\n\t\t</div>\n\t);\n\n\tmarkup += `\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\twidth: 100vw;\n\t\t\t}\n\t\t\t@-webkit-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-moz-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-o-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg {\n\t\t\t\twidth: 192px;\n\t\t\t\theight: 192px;\n\t\t\t\tstroke: #555d66;\n\t\t\t\tstroke-width: 0.75;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg .outer,\n\t\t\t.editor-post-preview-button__interstitial-message svg .inner {\n\t\t\t\tstroke-dasharray: 280;\n\t\t\t\tstroke-dashoffset: 280;\n\t\t\t\t-webkit-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-moz-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-o-animation: paint 1.5s ease infinite alternate;\n\t\t\t\tanimation: paint 1.5s ease infinite alternate;\n\t\t\t}\n\t\t\tp {\n\t\t\t\ttext-align: center;\n\t\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\t\t}\n\t\t</style>\n\t`;\n\n\t/**\n\t * Filters the interstitial message shown when generating previews.\n\t *\n\t * @param {string} markup The preview interstitial markup.\n\t */\n\tmarkup = applyFilters( 'editor.PostPreview.interstitialMarkup', markup );\n\n\ttargetDocument.write( markup );\n\ttargetDocument.title = __( 'Generating preview…' );\n\ttargetDocument.close();\n}\n\nexport class PostPreviewButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.buttonRef = createRef();\n\n\t\tthis.openPreviewWindow = this.openPreviewWindow.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { previewLink } = this.props;\n\t\t// This relies on the window being responsible to unset itself when\n\t\t// navigation occurs or a new preview window is opened, to avoid\n\t\t// unintentional forceful redirects.\n\t\tif ( previewLink && ! prevProps.previewLink ) {\n\t\t\tthis.setPreviewWindowLink( previewLink );\n\t\t}\n\t}\n\n\t/**\n\t * Sets the preview window's location to the given URL, if a preview window\n\t * exists and is not closed.\n\t *\n\t * @param {string} url URL to assign as preview window location.\n\t */\n\tsetPreviewWindowLink( url ) {\n\t\tconst { previewWindow } = this;\n\n\t\tif ( previewWindow && ! previewWindow.closed ) {\n\t\t\tpreviewWindow.location = url;\n\t\t\tif ( this.buttonRef.current ) {\n\t\t\t\tthis.buttonRef.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetWindowTarget() {\n\t\tconst { postId } = this.props;\n\t\treturn `wp-preview-${ postId }`;\n\t}\n\n\topenPreviewWindow( event ) {\n\t\t// Our Preview button has its 'href' and 'target' set correctly for a11y\n\t\t// purposes. Unfortunately, though, we can't rely on the default 'click'\n\t\t// handler since sometimes it incorrectly opens a new tab instead of reusing\n\t\t// the existing one.\n\t\t// https://github.com/WordPress/gutenberg/pull/8330\n\t\tevent.preventDefault();\n\n\t\t// Open up a Preview tab if needed. This is where we'll show the preview.\n\t\tif ( ! this.previewWindow || this.previewWindow.closed ) {\n\t\t\tthis.previewWindow = window.open( '', this.getWindowTarget() );\n\t\t}\n\n\t\t// Focus the Preview tab. This might not do anything, depending on the browser's\n\t\t// and user's preferences.\n\t\t// https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus\n\t\tthis.previewWindow.focus();\n\n\t\tif (\n\t\t\t// If we don't need to autosave the post before previewing, then we simply\n\t\t\t// load the Preview URL in the Preview tab.\n\t\t\t! this.props.isAutosaveable ||\n\t\t\t// Do not save or overwrite the post, if the post is already locked.\n\t\t\tthis.props.isPostLocked\n\t\t) {\n\t\t\tthis.setPreviewWindowLink( event.target.href );\n\t\t\treturn;\n\t\t}\n\n\t\t// Request an autosave. This happens asynchronously and causes the component\n\t\t// to update when finished.\n\t\tif ( this.props.isDraft ) {\n\t\t\tthis.props.savePost( { isPreview: true } );\n\t\t} else {\n\t\t\tthis.props.autosave( { isPreview: true } );\n\t\t}\n\n\t\t// Display a 'Generating preview' message in the Preview tab while we wait for the\n\t\t// autosave to finish.\n\t\twriteInterstitialMessage( this.previewWindow.document );\n\t}\n\n\trender() {\n\t\tconst { previewLink, currentPostLink, isSaveable, role } = this.props;\n\n\t\t// Link to the `?preview=true` URL if we have it, since this lets us see\n\t\t// changes that were autosaved since the post was last published. Otherwise,\n\t\t// just link to the post's URL.\n\t\tconst href = previewLink || currentPostLink;\n\n\t\tconst classNames = classnames(\n\t\t\t{\n\t\t\t\t'editor-post-preview': ! this.props.className,\n\t\t\t},\n\t\t\tthis.props.className\n\t\t);\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tvariant={ ! this.props.className ? 'tertiary' : undefined }\n\t\t\t\tclassName={ classNames }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ this.getWindowTarget() }\n\t\t\t\tdisabled={ ! isSaveable }\n\t\t\t\tonClick={ this.openPreviewWindow }\n\t\t\t\tref={ this.buttonRef }\n\t\t\t\trole={ role }\n\t\t\t>\n\t\t\t\t{ this.props.textContent ? (\n\t\t\t\t\tthis.props.textContent\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ _x( 'Preview', 'imperative verb' ) }\n\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { forcePreviewLink, forceIsAutosaveable } ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostAttribute,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostAutosaveable,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tisPostLocked,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\tconst previewLink = getEditedPostPreviewLink();\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tcurrentPostLink: getCurrentPostAttribute( 'link' ),\n\t\t\tpreviewLink:\n\t\t\t\tforcePreviewLink !== undefined ? forcePreviewLink : previewLink,\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),\n\t\t\tisViewable: postType?.viewable ?? false,\n\t\t\tisDraft:\n\t\t\t\t[ 'draft', 'auto-draft' ].indexOf(\n\t\t\t\t\tgetEditedPostAttribute( 'status' )\n\t\t\t\t) !== -1,\n\t\t\tisPostLocked: isPostLocked(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tautosave: dispatch( editorStore ).autosave,\n\t\tsavePost: dispatch( editorStore ).savePost,\n\t} ) ),\n\tifCondition( ( { isViewable } ) => isViewable ),\n] )( PostPreviewButton );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-preview-button/index.js"],"names":["renderToString","Button","Path","SVG","VisuallyHidden","__","_x","useSelect","useDispatch","applyFilters","store","coreStore","editorStore","writeInterstitialMessage","targetDocument","markup","write","title","close","PostPreviewButton","className","textContent","forceIsAutosaveable","role","onPreview","postId","currentPostLink","previewLink","isSaveable","isViewable","select","editor","core","postType","getPostType","getCurrentPostType","getCurrentPostId","getCurrentPostAttribute","getEditedPostPreviewLink","isEditedPostSaveable","viewable","__unstableSaveForPreview","targetId","openPreviewWindow","event","preventDefault","previewWindow","window","open","focus","document","link","location","href","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { renderToString } from '@wordpress/element';\nimport { Button, Path, SVG, VisuallyHidden } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction writeInterstitialMessage( targetDocument ) {\n\tlet markup = renderToString(\n\t\t<div className=\"editor-post-preview-button__interstitial-message\">\n\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"outer\"\n\t\t\t\t\td=\"M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"inner\"\n\t\t\t\t\td=\"M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t\t<p>{ __( 'Generating preview…' ) }</p>\n\t\t</div>\n\t);\n\n\tmarkup += `\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\twidth: 100vw;\n\t\t\t}\n\t\t\t@-webkit-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-moz-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-o-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg {\n\t\t\t\twidth: 192px;\n\t\t\t\theight: 192px;\n\t\t\t\tstroke: #555d66;\n\t\t\t\tstroke-width: 0.75;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg .outer,\n\t\t\t.editor-post-preview-button__interstitial-message svg .inner {\n\t\t\t\tstroke-dasharray: 280;\n\t\t\t\tstroke-dashoffset: 280;\n\t\t\t\t-webkit-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-moz-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-o-animation: paint 1.5s ease infinite alternate;\n\t\t\t\tanimation: paint 1.5s ease infinite alternate;\n\t\t\t}\n\t\t\tp {\n\t\t\t\ttext-align: center;\n\t\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\t\t}\n\t\t</style>\n\t`;\n\n\t/**\n\t * Filters the interstitial message shown when generating previews.\n\t *\n\t * @param {string} markup The preview interstitial markup.\n\t */\n\tmarkup = applyFilters( 'editor.PostPreview.interstitialMarkup', markup );\n\n\ttargetDocument.write( markup );\n\ttargetDocument.title = __( 'Generating preview…' );\n\ttargetDocument.close();\n}\n\nexport default function PostPreviewButton( {\n\tclassName,\n\ttextContent,\n\tforceIsAutosaveable,\n\trole,\n\tonPreview,\n} ) {\n\tconst { postId, currentPostLink, previewLink, isSaveable, isViewable } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst editor = select( editorStore );\n\t\t\tconst core = select( coreStore );\n\n\t\t\tconst postType = core.getPostType(\n\t\t\t\teditor.getCurrentPostType( 'type' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tpostId: editor.getCurrentPostId(),\n\t\t\t\tcurrentPostLink: editor.getCurrentPostAttribute( 'link' ),\n\t\t\t\tpreviewLink: editor.getEditedPostPreviewLink(),\n\t\t\t\tisSaveable: editor.isEditedPostSaveable(),\n\t\t\t\tisViewable: postType?.viewable ?? false,\n\t\t\t};\n\t\t}, [] );\n\n\tconst { __unstableSaveForPreview } = useDispatch( editorStore );\n\n\tif ( ! isViewable ) {\n\t\treturn null;\n\t}\n\n\tconst targetId = `wp-preview-${ postId }`;\n\n\tconst openPreviewWindow = async ( event ) => {\n\t\t// Our Preview button has its 'href' and 'target' set correctly for a11y\n\t\t// purposes. Unfortunately, though, we can't rely on the default 'click'\n\t\t// handler since sometimes it incorrectly opens a new tab instead of reusing\n\t\t// the existing one.\n\t\t// https://github.com/WordPress/gutenberg/pull/8330\n\t\tevent.preventDefault();\n\n\t\t// Open up a Preview tab if needed. This is where we'll show the preview.\n\t\tconst previewWindow = window.open( '', targetId );\n\n\t\t// Focus the Preview tab. This might not do anything, depending on the browser's\n\t\t// and user's preferences.\n\t\t// https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus\n\t\tpreviewWindow.focus();\n\n\t\twriteInterstitialMessage( previewWindow.document );\n\n\t\tconst link = await __unstableSaveForPreview( { forceIsAutosaveable } );\n\n\t\tpreviewWindow.location = link;\n\n\t\tonPreview?.();\n\t};\n\n\t// Link to the `?preview=true` URL if we have it, since this lets us see\n\t// changes that were autosaved since the post was last published. Otherwise,\n\t// just link to the post's URL.\n\tconst href = previewLink || currentPostLink;\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ ! className ? 'tertiary' : undefined }\n\t\t\tclassName={ className || 'editor-post-preview' }\n\t\t\thref={ href }\n\t\t\ttarget={ targetId }\n\t\t\tdisabled={ ! isSaveable }\n\t\t\tonClick={ openPreviewWindow }\n\t\t\trole={ role }\n\t\t>\n\t\t\t{ textContent || (\n\t\t\t\t<>\n\t\t\t\t\t{ _x( 'Preview', 'imperative verb' ) }\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n"]}
@@ -99,7 +99,6 @@ export class PostPublishButton extends Component {
99
99
  render() {
100
100
  const {
101
101
  forceIsDirty,
102
- forceIsSaving,
103
102
  hasPublishAction,
104
103
  isBeingScheduled,
105
104
  isOpen,
@@ -118,8 +117,8 @@ export class PostPublishButton extends Component {
118
117
  hasNonPostEntityChanges,
119
118
  isSavingNonPostEntityChanges
120
119
  } = this.props;
121
- const isButtonDisabled = (isSaving || forceIsSaving || !isSaveable || isPostSavingLocked || !isPublishable && !forceIsDirty) && (!hasNonPostEntityChanges || isSavingNonPostEntityChanges);
122
- const isToggleDisabled = (isPublished || isSaving || forceIsSaving || !isSaveable || !isPublishable && !forceIsDirty) && (!hasNonPostEntityChanges || isSavingNonPostEntityChanges);
120
+ const isButtonDisabled = (isSaving || !isSaveable || isPostSavingLocked || !isPublishable && !forceIsDirty) && (!hasNonPostEntityChanges || isSavingNonPostEntityChanges);
121
+ const isToggleDisabled = (isPublished || isSaving || !isSaveable || !isPublishable && !forceIsDirty) && (!hasNonPostEntityChanges || isSavingNonPostEntityChanges);
123
122
  let publishStatus;
124
123
 
125
124
  if (!hasPublishAction) {
@@ -167,7 +166,6 @@ export class PostPublishButton extends Component {
167
166
  };
168
167
  const toggleChildren = isBeingScheduled ? __('Schedule…') : __('Publish');
169
168
  const buttonChildren = createElement(PublishButtonLabel, {
170
- forceIsSaving: forceIsSaving,
171
169
  hasNonPostEntityChanges: hasNonPostEntityChanges
172
170
  });
173
171
  const componentProps = isToggle ? toggleProps : buttonProps;
@@ -200,12 +198,9 @@ export default compose([withSelect(select => {
200
198
  hasNonPostEntityChanges,
201
199
  isSavingNonPostEntityChanges
202
200
  } = select(editorStore);
203
-
204
- const _isAutoSaving = isAutosavingPost();
205
-
206
201
  return {
207
- isSaving: isSavingPost() || _isAutoSaving,
208
- isAutoSaving: _isAutoSaving,
202
+ isSaving: isSavingPost(),
203
+ isAutoSaving: isAutosavingPost(),
209
204
  isBeingScheduled: isEditedPostBeingScheduled(),
210
205
  visibility: getEditedPostVisibility(),
211
206
  isSaveable: isEditedPostSaveable(),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"names":["classnames","Button","Component","createRef","withSelect","withDispatch","compose","__","PublishButtonLabel","store","editorStore","noop","PostPublishButton","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","forceIsSaving","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","toggleChildren","buttonChildren","componentProps","componentChildren","select","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","_isAutoSaving","_links","dispatch","editPost","savePost","status","undoIgnore"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _isAutoSaving = isAutosavingPost();\n\t\treturn {\n\t\t\tisSaving: isSavingPost() || _isAutoSaving,\n\t\t\tisAutoSaving: _isAutoSaving,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"names":["classnames","Button","Component","createRef","withSelect","withDispatch","compose","__","PublishButtonLabel","store","editorStore","noop","PostPublishButton","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","toggleChildren","buttonChildren","componentProps","componentChildren","select","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","_links","dispatch","editPost","savePost","status","undoIgnore"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisAutoSaving: isAutosavingPost(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"]}
@@ -39,9 +39,7 @@ export function PublishButtonLabel({
39
39
 
40
40
  return __('Publish');
41
41
  }
42
- export default compose([withSelect((select, {
43
- forceIsSaving
44
- }) => {
42
+ export default compose([withSelect(select => {
45
43
  var _getCurrentPost$_link;
46
44
 
47
45
  const {
@@ -56,7 +54,7 @@ export default compose([withSelect((select, {
56
54
  return {
57
55
  isPublished: isCurrentPostPublished(),
58
56
  isBeingScheduled: isEditedPostBeingScheduled(),
59
- isSaving: forceIsSaving || isSavingPost(),
57
+ isSaving: isSavingPost(),
60
58
  isPublishing: isPublishingPost(),
61
59
  hasPublishAction: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
62
60
  postType: getCurrentPostType(),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/label.js"],"names":["__","compose","withSelect","store","editorStore","PublishButtonLabel","isPublished","isBeingScheduled","isSaving","isPublishing","hasPublishAction","isAutosaving","hasNonPostEntityChanges","select","forceIsSaving","isCurrentPostPublished","isEditedPostBeingScheduled","isSavingPost","isPublishingPost","getCurrentPost","getCurrentPostType","isAutosavingPost","_links","postType"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,kBAAT,CAA6B;AACnCC,EAAAA,WADmC;AAEnCC,EAAAA,gBAFmC;AAGnCC,EAAAA,QAHmC;AAInCC,EAAAA,YAJmC;AAKnCC,EAAAA,gBALmC;AAMnCC,EAAAA,YANmC;AAOnCC,EAAAA;AAPmC,CAA7B,EAQH;AACH,MAAKH,YAAL,EAAoB;AACnB;AACA,WAAOT,EAAE,CAAE,aAAF,CAAT;AACA,GAHD,MAGO,IAAKM,WAAW,IAAIE,QAAf,IAA2B,CAAEG,YAAlC,EAAiD;AACvD;AACA,WAAOX,EAAE,CAAE,WAAF,CAAT;AACA,GAHM,MAGA,IAAKO,gBAAgB,IAAIC,QAApB,IAAgC,CAAEG,YAAvC,EAAsD;AAC5D;AACA,WAAOX,EAAE,CAAE,aAAF,CAAT;AACA;;AAED,MAAK,CAAEU,gBAAP,EAA0B;AACzB,WAAOE,uBAAuB,GAC3BZ,EAAE,CAAE,oBAAF,CADyB,GAE3BA,EAAE,CAAE,mBAAF,CAFL;AAGA,GAJD,MAIO,IAAKM,WAAL,EAAmB;AACzB,WAAOM,uBAAuB,GAAGZ,EAAE,CAAE,SAAF,CAAL,GAAqBA,EAAE,CAAE,QAAF,CAArD;AACA,GAFM,MAEA,IAAKO,gBAAL,EAAwB;AAC9B,WAAOK,uBAAuB,GAAGZ,EAAE,CAAE,WAAF,CAAL,GAAuBA,EAAE,CAAE,UAAF,CAAvD;AACA;;AAED,SAAOA,EAAE,CAAE,SAAF,CAAT;AACA;AAED,eAAeC,OAAO,CAAE,CACvBC,UAAU,CAAE,CAAEW,MAAF,EAAU;AAAEC,EAAAA;AAAF,CAAV,KAAiC;AAAA;;AAC5C,QAAM;AACLC,IAAAA,sBADK;AAELC,IAAAA,0BAFK;AAGLC,IAAAA,YAHK;AAILC,IAAAA,gBAJK;AAKLC,IAAAA,cALK;AAMLC,IAAAA,kBANK;AAOLC,IAAAA;AAPK,MAQFR,MAAM,CAAET,WAAF,CARV;AASA,SAAO;AACNE,IAAAA,WAAW,EAAES,sBAAsB,EAD7B;AAENR,IAAAA,gBAAgB,EAAES,0BAA0B,EAFtC;AAGNR,IAAAA,QAAQ,EAAEM,aAAa,IAAIG,YAAY,EAHjC;AAINR,IAAAA,YAAY,EAAES,gBAAgB,EAJxB;AAKNR,IAAAA,gBAAgB,2BACfS,cAAc,GAAGG,MAAjB,GAA2B,mBAA3B,CADe,yEACqC,KAN/C;AAONC,IAAAA,QAAQ,EAAEH,kBAAkB,EAPtB;AAQNT,IAAAA,YAAY,EAAEU,gBAAgB;AARxB,GAAP;AAUA,CApBS,CADa,CAAF,CAAP,CAsBVhB,kBAtBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PublishButtonLabel( {\n\tisPublished,\n\tisBeingScheduled,\n\tisSaving,\n\tisPublishing,\n\thasPublishAction,\n\tisAutosaving,\n\thasNonPostEntityChanges,\n} ) {\n\tif ( isPublishing ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Publishing…' );\n\t} else if ( isPublished && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Updating…' );\n\t} else if ( isBeingScheduled && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Scheduling…' );\n\t}\n\n\tif ( ! hasPublishAction ) {\n\t\treturn hasNonPostEntityChanges\n\t\t\t? __( 'Submit for Review…' )\n\t\t\t: __( 'Submit for Review' );\n\t} else if ( isPublished ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Update…' ) : __( 'Update' );\n\t} else if ( isBeingScheduled ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Schedule…' ) : __( 'Schedule' );\n\t}\n\n\treturn __( 'Publish' );\n}\n\nexport default compose( [\n\twithSelect( ( select, { forceIsSaving } ) => {\n\t\tconst {\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisSavingPost,\n\t\t\tisPublishingPost,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tisAutosavingPost,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\t\tisPublishing: isPublishingPost(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tisAutosaving: isAutosavingPost(),\n\t\t};\n\t} ),\n] )( PublishButtonLabel );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/label.js"],"names":["__","compose","withSelect","store","editorStore","PublishButtonLabel","isPublished","isBeingScheduled","isSaving","isPublishing","hasPublishAction","isAutosaving","hasNonPostEntityChanges","select","isCurrentPostPublished","isEditedPostBeingScheduled","isSavingPost","isPublishingPost","getCurrentPost","getCurrentPostType","isAutosavingPost","_links","postType"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,kBAAT,CAA6B;AACnCC,EAAAA,WADmC;AAEnCC,EAAAA,gBAFmC;AAGnCC,EAAAA,QAHmC;AAInCC,EAAAA,YAJmC;AAKnCC,EAAAA,gBALmC;AAMnCC,EAAAA,YANmC;AAOnCC,EAAAA;AAPmC,CAA7B,EAQH;AACH,MAAKH,YAAL,EAAoB;AACnB;AACA,WAAOT,EAAE,CAAE,aAAF,CAAT;AACA,GAHD,MAGO,IAAKM,WAAW,IAAIE,QAAf,IAA2B,CAAEG,YAAlC,EAAiD;AACvD;AACA,WAAOX,EAAE,CAAE,WAAF,CAAT;AACA,GAHM,MAGA,IAAKO,gBAAgB,IAAIC,QAApB,IAAgC,CAAEG,YAAvC,EAAsD;AAC5D;AACA,WAAOX,EAAE,CAAE,aAAF,CAAT;AACA;;AAED,MAAK,CAAEU,gBAAP,EAA0B;AACzB,WAAOE,uBAAuB,GAC3BZ,EAAE,CAAE,oBAAF,CADyB,GAE3BA,EAAE,CAAE,mBAAF,CAFL;AAGA,GAJD,MAIO,IAAKM,WAAL,EAAmB;AACzB,WAAOM,uBAAuB,GAAGZ,EAAE,CAAE,SAAF,CAAL,GAAqBA,EAAE,CAAE,QAAF,CAArD;AACA,GAFM,MAEA,IAAKO,gBAAL,EAAwB;AAC9B,WAAOK,uBAAuB,GAAGZ,EAAE,CAAE,WAAF,CAAL,GAAuBA,EAAE,CAAE,UAAF,CAAvD;AACA;;AAED,SAAOA,EAAE,CAAE,SAAF,CAAT;AACA;AAED,eAAeC,OAAO,CAAE,CACvBC,UAAU,CAAIW,MAAF,IAAc;AAAA;;AACzB,QAAM;AACLC,IAAAA,sBADK;AAELC,IAAAA,0BAFK;AAGLC,IAAAA,YAHK;AAILC,IAAAA,gBAJK;AAKLC,IAAAA,cALK;AAMLC,IAAAA,kBANK;AAOLC,IAAAA;AAPK,MAQFP,MAAM,CAAET,WAAF,CARV;AASA,SAAO;AACNE,IAAAA,WAAW,EAAEQ,sBAAsB,EAD7B;AAENP,IAAAA,gBAAgB,EAAEQ,0BAA0B,EAFtC;AAGNP,IAAAA,QAAQ,EAAEQ,YAAY,EAHhB;AAINP,IAAAA,YAAY,EAAEQ,gBAAgB,EAJxB;AAKNP,IAAAA,gBAAgB,2BACfQ,cAAc,GAAGG,MAAjB,GAA2B,mBAA3B,CADe,yEACqC,KAN/C;AAONC,IAAAA,QAAQ,EAAEH,kBAAkB,EAPtB;AAQNR,IAAAA,YAAY,EAAES,gBAAgB;AARxB,GAAP;AAUA,CApBS,CADa,CAAF,CAAP,CAsBVf,kBAtBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PublishButtonLabel( {\n\tisPublished,\n\tisBeingScheduled,\n\tisSaving,\n\tisPublishing,\n\thasPublishAction,\n\tisAutosaving,\n\thasNonPostEntityChanges,\n} ) {\n\tif ( isPublishing ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Publishing…' );\n\t} else if ( isPublished && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Updating…' );\n\t} else if ( isBeingScheduled && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Scheduling…' );\n\t}\n\n\tif ( ! hasPublishAction ) {\n\t\treturn hasNonPostEntityChanges\n\t\t\t? __( 'Submit for Review…' )\n\t\t\t: __( 'Submit for Review' );\n\t} else if ( isPublished ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Update…' ) : __( 'Update' );\n\t} else if ( isBeingScheduled ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Schedule…' ) : __( 'Schedule' );\n\t}\n\n\treturn __( 'Publish' );\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisSavingPost,\n\t\t\tisPublishingPost,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tisAutosavingPost,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublishing: isPublishingPost(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tisAutosaving: isAutosavingPost(),\n\t\t};\n\t} ),\n] )( PublishButtonLabel );\n"]}
@@ -47,7 +47,6 @@ export class PostPublishPanel extends Component {
47
47
  render() {
48
48
  const {
49
49
  forceIsDirty,
50
- forceIsSaving,
51
50
  isBeingScheduled,
52
51
  isPublished,
53
52
  isPublishSidebarEnabled,
@@ -83,8 +82,7 @@ export class PostPublishPanel extends Component {
83
82
  }, createElement(PostPublishButton, {
84
83
  focusOnMount: true,
85
84
  onSubmit: this.onSubmit,
86
- forceIsDirty: forceIsDirty,
87
- forceIsSaving: forceIsSaving
85
+ forceIsDirty: forceIsDirty
88
86
  })), createElement("div", {
89
87
  className: "editor-post-publish-panel__header-cancel-button"
90
88
  }, createElement(Button, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/index.js"],"names":["__","Component","Button","Spinner","CheckboxControl","withFocusReturn","withConstrainedTabbing","withSelect","withDispatch","compose","closeSmall","store","coreStore","PostPublishButton","PostPublishPanelPrepublish","PostPublishPanelPostpublish","editorStore","PostPublishPanel","constructor","arguments","onSubmit","bind","componentDidUpdate","prevProps","isPublished","props","isSaving","isDirty","onClose","hasPublishAction","isPostTypeViewable","render","forceIsDirty","forceIsSaving","isBeingScheduled","isPublishSidebarEnabled","isScheduled","isSavingNonPostEntityChanges","onTogglePublishSidebar","PostPublishExtension","PrePublishExtension","additionalProps","propsForPanel","isPublishedOrScheduled","isPrePublish","isPostPublish","select","getPostType","getCurrentPost","getEditedPostAttribute","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostBeingScheduled","isEditedPostDirty","isAutosavingPost","isSavingPost","postType","_links","viewable","dispatch","disablePublishSidebar","enablePublishSidebar"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport {\n\tButton,\n\tSpinner,\n\tCheckboxControl,\n\twithFocusReturn,\n\twithConstrainedTabbing,\n} from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { closeSmall } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostPublishButton from '../post-publish-button';\nimport PostPublishPanelPrepublish from './prepublish';\nimport PostPublishPanelPostpublish from './postpublish';\nimport { store as editorStore } from '../../store';\n\nexport class PostPublishPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onSubmit = this.onSubmit.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Automatically collapse the publish sidebar when a post\n\t\t// is published and the user makes an edit.\n\t\tif (\n\t\t\tprevProps.isPublished &&\n\t\t\t! this.props.isSaving &&\n\t\t\tthis.props.isDirty\n\t\t) {\n\t\t\tthis.props.onClose();\n\t\t}\n\t}\n\n\tonSubmit() {\n\t\tconst { onClose, hasPublishAction, isPostTypeViewable } = this.props;\n\t\tif ( ! hasPublishAction || ! isPostTypeViewable ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\tisBeingScheduled,\n\t\t\tisPublished,\n\t\t\tisPublishSidebarEnabled,\n\t\t\tisScheduled,\n\t\t\tisSaving,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tonClose,\n\t\t\tonTogglePublishSidebar,\n\t\t\tPostPublishExtension,\n\t\t\tPrePublishExtension,\n\t\t\t...additionalProps\n\t\t} = this.props;\n\t\tconst {\n\t\t\thasPublishAction,\n\t\t\tisDirty,\n\t\t\tisPostTypeViewable,\n\t\t\t...propsForPanel\n\t\t} = additionalProps;\n\t\tconst isPublishedOrScheduled =\n\t\t\tisPublished || ( isScheduled && isBeingScheduled );\n\t\tconst isPrePublish = ! isPublishedOrScheduled && ! isSaving;\n\t\tconst isPostPublish = isPublishedOrScheduled && ! isSaving;\n\t\treturn (\n\t\t\t<div className=\"editor-post-publish-panel\" { ...propsForPanel }>\n\t\t\t\t<div className=\"editor-post-publish-panel__header\">\n\t\t\t\t\t{ isPostPublish ? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-publish-button\">\n\t\t\t\t\t\t\t\t<PostPublishButton\n\t\t\t\t\t\t\t\t\tfocusOnMount={ true }\n\t\t\t\t\t\t\t\t\tonSubmit={ this.onSubmit }\n\t\t\t\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-cancel-button\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ isSavingNonPostEntityChanges }\n\t\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__content\">\n\t\t\t\t\t{ isPrePublish && (\n\t\t\t\t\t\t<PostPublishPanelPrepublish>\n\t\t\t\t\t\t\t{ PrePublishExtension && <PrePublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPrepublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isPostPublish && (\n\t\t\t\t\t\t<PostPublishPanelPostpublish focusOnMount={ true }>\n\t\t\t\t\t\t\t{ PostPublishExtension && <PostPublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPostpublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSaving && <Spinner /> }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__footer\">\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Always show pre-publish checks.' ) }\n\t\t\t\t\t\tchecked={ isPublishSidebarEnabled }\n\t\t\t\t\t\tonChange={ onTogglePublishSidebar }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst {\n\t\t\tgetCurrentPost,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisCurrentPostPublished,\n\t\t\tisCurrentPostScheduled,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisEditedPostDirty,\n\t\t\tisAutosavingPost,\n\t\t\tisSavingPost,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst { isPublishSidebarEnabled } = select( editorStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tisPostTypeViewable: postType?.viewable,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisPublishSidebarEnabled: isPublishSidebarEnabled(),\n\t\t\tisSaving: isSavingPost() && ! isAutosavingPost(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { isPublishSidebarEnabled } ) => {\n\t\tconst { disablePublishSidebar, enablePublishSidebar } =\n\t\t\tdispatch( editorStore );\n\t\treturn {\n\t\t\tonTogglePublishSidebar: () => {\n\t\t\t\tif ( isPublishSidebarEnabled ) {\n\t\t\t\t\tdisablePublishSidebar();\n\t\t\t\t} else {\n\t\t\t\t\tenablePublishSidebar();\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t} ),\n\twithFocusReturn,\n\twithConstrainedTabbing,\n] )( PostPublishPanel );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/index.js"],"names":["__","Component","Button","Spinner","CheckboxControl","withFocusReturn","withConstrainedTabbing","withSelect","withDispatch","compose","closeSmall","store","coreStore","PostPublishButton","PostPublishPanelPrepublish","PostPublishPanelPostpublish","editorStore","PostPublishPanel","constructor","arguments","onSubmit","bind","componentDidUpdate","prevProps","isPublished","props","isSaving","isDirty","onClose","hasPublishAction","isPostTypeViewable","render","forceIsDirty","isBeingScheduled","isPublishSidebarEnabled","isScheduled","isSavingNonPostEntityChanges","onTogglePublishSidebar","PostPublishExtension","PrePublishExtension","additionalProps","propsForPanel","isPublishedOrScheduled","isPrePublish","isPostPublish","select","getPostType","getCurrentPost","getEditedPostAttribute","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostBeingScheduled","isEditedPostDirty","isAutosavingPost","isSavingPost","postType","_links","viewable","dispatch","disablePublishSidebar","enablePublishSidebar"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport {\n\tButton,\n\tSpinner,\n\tCheckboxControl,\n\twithFocusReturn,\n\twithConstrainedTabbing,\n} from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { closeSmall } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostPublishButton from '../post-publish-button';\nimport PostPublishPanelPrepublish from './prepublish';\nimport PostPublishPanelPostpublish from './postpublish';\nimport { store as editorStore } from '../../store';\n\nexport class PostPublishPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onSubmit = this.onSubmit.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Automatically collapse the publish sidebar when a post\n\t\t// is published and the user makes an edit.\n\t\tif (\n\t\t\tprevProps.isPublished &&\n\t\t\t! this.props.isSaving &&\n\t\t\tthis.props.isDirty\n\t\t) {\n\t\t\tthis.props.onClose();\n\t\t}\n\t}\n\n\tonSubmit() {\n\t\tconst { onClose, hasPublishAction, isPostTypeViewable } = this.props;\n\t\tif ( ! hasPublishAction || ! isPostTypeViewable ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tisBeingScheduled,\n\t\t\tisPublished,\n\t\t\tisPublishSidebarEnabled,\n\t\t\tisScheduled,\n\t\t\tisSaving,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tonClose,\n\t\t\tonTogglePublishSidebar,\n\t\t\tPostPublishExtension,\n\t\t\tPrePublishExtension,\n\t\t\t...additionalProps\n\t\t} = this.props;\n\t\tconst {\n\t\t\thasPublishAction,\n\t\t\tisDirty,\n\t\t\tisPostTypeViewable,\n\t\t\t...propsForPanel\n\t\t} = additionalProps;\n\t\tconst isPublishedOrScheduled =\n\t\t\tisPublished || ( isScheduled && isBeingScheduled );\n\t\tconst isPrePublish = ! isPublishedOrScheduled && ! isSaving;\n\t\tconst isPostPublish = isPublishedOrScheduled && ! isSaving;\n\t\treturn (\n\t\t\t<div className=\"editor-post-publish-panel\" { ...propsForPanel }>\n\t\t\t\t<div className=\"editor-post-publish-panel__header\">\n\t\t\t\t\t{ isPostPublish ? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-publish-button\">\n\t\t\t\t\t\t\t\t<PostPublishButton\n\t\t\t\t\t\t\t\t\tfocusOnMount\n\t\t\t\t\t\t\t\t\tonSubmit={ this.onSubmit }\n\t\t\t\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-cancel-button\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ isSavingNonPostEntityChanges }\n\t\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__content\">\n\t\t\t\t\t{ isPrePublish && (\n\t\t\t\t\t\t<PostPublishPanelPrepublish>\n\t\t\t\t\t\t\t{ PrePublishExtension && <PrePublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPrepublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isPostPublish && (\n\t\t\t\t\t\t<PostPublishPanelPostpublish focusOnMount={ true }>\n\t\t\t\t\t\t\t{ PostPublishExtension && <PostPublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPostpublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSaving && <Spinner /> }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__footer\">\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Always show pre-publish checks.' ) }\n\t\t\t\t\t\tchecked={ isPublishSidebarEnabled }\n\t\t\t\t\t\tonChange={ onTogglePublishSidebar }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst {\n\t\t\tgetCurrentPost,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisCurrentPostPublished,\n\t\t\tisCurrentPostScheduled,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisEditedPostDirty,\n\t\t\tisAutosavingPost,\n\t\t\tisSavingPost,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst { isPublishSidebarEnabled } = select( editorStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tisPostTypeViewable: postType?.viewable,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisPublishSidebarEnabled: isPublishSidebarEnabled(),\n\t\t\tisSaving: isSavingPost() && ! isAutosavingPost(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { isPublishSidebarEnabled } ) => {\n\t\tconst { disablePublishSidebar, enablePublishSidebar } =\n\t\t\tdispatch( editorStore );\n\t\treturn {\n\t\t\tonTogglePublishSidebar: () => {\n\t\t\t\tif ( isPublishSidebarEnabled ) {\n\t\t\t\t\tdisablePublishSidebar();\n\t\t\t\t} else {\n\t\t\t\t\tenablePublishSidebar();\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t} ),\n\twithFocusReturn,\n\twithConstrainedTabbing,\n] )( PostPublishPanel );\n"]}
@@ -27,15 +27,12 @@ import { store as editorStore } from '../../store';
27
27
  * @param {Object} props Component props.
28
28
  * @param {?boolean} props.forceIsDirty Whether to force the post to be marked
29
29
  * as dirty.
30
- * @param {?boolean} props.forceIsSaving Whether to force the post to be marked
31
- * as being saved.
32
30
  * @param {?boolean} props.showIconLabels Whether interface buttons show labels instead of icons
33
31
  * @return {import('@wordpress/element').WPComponent} The component.
34
32
  */
35
33
 
36
34
  export default function PostSavedState({
37
35
  forceIsDirty,
38
- forceIsSaving,
39
36
  showIconLabels = false
40
37
  }) {
41
38
  const [forceSavedMessage, setForceSavedMessage] = useState(false);
@@ -70,12 +67,12 @@ export default function PostSavedState({
70
67
  isNew: isEditedPostNew(),
71
68
  isPending: 'pending' === getEditedPostAttribute('status'),
72
69
  isPublished: isCurrentPostPublished(),
73
- isSaving: forceIsSaving || isSavingPost(),
70
+ isSaving: isSavingPost(),
74
71
  isSaveable: isEditedPostSaveable(),
75
72
  isScheduled: isCurrentPostScheduled(),
76
73
  hasPublishAction: (_getCurrentPost$_link = getCurrentPost()?._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false
77
74
  };
78
- }, [forceIsDirty, forceIsSaving]);
75
+ }, [forceIsDirty]);
79
76
  const {
80
77
  savePost
81
78
  } = useDispatch(editorStore);