@wordpress/edit-post 7.14.0 → 7.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 (113) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/device-preview/index.js +6 -6
  3. package/build/components/device-preview/index.js.map +1 -1
  4. package/build/components/header/{document-title → document-actions}/index.js +10 -11
  5. package/build/components/header/document-actions/index.js.map +1 -0
  6. package/build/components/header/header-toolbar/index.js +7 -6
  7. package/build/components/header/header-toolbar/index.js.map +1 -1
  8. package/build/components/header/header-toolbar/index.native.js +92 -49
  9. package/build/components/header/header-toolbar/index.native.js.map +1 -1
  10. package/build/components/header/index.js +4 -9
  11. package/build/components/header/index.js.map +1 -1
  12. package/build/components/header/mode-switcher/index.js +23 -4
  13. package/build/components/header/mode-switcher/index.js.map +1 -1
  14. package/build/components/header/post-publish-button-or-toggle.js +0 -2
  15. package/build/components/header/post-publish-button-or-toggle.js.map +1 -1
  16. package/build/components/layout/actions-panel.js +5 -10
  17. package/build/components/layout/actions-panel.js.map +1 -1
  18. package/build/components/layout/index.js +36 -13
  19. package/build/components/layout/index.js.map +1 -1
  20. package/build/components/secondary-sidebar/list-view-sidebar.js +2 -2
  21. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  22. package/build/components/sidebar/discussion-panel/index.js +20 -20
  23. package/build/components/sidebar/discussion-panel/index.js.map +1 -1
  24. package/build/components/text-editor/index.js +1 -1
  25. package/build/components/text-editor/index.js.map +1 -1
  26. package/build/components/visual-editor/header.native.js +1 -13
  27. package/build/components/visual-editor/header.native.js.map +1 -1
  28. package/build/components/visual-editor/index.js +1 -1
  29. package/build/components/visual-editor/index.js.map +1 -1
  30. package/build/editor.js +2 -39
  31. package/build/editor.js.map +1 -1
  32. package/build/hooks/commands/use-common-commands.js +61 -4
  33. package/build/hooks/commands/use-common-commands.js.map +1 -1
  34. package/build/index.js +2 -1
  35. package/build/index.js.map +1 -1
  36. package/build/plugins/index.js +35 -6
  37. package/build/plugins/index.js.map +1 -1
  38. package/build/store/actions.js +12 -14
  39. package/build/store/actions.js.map +1 -1
  40. package/build-module/components/device-preview/index.js +6 -6
  41. package/build-module/components/device-preview/index.js.map +1 -1
  42. package/build-module/components/header/{document-title → document-actions}/index.js +10 -11
  43. package/build-module/components/header/document-actions/index.js.map +1 -0
  44. package/build-module/components/header/header-toolbar/index.js +7 -6
  45. package/build-module/components/header/header-toolbar/index.js.map +1 -1
  46. package/build-module/components/header/header-toolbar/index.native.js +93 -53
  47. package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
  48. package/build-module/components/header/index.js +4 -9
  49. package/build-module/components/header/index.js.map +1 -1
  50. package/build-module/components/header/mode-switcher/index.js +23 -4
  51. package/build-module/components/header/mode-switcher/index.js.map +1 -1
  52. package/build-module/components/header/post-publish-button-or-toggle.js +0 -2
  53. package/build-module/components/header/post-publish-button-or-toggle.js.map +1 -1
  54. package/build-module/components/layout/actions-panel.js +5 -10
  55. package/build-module/components/layout/actions-panel.js.map +1 -1
  56. package/build-module/components/layout/index.js +37 -14
  57. package/build-module/components/layout/index.js.map +1 -1
  58. package/build-module/components/secondary-sidebar/list-view-sidebar.js +3 -3
  59. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  60. package/build-module/components/sidebar/discussion-panel/index.js +21 -19
  61. package/build-module/components/sidebar/discussion-panel/index.js.map +1 -1
  62. package/build-module/components/text-editor/index.js +2 -2
  63. package/build-module/components/text-editor/index.js.map +1 -1
  64. package/build-module/components/visual-editor/header.native.js +1 -10
  65. package/build-module/components/visual-editor/header.native.js.map +1 -1
  66. package/build-module/components/visual-editor/index.js +2 -2
  67. package/build-module/components/visual-editor/index.js.map +1 -1
  68. package/build-module/editor.js +2 -38
  69. package/build-module/editor.js.map +1 -1
  70. package/build-module/hooks/commands/use-common-commands.js +60 -5
  71. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  72. package/build-module/index.js +2 -1
  73. package/build-module/index.js.map +1 -1
  74. package/build-module/plugins/index.js +33 -6
  75. package/build-module/plugins/index.js.map +1 -1
  76. package/build-module/store/actions.js +11 -14
  77. package/build-module/store/actions.js.map +1 -1
  78. package/build-style/style-rtl.css +30 -31
  79. package/build-style/style.css +30 -31
  80. package/package.json +32 -32
  81. package/src/components/device-preview/index.js +35 -39
  82. package/src/components/header/{document-title → document-actions}/index.js +22 -23
  83. package/src/components/header/{document-title → document-actions}/style.scss +25 -22
  84. package/src/components/header/header-toolbar/index.js +3 -2
  85. package/src/components/header/header-toolbar/index.native.js +125 -68
  86. package/src/components/header/header-toolbar/style.native.scss +23 -4
  87. package/src/components/header/header-toolbar/style.scss +4 -0
  88. package/src/components/header/index.js +15 -25
  89. package/src/components/header/mode-switcher/index.js +23 -4
  90. package/src/components/header/post-publish-button-or-toggle.js +0 -2
  91. package/src/components/header/style.scss +1 -1
  92. package/src/components/layout/actions-panel.js +5 -7
  93. package/src/components/layout/index.js +45 -9
  94. package/src/components/layout/style.native.scss +1 -1
  95. package/src/components/preferences-modal/test/__snapshots__/index.js.snap +16 -5
  96. package/src/components/preferences-modal/test/index.js +4 -4
  97. package/src/components/secondary-sidebar/list-view-sidebar.js +3 -3
  98. package/src/components/sidebar/discussion-panel/index.js +15 -20
  99. package/src/components/text-editor/index.js +0 -2
  100. package/src/components/visual-editor/header.native.js +1 -17
  101. package/src/components/visual-editor/index.js +1 -6
  102. package/src/components/visual-editor/test/__snapshots__/index.native.js.snap +15 -0
  103. package/src/components/visual-editor/test/index.native.js +118 -1
  104. package/src/editor.js +2 -47
  105. package/src/hooks/commands/use-common-commands.js +81 -15
  106. package/src/index.js +5 -1
  107. package/src/plugins/index.js +32 -8
  108. package/src/store/actions.js +18 -27
  109. package/src/style.scss +2 -8
  110. package/src/test/editor.native.js +4 -3
  111. package/build/components/header/document-title/index.js.map +0 -1
  112. package/build-module/components/header/document-title/index.js.map +0 -1
  113. package/src/components/visual-editor/style.native.scss +0 -18
@@ -3,26 +3,37 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { Platform, ScrollView, View } from 'react-native';
6
+ import { ScrollView, StyleSheet, View } from 'react-native';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
10
 
11
- import { useCallback, useRef, useState } from '@wordpress/element';
12
- import { compose, withPreferredColorScheme } from '@wordpress/compose';
11
+ import { useCallback, useRef, useEffect, Platform } from '@wordpress/element';
12
+ import { compose, usePreferredColorSchemeStyle } from '@wordpress/compose';
13
13
  import { withSelect, withDispatch } from '@wordpress/data';
14
14
  import { withViewportMatch } from '@wordpress/viewport';
15
15
  import { __ } from '@wordpress/i18n';
16
16
  import { Inserter, BlockToolbar, store as blockEditorStore } from '@wordpress/block-editor';
17
17
  import { ToolbarGroup, ToolbarButton } from '@wordpress/components';
18
- import { keyboardClose, undo as undoIcon, redo as redoIcon } from '@wordpress/icons';
18
+ import { keyboardClose, audio as audioIcon, media as imageIcon, video as videoIcon, gallery as galleryIcon } from '@wordpress/icons';
19
19
  import { store as editorStore } from '@wordpress/editor';
20
+ import { createBlock } from '@wordpress/blocks';
21
+ import { toggleUndoButton, toggleRedoButton, subscribeOnUndoPressed, subscribeOnRedoPressed } from '@wordpress/react-native-bridge';
20
22
  /**
21
23
  * Internal dependencies
22
24
  */
23
25
 
24
26
  import styles from './style.scss';
25
27
  import { store as editPostStore } from '../../../store';
28
+ const shadowStyle = {
29
+ shadowOffset: {
30
+ width: 2,
31
+ height: 2
32
+ },
33
+ shadowOpacity: 1,
34
+ shadowRadius: 6,
35
+ elevation: 18
36
+ };
26
37
 
27
38
  function HeaderToolbar({
28
39
  hasRedo,
@@ -31,20 +42,34 @@ function HeaderToolbar({
31
42
  undo,
32
43
  showInserter,
33
44
  showKeyboardHideButton,
34
- getStylesFromColorScheme,
45
+ insertBlock,
35
46
  onHideKeyboard,
36
47
  isRTL,
37
48
  noContentSelected
38
49
  }) {
39
- const wasNoContentSelected = useRef(noContentSelected);
40
- const [isInserterOpen, setIsInserterOpen] = useState(false);
50
+ const anchorNodeRef = useRef();
51
+ const containerStyle = [usePreferredColorSchemeStyle(styles['header-toolbar__container'], styles['header-toolbar__container--dark']), {
52
+ borderTopWidth: StyleSheet.hairlineWidth
53
+ }];
54
+ useEffect(() => {
55
+ const onUndoSubscription = subscribeOnUndoPressed(undo);
56
+ const onRedoSubscription = subscribeOnRedoPressed(redo);
57
+ return () => {
58
+ onUndoSubscription?.remove();
59
+ onRedoSubscription?.remove();
60
+ };
61
+ }, [undo, redo]);
62
+ useEffect(() => {
63
+ toggleUndoButton(!hasUndo);
64
+ }, [hasUndo]);
65
+ useEffect(() => {
66
+ toggleRedoButton(!hasRedo);
67
+ }, [hasRedo]);
41
68
  const scrollViewRef = useRef(null);
42
69
 
43
70
  const scrollToStart = () => {
44
71
  // scrollview doesn't seem to automatically adjust to RTL on Android so, scroll to end when Android
45
- const isAndroid = Platform.OS === 'android';
46
-
47
- if (isAndroid && isRTL) {
72
+ if (Platform.isAndroid && isRTL) {
48
73
  scrollViewRef.current.scrollToEnd();
49
74
  } else {
50
75
  scrollViewRef.current.scrollTo({
@@ -53,49 +78,62 @@ function HeaderToolbar({
53
78
  }
54
79
  };
55
80
 
56
- const renderHistoryButtons = () => {
57
- const buttons = [
58
- /* TODO: replace with EditorHistoryRedo and EditorHistoryUndo. */
59
- createElement(ToolbarButton, {
60
- key: "undoButton",
61
- title: __('Undo'),
62
- icon: !isRTL ? undoIcon : redoIcon,
63
- isDisabled: !hasUndo,
64
- onClick: undo,
65
- extraProps: {
66
- hint: __('Double tap to undo last change')
67
- }
68
- }), createElement(ToolbarButton, {
69
- key: "redoButton",
70
- title: __('Redo'),
71
- icon: !isRTL ? redoIcon : undoIcon,
72
- isDisabled: !hasRedo,
73
- onClick: redo,
74
- extraProps: {
75
- hint: __('Double tap to redo last change')
76
- }
77
- })];
78
- return isRTL ? buttons.reverse() : buttons;
79
- };
80
-
81
- const onToggleInserter = useCallback(isOpen => {
82
- if (isOpen) {
83
- wasNoContentSelected.current = noContentSelected;
81
+ const onInsertBlock = useCallback(blockType => () => {
82
+ insertBlock(createBlock(blockType), undefined, undefined, true, {
83
+ source: 'inserter_menu',
84
+ inserterMethod: 'quick-inserter'
85
+ });
86
+ }, [insertBlock]);
87
+ const renderMediaButtons = createElement(ToolbarGroup, null, createElement(ToolbarButton, {
88
+ key: "imageButton",
89
+ title: __('Image'),
90
+ icon: imageIcon,
91
+ onClick: onInsertBlock('core/image'),
92
+ testID: "insert-image-button",
93
+ extraProps: {
94
+ hint: __('Insert Image Block')
84
95
  }
85
-
86
- setIsInserterOpen(isOpen);
87
- }, [noContentSelected]); // Expanded mode should be preserved while the inserter is open.
88
- // This way we prevent style updates during the opening transition.
89
-
90
- const useExpandedMode = isInserterOpen ? wasNoContentSelected.current : noContentSelected;
96
+ }), createElement(ToolbarButton, {
97
+ key: "videoButton",
98
+ title: __('Video'),
99
+ icon: videoIcon,
100
+ onClick: onInsertBlock('core/video'),
101
+ testID: "insert-video-button",
102
+ extraProps: {
103
+ hint: __('Insert Video Block')
104
+ }
105
+ }), createElement(ToolbarButton, {
106
+ key: "galleryButton",
107
+ title: __('Gallery'),
108
+ icon: galleryIcon,
109
+ onClick: onInsertBlock('core/gallery'),
110
+ testID: "insert-gallery-button",
111
+ extraProps: {
112
+ hint: __('Insert Gallery Block')
113
+ }
114
+ }), createElement(ToolbarButton, {
115
+ key: "audioButton",
116
+ title: __('Audio'),
117
+ icon: audioIcon,
118
+ onClick: onInsertBlock('core/audio'),
119
+ testID: "insert-audio-button",
120
+ extraProps: {
121
+ hint: __('Insert Audio Block')
122
+ }
123
+ }));
91
124
  /* translators: accessibility text for the editor toolbar */
92
125
 
93
126
  const toolbarAriaLabel = __('Document tools');
94
127
 
128
+ const shadowColor = usePreferredColorSchemeStyle(styles['header-toolbar__keyboard-hide-shadow--light'], styles['header-toolbar__keyboard-hide-shadow--dark']);
129
+ const showKeyboardButtonStyles = [usePreferredColorSchemeStyle(styles['header-toolbar__keyboard-hide-container'], styles['header-toolbar__keyboard-hide-container--dark']), shadowStyle, {
130
+ shadowColor: Platform.isAndroid ? styles['header-toolbar__keyboard-hide-shadow--solid'].color : shadowColor.color
131
+ }];
95
132
  return createElement(View, {
133
+ ref: anchorNodeRef,
96
134
  testID: toolbarAriaLabel,
97
135
  accessibilityLabel: toolbarAriaLabel,
98
- style: [getStylesFromColorScheme(styles['header-toolbar__container'], styles['header-toolbar__container--dark']), useExpandedMode && styles['header-toolbar__container--expanded']]
136
+ style: containerStyle
99
137
  }, createElement(ScrollView, {
100
138
  ref: scrollViewRef,
101
139
  onContentSizeChange: scrollToStart,
@@ -105,11 +143,11 @@ function HeaderToolbar({
105
143
  alwaysBounceHorizontal: false,
106
144
  contentContainerStyle: styles['header-toolbar__scrollable-content']
107
145
  }, createElement(Inserter, {
108
- disabled: !showInserter,
109
- useExpandedMode: useExpandedMode,
110
- onToggle: onToggleInserter
111
- }), renderHistoryButtons(), createElement(BlockToolbar, null)), showKeyboardHideButton && createElement(ToolbarGroup, {
112
- passedStyle: styles['header-toolbar__keyboard-hide-container']
146
+ disabled: !showInserter
147
+ }), noContentSelected && renderMediaButtons, createElement(BlockToolbar, {
148
+ anchorNodeRef: anchorNodeRef.current
149
+ })), showKeyboardHideButton && createElement(ToolbarGroup, {
150
+ passedStyle: showKeyboardButtonStyles
113
151
  }, createElement(ToolbarButton, {
114
152
  title: __('Hide keyboard'),
115
153
  icon: keyboardClose,
@@ -142,7 +180,8 @@ export default compose([withSelect(select => {
142
180
  };
143
181
  }), withDispatch(dispatch => {
144
182
  const {
145
- clearSelectedBlock
183
+ clearSelectedBlock,
184
+ insertBlock
146
185
  } = dispatch(blockEditorStore);
147
186
  const {
148
187
  togglePostTitleSelection
@@ -154,10 +193,11 @@ export default compose([withSelect(select => {
154
193
  onHideKeyboard() {
155
194
  clearSelectedBlock();
156
195
  togglePostTitleSelection(false);
157
- }
196
+ },
158
197
 
198
+ insertBlock
159
199
  };
160
200
  }), withViewportMatch({
161
201
  isLargeViewport: 'medium'
162
- }), withPreferredColorScheme])(HeaderToolbar);
202
+ })])(HeaderToolbar);
163
203
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/header/header-toolbar/index.native.js"],"names":["Platform","ScrollView","View","useCallback","useRef","useState","compose","withPreferredColorScheme","withSelect","withDispatch","withViewportMatch","__","Inserter","BlockToolbar","store","blockEditorStore","ToolbarGroup","ToolbarButton","keyboardClose","undo","undoIcon","redo","redoIcon","editorStore","styles","editPostStore","HeaderToolbar","hasRedo","hasUndo","showInserter","showKeyboardHideButton","getStylesFromColorScheme","onHideKeyboard","isRTL","noContentSelected","wasNoContentSelected","isInserterOpen","setIsInserterOpen","scrollViewRef","scrollToStart","isAndroid","OS","current","scrollToEnd","scrollTo","x","renderHistoryButtons","buttons","hint","reverse","onToggleInserter","isOpen","useExpandedMode","toolbarAriaLabel","select","getBlockRootClientId","getBlockSelectionEnd","hasInserterItems","hasSelectedBlock","getEditorSettings","isAnyBlockSelected","hasEditorRedo","hasEditorUndo","getEditorMode","richEditingEnabled","isTextModeEnabled","getSettings","dispatch","clearSelectedBlock","togglePostTitleSelection","isLargeViewport"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, ScrollView, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useRef, useState } from '@wordpress/element';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInserter,\n\tBlockToolbar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport {\n\tkeyboardClose,\n\tundo as undoIcon,\n\tredo as redoIcon,\n} from '@wordpress/icons';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { store as editPostStore } from '../../../store';\n\nfunction HeaderToolbar( {\n\thasRedo,\n\thasUndo,\n\tredo,\n\tundo,\n\tshowInserter,\n\tshowKeyboardHideButton,\n\tgetStylesFromColorScheme,\n\tonHideKeyboard,\n\tisRTL,\n\tnoContentSelected,\n} ) {\n\tconst wasNoContentSelected = useRef( noContentSelected );\n\tconst [ isInserterOpen, setIsInserterOpen ] = useState( false );\n\n\tconst scrollViewRef = useRef( null );\n\tconst scrollToStart = () => {\n\t\t// scrollview doesn't seem to automatically adjust to RTL on Android so, scroll to end when Android\n\t\tconst isAndroid = Platform.OS === 'android';\n\t\tif ( isAndroid && isRTL ) {\n\t\t\tscrollViewRef.current.scrollToEnd();\n\t\t} else {\n\t\t\tscrollViewRef.current.scrollTo( { x: 0 } );\n\t\t}\n\t};\n\tconst renderHistoryButtons = () => {\n\t\tconst buttons = [\n\t\t\t/* TODO: replace with EditorHistoryRedo and EditorHistoryUndo. */\n\t\t\t<ToolbarButton\n\t\t\t\tkey=\"undoButton\"\n\t\t\t\ttitle={ __( 'Undo' ) }\n\t\t\t\ticon={ ! isRTL ? undoIcon : redoIcon }\n\t\t\t\tisDisabled={ ! hasUndo }\n\t\t\t\tonClick={ undo }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: __( 'Double tap to undo last change' ),\n\t\t\t\t} }\n\t\t\t/>,\n\t\t\t<ToolbarButton\n\t\t\t\tkey=\"redoButton\"\n\t\t\t\ttitle={ __( 'Redo' ) }\n\t\t\t\ticon={ ! isRTL ? redoIcon : undoIcon }\n\t\t\t\tisDisabled={ ! hasRedo }\n\t\t\t\tonClick={ redo }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: __( 'Double tap to redo last change' ),\n\t\t\t\t} }\n\t\t\t/>,\n\t\t];\n\n\t\treturn isRTL ? buttons.reverse() : buttons;\n\t};\n\n\tconst onToggleInserter = useCallback(\n\t\t( isOpen ) => {\n\t\t\tif ( isOpen ) {\n\t\t\t\twasNoContentSelected.current = noContentSelected;\n\t\t\t}\n\t\t\tsetIsInserterOpen( isOpen );\n\t\t},\n\t\t[ noContentSelected ]\n\t);\n\n\t// Expanded mode should be preserved while the inserter is open.\n\t// This way we prevent style updates during the opening transition.\n\tconst useExpandedMode = isInserterOpen\n\t\t? wasNoContentSelected.current\n\t\t: noContentSelected;\n\n\t/* translators: accessibility text for the editor toolbar */\n\tconst toolbarAriaLabel = __( 'Document tools' );\n\n\treturn (\n\t\t<View\n\t\t\ttestID={ toolbarAriaLabel }\n\t\t\taccessibilityLabel={ toolbarAriaLabel }\n\t\t\tstyle={ [\n\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\tstyles[ 'header-toolbar__container' ],\n\t\t\t\t\tstyles[ 'header-toolbar__container--dark' ]\n\t\t\t\t),\n\t\t\t\tuseExpandedMode &&\n\t\t\t\t\tstyles[ 'header-toolbar__container--expanded' ],\n\t\t\t] }\n\t\t>\n\t\t\t<ScrollView\n\t\t\t\tref={ scrollViewRef }\n\t\t\t\tonContentSizeChange={ scrollToStart }\n\t\t\t\thorizontal={ true }\n\t\t\t\tshowsHorizontalScrollIndicator={ false }\n\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\talwaysBounceHorizontal={ false }\n\t\t\t\tcontentContainerStyle={\n\t\t\t\t\tstyles[ 'header-toolbar__scrollable-content' ]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Inserter\n\t\t\t\t\tdisabled={ ! showInserter }\n\t\t\t\t\tuseExpandedMode={ useExpandedMode }\n\t\t\t\t\tonToggle={ onToggleInserter }\n\t\t\t\t/>\n\t\t\t\t{ renderHistoryButtons() }\n\t\t\t\t<BlockToolbar />\n\t\t\t</ScrollView>\n\t\t\t{ showKeyboardHideButton && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tpassedStyle={\n\t\t\t\t\t\tstyles[ 'header-toolbar__keyboard-hide-container' ]\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Hide keyboard' ) }\n\t\t\t\t\t\ticon={ keyboardClose }\n\t\t\t\t\t\tonClick={ onHideKeyboard }\n\t\t\t\t\t\textraProps={ {\n\t\t\t\t\t\t\thint: __( 'Tap to hide the keyboard' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\thasInserterItems,\n\t\t\thasSelectedBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst { getEditorSettings } = select( editorStore );\n\t\tconst isAnyBlockSelected = hasSelectedBlock();\n\t\treturn {\n\t\t\thasRedo: select( editorStore ).hasEditorRedo(),\n\t\t\thasUndo: select( editorStore ).hasEditorUndo(),\n\t\t\t// This setting (richEditingEnabled) should not live in the block editor's setting.\n\t\t\tshowInserter:\n\t\t\t\tselect( editPostStore ).getEditorMode() === 'visual' &&\n\t\t\t\tgetEditorSettings().richEditingEnabled &&\n\t\t\t\thasInserterItems(\n\t\t\t\t\tgetBlockRootClientId( getBlockSelectionEnd() )\n\t\t\t\t),\n\t\t\tisTextModeEnabled:\n\t\t\t\tselect( editPostStore ).getEditorMode() === 'text',\n\t\t\tisRTL: select( blockEditorStore ).getSettings().isRTL,\n\t\t\tnoContentSelected: ! isAnyBlockSelected,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { clearSelectedBlock } = dispatch( blockEditorStore );\n\t\tconst { togglePostTitleSelection } = dispatch( editorStore );\n\n\t\treturn {\n\t\t\tredo: dispatch( editorStore ).redo,\n\t\t\tundo: dispatch( editorStore ).undo,\n\t\t\tonHideKeyboard() {\n\t\t\t\tclearSelectedBlock();\n\t\t\t\ttogglePostTitleSelection( false );\n\t\t\t},\n\t\t};\n\t} ),\n\twithViewportMatch( { isLargeViewport: 'medium' } ),\n\twithPreferredColorScheme,\n] )( HeaderToolbar );\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/header/header-toolbar/index.native.js"],"names":["ScrollView","StyleSheet","View","useCallback","useRef","useEffect","Platform","compose","usePreferredColorSchemeStyle","withSelect","withDispatch","withViewportMatch","__","Inserter","BlockToolbar","store","blockEditorStore","ToolbarGroup","ToolbarButton","keyboardClose","audio","audioIcon","media","imageIcon","video","videoIcon","gallery","galleryIcon","editorStore","createBlock","toggleUndoButton","toggleRedoButton","subscribeOnUndoPressed","subscribeOnRedoPressed","styles","editPostStore","shadowStyle","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","HeaderToolbar","hasRedo","hasUndo","redo","undo","showInserter","showKeyboardHideButton","insertBlock","onHideKeyboard","isRTL","noContentSelected","anchorNodeRef","containerStyle","borderTopWidth","hairlineWidth","onUndoSubscription","onRedoSubscription","remove","scrollViewRef","scrollToStart","isAndroid","current","scrollToEnd","scrollTo","x","onInsertBlock","blockType","undefined","source","inserterMethod","renderMediaButtons","hint","toolbarAriaLabel","shadowColor","showKeyboardButtonStyles","color","select","getBlockRootClientId","getBlockSelectionEnd","hasInserterItems","hasSelectedBlock","getEditorSettings","isAnyBlockSelected","hasEditorRedo","hasEditorUndo","getEditorMode","richEditingEnabled","isTextModeEnabled","getSettings","dispatch","clearSelectedBlock","togglePostTitleSelection","isLargeViewport"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { ScrollView, StyleSheet, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useRef, useEffect, Platform } from '@wordpress/element';\nimport { compose, usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInserter,\n\tBlockToolbar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport {\n\tkeyboardClose,\n\taudio as audioIcon,\n\tmedia as imageIcon,\n\tvideo as videoIcon,\n\tgallery as galleryIcon,\n} from '@wordpress/icons';\nimport { store as editorStore } from '@wordpress/editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\ttoggleUndoButton,\n\ttoggleRedoButton,\n\tsubscribeOnUndoPressed,\n\tsubscribeOnRedoPressed,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { store as editPostStore } from '../../../store';\n\nconst shadowStyle = {\n\tshadowOffset: { width: 2, height: 2 },\n\tshadowOpacity: 1,\n\tshadowRadius: 6,\n\televation: 18,\n};\n\nfunction HeaderToolbar( {\n\thasRedo,\n\thasUndo,\n\tredo,\n\tundo,\n\tshowInserter,\n\tshowKeyboardHideButton,\n\tinsertBlock,\n\tonHideKeyboard,\n\tisRTL,\n\tnoContentSelected,\n} ) {\n\tconst anchorNodeRef = useRef();\n\n\tconst containerStyle = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles[ 'header-toolbar__container' ],\n\t\t\tstyles[ 'header-toolbar__container--dark' ]\n\t\t),\n\t\t{ borderTopWidth: StyleSheet.hairlineWidth },\n\t];\n\n\tuseEffect( () => {\n\t\tconst onUndoSubscription = subscribeOnUndoPressed( undo );\n\t\tconst onRedoSubscription = subscribeOnRedoPressed( redo );\n\n\t\treturn () => {\n\t\t\tonUndoSubscription?.remove();\n\t\t\tonRedoSubscription?.remove();\n\t\t};\n\t}, [ undo, redo ] );\n\n\tuseEffect( () => {\n\t\ttoggleUndoButton( ! hasUndo );\n\t}, [ hasUndo ] );\n\n\tuseEffect( () => {\n\t\ttoggleRedoButton( ! hasRedo );\n\t}, [ hasRedo ] );\n\n\tconst scrollViewRef = useRef( null );\n\tconst scrollToStart = () => {\n\t\t// scrollview doesn't seem to automatically adjust to RTL on Android so, scroll to end when Android\n\t\tif ( Platform.isAndroid && isRTL ) {\n\t\t\tscrollViewRef.current.scrollToEnd();\n\t\t} else {\n\t\t\tscrollViewRef.current.scrollTo( { x: 0 } );\n\t\t}\n\t};\n\n\tconst onInsertBlock = useCallback(\n\t\t( blockType ) => () => {\n\t\t\tinsertBlock( createBlock( blockType ), undefined, undefined, true, {\n\t\t\t\tsource: 'inserter_menu',\n\t\t\t\tinserterMethod: 'quick-inserter',\n\t\t\t} );\n\t\t},\n\t\t[ insertBlock ]\n\t);\n\n\tconst renderMediaButtons = (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\tkey=\"imageButton\"\n\t\t\t\ttitle={ __( 'Image' ) }\n\t\t\t\ticon={ imageIcon }\n\t\t\t\tonClick={ onInsertBlock( 'core/image' ) }\n\t\t\t\ttestID=\"insert-image-button\"\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: __( 'Insert Image Block' ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\tkey=\"videoButton\"\n\t\t\t\ttitle={ __( 'Video' ) }\n\t\t\t\ticon={ videoIcon }\n\t\t\t\tonClick={ onInsertBlock( 'core/video' ) }\n\t\t\t\ttestID=\"insert-video-button\"\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: __( 'Insert Video Block' ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\tkey=\"galleryButton\"\n\t\t\t\ttitle={ __( 'Gallery' ) }\n\t\t\t\ticon={ galleryIcon }\n\t\t\t\tonClick={ onInsertBlock( 'core/gallery' ) }\n\t\t\t\ttestID=\"insert-gallery-button\"\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: __( 'Insert Gallery Block' ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\tkey=\"audioButton\"\n\t\t\t\ttitle={ __( 'Audio' ) }\n\t\t\t\ticon={ audioIcon }\n\t\t\t\tonClick={ onInsertBlock( 'core/audio' ) }\n\t\t\t\ttestID=\"insert-audio-button\"\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: __( 'Insert Audio Block' ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n\n\t/* translators: accessibility text for the editor toolbar */\n\tconst toolbarAriaLabel = __( 'Document tools' );\n\n\tconst shadowColor = usePreferredColorSchemeStyle(\n\t\tstyles[ 'header-toolbar__keyboard-hide-shadow--light' ],\n\t\tstyles[ 'header-toolbar__keyboard-hide-shadow--dark' ]\n\t);\n\tconst showKeyboardButtonStyles = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles[ 'header-toolbar__keyboard-hide-container' ],\n\t\t\tstyles[ 'header-toolbar__keyboard-hide-container--dark' ]\n\t\t),\n\t\tshadowStyle,\n\t\t{\n\t\t\tshadowColor: Platform.isAndroid\n\t\t\t\t? styles[ 'header-toolbar__keyboard-hide-shadow--solid' ].color\n\t\t\t\t: shadowColor.color,\n\t\t},\n\t];\n\n\treturn (\n\t\t<View\n\t\t\tref={ anchorNodeRef }\n\t\t\ttestID={ toolbarAriaLabel }\n\t\t\taccessibilityLabel={ toolbarAriaLabel }\n\t\t\tstyle={ containerStyle }\n\t\t>\n\t\t\t<ScrollView\n\t\t\t\tref={ scrollViewRef }\n\t\t\t\tonContentSizeChange={ scrollToStart }\n\t\t\t\thorizontal={ true }\n\t\t\t\tshowsHorizontalScrollIndicator={ false }\n\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\talwaysBounceHorizontal={ false }\n\t\t\t\tcontentContainerStyle={\n\t\t\t\t\tstyles[ 'header-toolbar__scrollable-content' ]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Inserter disabled={ ! showInserter } />\n\n\t\t\t\t{ noContentSelected && renderMediaButtons }\n\t\t\t\t<BlockToolbar anchorNodeRef={ anchorNodeRef.current } />\n\t\t\t</ScrollView>\n\t\t\t{ showKeyboardHideButton && (\n\t\t\t\t<ToolbarGroup passedStyle={ showKeyboardButtonStyles }>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Hide keyboard' ) }\n\t\t\t\t\t\ticon={ keyboardClose }\n\t\t\t\t\t\tonClick={ onHideKeyboard }\n\t\t\t\t\t\textraProps={ {\n\t\t\t\t\t\t\thint: __( 'Tap to hide the keyboard' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\thasInserterItems,\n\t\t\thasSelectedBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst { getEditorSettings } = select( editorStore );\n\t\tconst isAnyBlockSelected = hasSelectedBlock();\n\t\treturn {\n\t\t\thasRedo: select( editorStore ).hasEditorRedo(),\n\t\t\thasUndo: select( editorStore ).hasEditorUndo(),\n\t\t\t// This setting (richEditingEnabled) should not live in the block editor's setting.\n\t\t\tshowInserter:\n\t\t\t\tselect( editPostStore ).getEditorMode() === 'visual' &&\n\t\t\t\tgetEditorSettings().richEditingEnabled &&\n\t\t\t\thasInserterItems(\n\t\t\t\t\tgetBlockRootClientId( getBlockSelectionEnd() )\n\t\t\t\t),\n\t\t\tisTextModeEnabled:\n\t\t\t\tselect( editPostStore ).getEditorMode() === 'text',\n\t\t\tisRTL: select( blockEditorStore ).getSettings().isRTL,\n\t\t\tnoContentSelected: ! isAnyBlockSelected,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { clearSelectedBlock, insertBlock } =\n\t\t\tdispatch( blockEditorStore );\n\t\tconst { togglePostTitleSelection } = dispatch( editorStore );\n\n\t\treturn {\n\t\t\tredo: dispatch( editorStore ).redo,\n\t\t\tundo: dispatch( editorStore ).undo,\n\t\t\tonHideKeyboard() {\n\t\t\t\tclearSelectedBlock();\n\t\t\t\ttogglePostTitleSelection( false );\n\t\t\t},\n\t\t\tinsertBlock,\n\t\t};\n\t} ),\n\twithViewportMatch( { isLargeViewport: 'medium' } ),\n] )( HeaderToolbar );\n"]}
@@ -20,7 +20,7 @@ import { default as DevicePreview } from '../device-preview';
20
20
  import ViewLink from '../view-link';
21
21
  import MainDashboardButton from './main-dashboard-button';
22
22
  import { store as editPostStore } from '../../store';
23
- import DocumentTitle from './document-title';
23
+ import DocumentActions from './document-actions';
24
24
  const slideY = {
25
25
  hidden: {
26
26
  y: '-50px'
@@ -53,12 +53,10 @@ function Header({
53
53
  const {
54
54
  hasActiveMetaboxes,
55
55
  isPublishSidebarOpened,
56
- isSaving,
57
56
  showIconLabels
58
57
  } = useSelect(select => ({
59
58
  hasActiveMetaboxes: select(editPostStore).hasMetaBoxes(),
60
59
  isPublishSidebarOpened: select(editPostStore).isPublishSidebarOpened(),
61
- isSaving: select(editPostStore).isSavingMetaBoxes(),
62
60
  showIconLabels: select(editPostStore).isFeatureActive('showIconLabels')
63
61
  }), []);
64
62
  return createElement("div", {
@@ -79,8 +77,8 @@ function Header({
79
77
  },
80
78
  className: "edit-post-header__toolbar"
81
79
  }, createElement(HeaderToolbar, null), createElement("div", {
82
- className: "edit-post-header__document-title"
83
- }, createElement(DocumentTitle, null))), createElement(motion.div, {
80
+ className: "edit-post-header__center"
81
+ }, createElement(DocumentActions, null))), createElement(motion.div, {
84
82
  variants: slideY,
85
83
  transition: {
86
84
  type: 'tween',
@@ -94,14 +92,11 @@ function Header({
94
92
  // when the publish sidebar has been closed.
95
93
  createElement(PostSavedState, {
96
94
  forceIsDirty: hasActiveMetaboxes,
97
- forceIsSaving: isSaving,
98
95
  showIconLabels: showIconLabels
99
96
  }), createElement(DevicePreview, null), createElement(PostPreviewButton, {
100
- forceIsAutosaveable: hasActiveMetaboxes,
101
- forcePreviewLink: isSaving ? null : undefined
97
+ forceIsAutosaveable: hasActiveMetaboxes
102
98
  }), createElement(ViewLink, null), createElement(PostPublishButtonOrToggle, {
103
99
  forceIsDirty: hasActiveMetaboxes,
104
- forceIsSaving: isSaving,
105
100
  setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback
106
101
  }), (isLargeViewport || !showIconLabels) && createElement(Fragment, null, createElement(PinnedItems.Slot, {
107
102
  scope: "core/edit-post"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/header/index.js"],"names":["PostSavedState","PostPreviewButton","useSelect","PinnedItems","useViewportMatch","__unstableMotion","motion","FullscreenModeClose","HeaderToolbar","MoreMenu","PostPublishButtonOrToggle","default","DevicePreview","ViewLink","MainDashboardButton","store","editPostStore","DocumentTitle","slideY","hidden","y","hover","transition","type","delay","slideX","x","Header","setEntitiesSavedStatesCallback","isLargeViewport","hasActiveMetaboxes","isPublishSidebarOpened","isSaving","showIconLabels","select","hasMetaBoxes","isSavingMetaBoxes","isFeatureActive","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PostSavedState, PostPreviewButton } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { PinnedItems } from '@wordpress/interface';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { __unstableMotion as motion } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FullscreenModeClose from './fullscreen-mode-close';\nimport HeaderToolbar from './header-toolbar';\nimport MoreMenu from './more-menu';\nimport PostPublishButtonOrToggle from './post-publish-button-or-toggle';\nimport { default as DevicePreview } from '../device-preview';\nimport ViewLink from '../view-link';\nimport MainDashboardButton from './main-dashboard-button';\nimport { store as editPostStore } from '../../store';\nimport DocumentTitle from './document-title';\n\nconst slideY = {\n\thidden: { y: '-50px' },\n\thover: { y: 0, transition: { type: 'tween', delay: 0.2 } },\n};\n\nconst slideX = {\n\thidden: { x: '-100%' },\n\thover: { x: 0, transition: { type: 'tween', delay: 0.2 } },\n};\n\nfunction Header( { setEntitiesSavedStatesCallback } ) {\n\tconst isLargeViewport = useViewportMatch( 'large' );\n\tconst {\n\t\thasActiveMetaboxes,\n\t\tisPublishSidebarOpened,\n\t\tisSaving,\n\t\tshowIconLabels,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\tisPublishSidebarOpened:\n\t\t\t\tselect( editPostStore ).isPublishSidebarOpened(),\n\t\t\tisSaving: select( editPostStore ).isSavingMetaBoxes(),\n\t\t\tshowIconLabels:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'showIconLabels' ),\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-post-header\">\n\t\t\t<MainDashboardButton.Slot>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ slideX }\n\t\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\t>\n\t\t\t\t\t<FullscreenModeClose showTooltip />\n\t\t\t\t</motion.div>\n\t\t\t</MainDashboardButton.Slot>\n\t\t\t<motion.div\n\t\t\t\tvariants={ slideY }\n\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\tclassName=\"edit-post-header__toolbar\"\n\t\t\t>\n\t\t\t\t<HeaderToolbar />\n\t\t\t\t<div className=\"edit-post-header__document-title\">\n\t\t\t\t\t<DocumentTitle />\n\t\t\t\t</div>\n\t\t\t</motion.div>\n\t\t\t<motion.div\n\t\t\t\tvariants={ slideY }\n\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\tclassName=\"edit-post-header__settings\"\n\t\t\t>\n\t\t\t\t{ ! isPublishSidebarOpened && (\n\t\t\t\t\t// This button isn't completely hidden by the publish sidebar.\n\t\t\t\t\t// We can't hide the whole toolbar when the publish sidebar is open because\n\t\t\t\t\t// we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.\n\t\t\t\t\t// We track that DOM node to return focus to the PostPublishButtonOrToggle\n\t\t\t\t\t// when the publish sidebar has been closed.\n\t\t\t\t\t<PostSavedState\n\t\t\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\t\t\tforceIsSaving={ isSaving }\n\t\t\t\t\t\tshowIconLabels={ showIconLabels }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<DevicePreview />\n\t\t\t\t<PostPreviewButton\n\t\t\t\t\tforceIsAutosaveable={ hasActiveMetaboxes }\n\t\t\t\t\tforcePreviewLink={ isSaving ? null : undefined }\n\t\t\t\t/>\n\t\t\t\t<ViewLink />\n\t\t\t\t<PostPublishButtonOrToggle\n\t\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\t\tforceIsSaving={ isSaving }\n\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ ( isLargeViewport || ! showIconLabels ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-post\" />\n\t\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ showIconLabels && ! isLargeViewport && (\n\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</div>\n\t);\n}\n\nexport default Header;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/header/index.js"],"names":["PostSavedState","PostPreviewButton","useSelect","PinnedItems","useViewportMatch","__unstableMotion","motion","FullscreenModeClose","HeaderToolbar","MoreMenu","PostPublishButtonOrToggle","default","DevicePreview","ViewLink","MainDashboardButton","store","editPostStore","DocumentActions","slideY","hidden","y","hover","transition","type","delay","slideX","x","Header","setEntitiesSavedStatesCallback","isLargeViewport","hasActiveMetaboxes","isPublishSidebarOpened","showIconLabels","select","hasMetaBoxes","isFeatureActive"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PostSavedState, PostPreviewButton } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { PinnedItems } from '@wordpress/interface';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { __unstableMotion as motion } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FullscreenModeClose from './fullscreen-mode-close';\nimport HeaderToolbar from './header-toolbar';\nimport MoreMenu from './more-menu';\nimport PostPublishButtonOrToggle from './post-publish-button-or-toggle';\nimport { default as DevicePreview } from '../device-preview';\nimport ViewLink from '../view-link';\nimport MainDashboardButton from './main-dashboard-button';\nimport { store as editPostStore } from '../../store';\nimport DocumentActions from './document-actions';\n\nconst slideY = {\n\thidden: { y: '-50px' },\n\thover: { y: 0, transition: { type: 'tween', delay: 0.2 } },\n};\n\nconst slideX = {\n\thidden: { x: '-100%' },\n\thover: { x: 0, transition: { type: 'tween', delay: 0.2 } },\n};\n\nfunction Header( { setEntitiesSavedStatesCallback } ) {\n\tconst isLargeViewport = useViewportMatch( 'large' );\n\tconst { hasActiveMetaboxes, isPublishSidebarOpened, showIconLabels } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\t\tisPublishSidebarOpened:\n\t\t\t\t\tselect( editPostStore ).isPublishSidebarOpened(),\n\t\t\t\tshowIconLabels:\n\t\t\t\t\tselect( editPostStore ).isFeatureActive( 'showIconLabels' ),\n\t\t\t} ),\n\t\t\t[]\n\t\t);\n\n\treturn (\n\t\t<div className=\"edit-post-header\">\n\t\t\t<MainDashboardButton.Slot>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ slideX }\n\t\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\t>\n\t\t\t\t\t<FullscreenModeClose showTooltip />\n\t\t\t\t</motion.div>\n\t\t\t</MainDashboardButton.Slot>\n\t\t\t<motion.div\n\t\t\t\tvariants={ slideY }\n\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\tclassName=\"edit-post-header__toolbar\"\n\t\t\t>\n\t\t\t\t<HeaderToolbar />\n\t\t\t\t<div className=\"edit-post-header__center\">\n\t\t\t\t\t<DocumentActions />\n\t\t\t\t</div>\n\t\t\t</motion.div>\n\t\t\t<motion.div\n\t\t\t\tvariants={ slideY }\n\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\tclassName=\"edit-post-header__settings\"\n\t\t\t>\n\t\t\t\t{ ! isPublishSidebarOpened && (\n\t\t\t\t\t// This button isn't completely hidden by the publish sidebar.\n\t\t\t\t\t// We can't hide the whole toolbar when the publish sidebar is open because\n\t\t\t\t\t// we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.\n\t\t\t\t\t// We track that DOM node to return focus to the PostPublishButtonOrToggle\n\t\t\t\t\t// when the publish sidebar has been closed.\n\t\t\t\t\t<PostSavedState\n\t\t\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\t\t\tshowIconLabels={ showIconLabels }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<DevicePreview />\n\t\t\t\t<PostPreviewButton forceIsAutosaveable={ hasActiveMetaboxes } />\n\t\t\t\t<ViewLink />\n\t\t\t\t<PostPublishButtonOrToggle\n\t\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ ( isLargeViewport || ! showIconLabels ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-post\" />\n\t\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ showIconLabels && ! isLargeViewport && (\n\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</div>\n\t);\n}\n\nexport default Header;\n"]}
@@ -49,12 +49,31 @@ function ModeSwitcher() {
49
49
  return null;
50
50
  }
51
51
 
52
- if (!isRichEditingEnabled || !isCodeEditingEnabled) {
53
- return null;
52
+ let selectedMode = mode;
53
+
54
+ if (!isRichEditingEnabled && mode === 'visual') {
55
+ selectedMode = 'text';
56
+ }
57
+
58
+ if (!isCodeEditingEnabled && mode === 'text') {
59
+ selectedMode = 'visual';
54
60
  }
55
61
 
56
62
  const choices = MODES.map(choice => {
57
- if (choice.value !== mode) {
63
+ if (!isCodeEditingEnabled && choice.value === 'text') {
64
+ choice = { ...choice,
65
+ disabled: true
66
+ };
67
+ }
68
+
69
+ if (!isRichEditingEnabled && choice.value === 'visual') {
70
+ choice = { ...choice,
71
+ disabled: true,
72
+ info: __('You can enable the visual editor in your profile settings.')
73
+ };
74
+ }
75
+
76
+ if (choice.value !== selectedMode && !choice.disabled) {
58
77
  return { ...choice,
59
78
  shortcut
60
79
  };
@@ -66,7 +85,7 @@ function ModeSwitcher() {
66
85
  label: __('Editor')
67
86
  }, createElement(MenuItemsChoice, {
68
87
  choices: choices,
69
- value: mode,
88
+ value: selectedMode,
70
89
  onSelect: switchEditorMode
71
90
  }));
72
91
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/header/mode-switcher/index.js"],"names":["__","MenuItemsChoice","MenuGroup","useSelect","useDispatch","store","keyboardShortcutsStore","editorStore","editPostStore","MODES","value","label","ModeSwitcher","shortcut","isRichEditingEnabled","isCodeEditingEnabled","isEditingTemplate","mode","select","getShortcutRepresentation","getEditorSettings","richEditingEnabled","codeEditingEnabled","getEditorMode","switchEditorMode","choices","map","choice"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,EAA0BC,SAA1B,QAA2C,uBAA3C;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,sBAAlB,QAAgD,+BAAhD;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,mBAArC;AAEA;AACA;AACA;;AACA,SAASF,KAAK,IAAIG,aAAlB,QAAuC,gBAAvC;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMC,KAAK,GAAG,CACb;AACCC,EAAAA,KAAK,EAAE,QADR;AAECC,EAAAA,KAAK,EAAEX,EAAE,CAAE,eAAF;AAFV,CADa,EAKb;AACCU,EAAAA,KAAK,EAAE,MADR;AAECC,EAAAA,KAAK,EAAEX,EAAE,CAAE,aAAF;AAFV,CALa,CAAd;;AAWA,SAASY,YAAT,GAAwB;AACvB,QAAM;AACLC,IAAAA,QADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA,iBAJK;AAKLC,IAAAA;AALK,MAMFd,SAAS,CACVe,MAAF,KAAgB;AACfL,IAAAA,QAAQ,EAAEK,MAAM,CACfZ,sBADe,CAAN,CAERa,yBAFQ,CAEmB,4BAFnB,CADK;AAIfL,IAAAA,oBAAoB,EACnBI,MAAM,CAAEX,WAAF,CAAN,CAAsBa,iBAAtB,GAA0CC,kBAL5B;AAMfN,IAAAA,oBAAoB,EACnBG,MAAM,CAAEX,WAAF,CAAN,CAAsBa,iBAAtB,GAA0CE,kBAP5B;AAQfN,IAAAA,iBAAiB,EAAEE,MAAM,CAAEV,aAAF,CAAN,CAAwBQ,iBAAxB,EARJ;AASfC,IAAAA,IAAI,EAAEC,MAAM,CAAEV,aAAF,CAAN,CAAwBe,aAAxB;AATS,GAAhB,CADY,EAYZ,EAZY,CANb;AAoBA,QAAM;AAAEC,IAAAA;AAAF,MAAuBpB,WAAW,CAAEI,aAAF,CAAxC;;AAEA,MAAKQ,iBAAL,EAAyB;AACxB,WAAO,IAAP;AACA;;AAED,MAAK,CAAEF,oBAAF,IAA0B,CAAEC,oBAAjC,EAAwD;AACvD,WAAO,IAAP;AACA;;AAED,QAAMU,OAAO,GAAGhB,KAAK,CAACiB,GAAN,CAAaC,MAAF,IAAc;AACxC,QAAKA,MAAM,CAACjB,KAAP,KAAiBO,IAAtB,EAA6B;AAC5B,aAAO,EAAE,GAAGU,MAAL;AAAad,QAAAA;AAAb,OAAP;AACA;;AACD,WAAOc,MAAP;AACA,GALe,CAAhB;AAOA,SACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG3B,EAAE,CAAE,QAAF;AAArB,KACC,cAAC,eAAD;AACC,IAAA,OAAO,EAAGyB,OADX;AAEC,IAAA,KAAK,EAAGR,IAFT;AAGC,IAAA,QAAQ,EAAGO;AAHZ,IADD,CADD;AASA;;AAED,eAAeZ,YAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst {\n\t\tshortcut,\n\t\tisRichEditingEnabled,\n\t\tisCodeEditingEnabled,\n\t\tisEditingTemplate,\n\t\tmode,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\tshortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/edit-post/toggle-mode' ),\n\t\t\tisRichEditingEnabled:\n\t\t\t\tselect( editorStore ).getEditorSettings().richEditingEnabled,\n\t\t\tisCodeEditingEnabled:\n\t\t\t\tselect( editorStore ).getEditorSettings().codeEditingEnabled,\n\t\t\tisEditingTemplate: select( editPostStore ).isEditingTemplate(),\n\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { switchEditorMode } = useDispatch( editPostStore );\n\n\tif ( isEditingTemplate ) {\n\t\treturn null;\n\t}\n\n\tif ( ! isRichEditingEnabled || ! isCodeEditingEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( choice.value !== mode ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ mode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/header/mode-switcher/index.js"],"names":["__","MenuItemsChoice","MenuGroup","useSelect","useDispatch","store","keyboardShortcutsStore","editorStore","editPostStore","MODES","value","label","ModeSwitcher","shortcut","isRichEditingEnabled","isCodeEditingEnabled","isEditingTemplate","mode","select","getShortcutRepresentation","getEditorSettings","richEditingEnabled","codeEditingEnabled","getEditorMode","switchEditorMode","selectedMode","choices","map","choice","disabled","info"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst {\n\t\tshortcut,\n\t\tisRichEditingEnabled,\n\t\tisCodeEditingEnabled,\n\t\tisEditingTemplate,\n\t\tmode,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\tshortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/edit-post/toggle-mode' ),\n\t\t\tisRichEditingEnabled:\n\t\t\t\tselect( editorStore ).getEditorSettings().richEditingEnabled,\n\t\t\tisCodeEditingEnabled:\n\t\t\t\tselect( editorStore ).getEditorSettings().codeEditingEnabled,\n\t\t\tisEditingTemplate: select( editPostStore ).isEditingTemplate(),\n\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { switchEditorMode } = useDispatch( editPostStore );\n\n\tif ( isEditingTemplate ) {\n\t\treturn null;\n\t}\n\n\tlet selectedMode = mode;\n\tif ( ! isRichEditingEnabled && mode === 'visual' ) {\n\t\tselectedMode = 'text';\n\t}\n\tif ( ! isCodeEditingEnabled && mode === 'text' ) {\n\t\tselectedMode = 'visual';\n\t}\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( ! isCodeEditingEnabled && choice.value === 'text' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t}\n\t\tif ( ! isRichEditingEnabled && choice.value === 'visual' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t\tinfo: __(\n\t\t\t\t\t'You can enable the visual editor in your profile settings.'\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\tif ( choice.value !== selectedMode && ! choice.disabled ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ selectedMode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n"]}
@@ -13,7 +13,6 @@ import { PostPublishButton, store as editorStore } from '@wordpress/editor';
13
13
  import { store as editPostStore } from '../../store';
14
14
  export function PostPublishButtonOrToggle({
15
15
  forceIsDirty,
16
- forceIsSaving,
17
16
  hasPublishAction,
18
17
  isBeingScheduled,
19
18
  isPending,
@@ -63,7 +62,6 @@ export function PostPublishButtonOrToggle({
63
62
 
64
63
  return createElement(PostPublishButton, {
65
64
  forceIsDirty: forceIsDirty,
66
- forceIsSaving: forceIsSaving,
67
65
  isOpen: isPublishSidebarOpened,
68
66
  isToggle: component === IS_TOGGLE,
69
67
  onToggle: togglePublishSidebar,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/header/post-publish-button-or-toggle.js"],"names":["useViewportMatch","compose","withDispatch","withSelect","PostPublishButton","store","editorStore","editPostStore","PostPublishButtonOrToggle","forceIsDirty","forceIsSaving","hasPublishAction","isBeingScheduled","isPending","isPublished","isPublishSidebarEnabled","isPublishSidebarOpened","isScheduled","togglePublishSidebar","setEntitiesSavedStatesCallback","IS_TOGGLE","IS_BUTTON","isSmallerThanMediumViewport","component","select","getCurrentPost","_links","isEditedPostBeingScheduled","isCurrentPostPending","isCurrentPostPublished","isCurrentPostScheduled","dispatch"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,gBAAT,EAA2BC,OAA3B,QAA0C,oBAA1C;AACA,SAASC,YAAT,EAAuBC,UAAvB,QAAyC,iBAAzC;AACA,SAASC,iBAAT,EAA4BC,KAAK,IAAIC,WAArC,QAAwD,mBAAxD;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,aAAlB,QAAuC,aAAvC;AAEA,OAAO,SAASC,yBAAT,CAAoC;AAC1CC,EAAAA,YAD0C;AAE1CC,EAAAA,aAF0C;AAG1CC,EAAAA,gBAH0C;AAI1CC,EAAAA,gBAJ0C;AAK1CC,EAAAA,SAL0C;AAM1CC,EAAAA,WAN0C;AAO1CC,EAAAA,uBAP0C;AAQ1CC,EAAAA,sBAR0C;AAS1CC,EAAAA,WAT0C;AAU1CC,EAAAA,oBAV0C;AAW1CC,EAAAA;AAX0C,CAApC,EAYH;AACH,QAAMC,SAAS,GAAG,QAAlB;AACA,QAAMC,SAAS,GAAG,QAAlB;AACA,QAAMC,2BAA2B,GAAGtB,gBAAgB,CAAE,QAAF,EAAY,GAAZ,CAApD;AACA,MAAIuB,SAAJ;AAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACC,MACCT,WAAW,IACTG,WAAW,IAAIL,gBADjB,IAEEC,SAAS,IAAI,CAAEF,gBAAf,IAAmC,CAAEW,2BAHxC,EAIE;AACDC,IAAAA,SAAS,GAAGF,SAAZ;AACA,GAND,MAMO,IAAKC,2BAAL,EAAmC;AACzCC,IAAAA,SAAS,GAAGH,SAAZ;AACA,GAFM,MAEA,IAAKL,uBAAL,EAA+B;AACrCQ,IAAAA,SAAS,GAAGH,SAAZ;AACA,GAFM,MAEA;AACNG,IAAAA,SAAS,GAAGF,SAAZ;AACA;;AAED,SACC,cAAC,iBAAD;AACC,IAAA,YAAY,EAAGZ,YADhB;AAEC,IAAA,aAAa,EAAGC,aAFjB;AAGC,IAAA,MAAM,EAAGM,sBAHV;AAIC,IAAA,QAAQ,EAAGO,SAAS,KAAKH,SAJ1B;AAKC,IAAA,QAAQ,EAAGF,oBALZ;AAMC,IAAA,8BAA8B,EAAGC;AANlC,IADD;AAUA;AAED,eAAelB,OAAO,CACrBE,UAAU,CAAIqB,MAAF;AAAA;;AAAA,SAAgB;AAC3Bb,IAAAA,gBAAgB,2BACfa,MAAM,CAAElB,WAAF,CAAN,CAAsBmB,cAAtB,IAAwCC,MAAxC,GACC,mBADD,CADe,yEAGV,KAJqB;AAK3Bd,IAAAA,gBAAgB,EAAEY,MAAM,CAAElB,WAAF,CAAN,CAAsBqB,0BAAtB,EALS;AAM3Bd,IAAAA,SAAS,EAAEW,MAAM,CAAElB,WAAF,CAAN,CAAsBsB,oBAAtB,EANgB;AAO3Bd,IAAAA,WAAW,EAAEU,MAAM,CAAElB,WAAF,CAAN,CAAsBuB,sBAAtB,EAPc;AAQ3Bd,IAAAA,uBAAuB,EACtBS,MAAM,CAAElB,WAAF,CAAN,CAAsBS,uBAAtB,EAT0B;AAU3BC,IAAAA,sBAAsB,EACrBQ,MAAM,CAAEjB,aAAF,CAAN,CAAwBS,sBAAxB,EAX0B;AAY3BC,IAAAA,WAAW,EAAEO,MAAM,CAAElB,WAAF,CAAN,CAAsBwB,sBAAtB;AAZc,GAAhB;AAAA,CAAF,CADW,EAerB5B,YAAY,CAAI6B,QAAF,IAAgB;AAC7B,QAAM;AAAEb,IAAAA;AAAF,MAA2Ba,QAAQ,CAAExB,aAAF,CAAzC;AACA,SAAO;AACNW,IAAAA;AADM,GAAP;AAGA,CALW,CAfS,CAAP,CAqBZV,yBArBY,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch, compose } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { PostPublishButton, store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\n\nexport function PostPublishButtonOrToggle( {\n\tforceIsDirty,\n\tforceIsSaving,\n\thasPublishAction,\n\tisBeingScheduled,\n\tisPending,\n\tisPublished,\n\tisPublishSidebarEnabled,\n\tisPublishSidebarOpened,\n\tisScheduled,\n\ttogglePublishSidebar,\n\tsetEntitiesSavedStatesCallback,\n} ) {\n\tconst IS_TOGGLE = 'toggle';\n\tconst IS_BUTTON = 'button';\n\tconst isSmallerThanMediumViewport = useViewportMatch( 'medium', '<' );\n\tlet component;\n\n\t/**\n\t * Conditions to show a BUTTON (publish directly) or a TOGGLE (open publish sidebar):\n\t *\n\t * 1) We want to show a BUTTON when the post status is at the _final stage_\n\t * for a particular role (see https://wordpress.org/documentation/article/post-status/):\n\t *\n\t * - is published\n\t * - is scheduled to be published\n\t * - is pending and can't be published (but only for viewports >= medium).\n\t * \t Originally, we considered showing a button for pending posts that couldn't be published\n\t * \t (for example, for an author with the contributor role). Some languages can have\n\t * \t long translations for \"Submit for review\", so given the lack of UI real estate available\n\t * \t we decided to take into account the viewport in that case.\n\t * \t See: https://github.com/WordPress/gutenberg/issues/10475\n\t *\n\t * 2) Then, in small viewports, we'll show a TOGGLE.\n\t *\n\t * 3) Finally, we'll use the publish sidebar status to decide:\n\t *\n\t * - if it is enabled, we show a TOGGLE\n\t * - if it is disabled, we show a BUTTON\n\t */\n\tif (\n\t\tisPublished ||\n\t\t( isScheduled && isBeingScheduled ) ||\n\t\t( isPending && ! hasPublishAction && ! isSmallerThanMediumViewport )\n\t) {\n\t\tcomponent = IS_BUTTON;\n\t} else if ( isSmallerThanMediumViewport ) {\n\t\tcomponent = IS_TOGGLE;\n\t} else if ( isPublishSidebarEnabled ) {\n\t\tcomponent = IS_TOGGLE;\n\t} else {\n\t\tcomponent = IS_BUTTON;\n\t}\n\n\treturn (\n\t\t<PostPublishButton\n\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\tisOpen={ isPublishSidebarOpened }\n\t\t\tisToggle={ component === IS_TOGGLE }\n\t\t\tonToggle={ togglePublishSidebar }\n\t\t\tsetEntitiesSavedStatesCallback={ setEntitiesSavedStatesCallback }\n\t\t/>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select ) => ( {\n\t\thasPublishAction:\n\t\t\tselect( editorStore ).getCurrentPost()?._links?.[\n\t\t\t\t'wp:action-publish'\n\t\t\t] ?? false,\n\t\tisBeingScheduled: select( editorStore ).isEditedPostBeingScheduled(),\n\t\tisPending: select( editorStore ).isCurrentPostPending(),\n\t\tisPublished: select( editorStore ).isCurrentPostPublished(),\n\t\tisPublishSidebarEnabled:\n\t\t\tselect( editorStore ).isPublishSidebarEnabled(),\n\t\tisPublishSidebarOpened:\n\t\t\tselect( editPostStore ).isPublishSidebarOpened(),\n\t\tisScheduled: select( editorStore ).isCurrentPostScheduled(),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { togglePublishSidebar } = dispatch( editPostStore );\n\t\treturn {\n\t\t\ttogglePublishSidebar,\n\t\t};\n\t} )\n)( PostPublishButtonOrToggle );\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/header/post-publish-button-or-toggle.js"],"names":["useViewportMatch","compose","withDispatch","withSelect","PostPublishButton","store","editorStore","editPostStore","PostPublishButtonOrToggle","forceIsDirty","hasPublishAction","isBeingScheduled","isPending","isPublished","isPublishSidebarEnabled","isPublishSidebarOpened","isScheduled","togglePublishSidebar","setEntitiesSavedStatesCallback","IS_TOGGLE","IS_BUTTON","isSmallerThanMediumViewport","component","select","getCurrentPost","_links","isEditedPostBeingScheduled","isCurrentPostPending","isCurrentPostPublished","isCurrentPostScheduled","dispatch"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,gBAAT,EAA2BC,OAA3B,QAA0C,oBAA1C;AACA,SAASC,YAAT,EAAuBC,UAAvB,QAAyC,iBAAzC;AACA,SAASC,iBAAT,EAA4BC,KAAK,IAAIC,WAArC,QAAwD,mBAAxD;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,aAAlB,QAAuC,aAAvC;AAEA,OAAO,SAASC,yBAAT,CAAoC;AAC1CC,EAAAA,YAD0C;AAE1CC,EAAAA,gBAF0C;AAG1CC,EAAAA,gBAH0C;AAI1CC,EAAAA,SAJ0C;AAK1CC,EAAAA,WAL0C;AAM1CC,EAAAA,uBAN0C;AAO1CC,EAAAA,sBAP0C;AAQ1CC,EAAAA,WAR0C;AAS1CC,EAAAA,oBAT0C;AAU1CC,EAAAA;AAV0C,CAApC,EAWH;AACH,QAAMC,SAAS,GAAG,QAAlB;AACA,QAAMC,SAAS,GAAG,QAAlB;AACA,QAAMC,2BAA2B,GAAGrB,gBAAgB,CAAE,QAAF,EAAY,GAAZ,CAApD;AACA,MAAIsB,SAAJ;AAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACC,MACCT,WAAW,IACTG,WAAW,IAAIL,gBADjB,IAEEC,SAAS,IAAI,CAAEF,gBAAf,IAAmC,CAAEW,2BAHxC,EAIE;AACDC,IAAAA,SAAS,GAAGF,SAAZ;AACA,GAND,MAMO,IAAKC,2BAAL,EAAmC;AACzCC,IAAAA,SAAS,GAAGH,SAAZ;AACA,GAFM,MAEA,IAAKL,uBAAL,EAA+B;AACrCQ,IAAAA,SAAS,GAAGH,SAAZ;AACA,GAFM,MAEA;AACNG,IAAAA,SAAS,GAAGF,SAAZ;AACA;;AAED,SACC,cAAC,iBAAD;AACC,IAAA,YAAY,EAAGX,YADhB;AAEC,IAAA,MAAM,EAAGM,sBAFV;AAGC,IAAA,QAAQ,EAAGO,SAAS,KAAKH,SAH1B;AAIC,IAAA,QAAQ,EAAGF,oBAJZ;AAKC,IAAA,8BAA8B,EAAGC;AALlC,IADD;AASA;AAED,eAAejB,OAAO,CACrBE,UAAU,CAAIoB,MAAF;AAAA;;AAAA,SAAgB;AAC3Bb,IAAAA,gBAAgB,2BACfa,MAAM,CAAEjB,WAAF,CAAN,CAAsBkB,cAAtB,IAAwCC,MAAxC,GACC,mBADD,CADe,yEAGV,KAJqB;AAK3Bd,IAAAA,gBAAgB,EAAEY,MAAM,CAAEjB,WAAF,CAAN,CAAsBoB,0BAAtB,EALS;AAM3Bd,IAAAA,SAAS,EAAEW,MAAM,CAAEjB,WAAF,CAAN,CAAsBqB,oBAAtB,EANgB;AAO3Bd,IAAAA,WAAW,EAAEU,MAAM,CAAEjB,WAAF,CAAN,CAAsBsB,sBAAtB,EAPc;AAQ3Bd,IAAAA,uBAAuB,EACtBS,MAAM,CAAEjB,WAAF,CAAN,CAAsBQ,uBAAtB,EAT0B;AAU3BC,IAAAA,sBAAsB,EACrBQ,MAAM,CAAEhB,aAAF,CAAN,CAAwBQ,sBAAxB,EAX0B;AAY3BC,IAAAA,WAAW,EAAEO,MAAM,CAAEjB,WAAF,CAAN,CAAsBuB,sBAAtB;AAZc,GAAhB;AAAA,CAAF,CADW,EAerB3B,YAAY,CAAI4B,QAAF,IAAgB;AAC7B,QAAM;AAAEb,IAAAA;AAAF,MAA2Ba,QAAQ,CAAEvB,aAAF,CAAzC;AACA,SAAO;AACNU,IAAAA;AADM,GAAP;AAGA,CALW,CAfS,CAAP,CAqBZT,yBArBY,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch, compose } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { PostPublishButton, store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\n\nexport function PostPublishButtonOrToggle( {\n\tforceIsDirty,\n\thasPublishAction,\n\tisBeingScheduled,\n\tisPending,\n\tisPublished,\n\tisPublishSidebarEnabled,\n\tisPublishSidebarOpened,\n\tisScheduled,\n\ttogglePublishSidebar,\n\tsetEntitiesSavedStatesCallback,\n} ) {\n\tconst IS_TOGGLE = 'toggle';\n\tconst IS_BUTTON = 'button';\n\tconst isSmallerThanMediumViewport = useViewportMatch( 'medium', '<' );\n\tlet component;\n\n\t/**\n\t * Conditions to show a BUTTON (publish directly) or a TOGGLE (open publish sidebar):\n\t *\n\t * 1) We want to show a BUTTON when the post status is at the _final stage_\n\t * for a particular role (see https://wordpress.org/documentation/article/post-status/):\n\t *\n\t * - is published\n\t * - is scheduled to be published\n\t * - is pending and can't be published (but only for viewports >= medium).\n\t * \t Originally, we considered showing a button for pending posts that couldn't be published\n\t * \t (for example, for an author with the contributor role). Some languages can have\n\t * \t long translations for \"Submit for review\", so given the lack of UI real estate available\n\t * \t we decided to take into account the viewport in that case.\n\t * \t See: https://github.com/WordPress/gutenberg/issues/10475\n\t *\n\t * 2) Then, in small viewports, we'll show a TOGGLE.\n\t *\n\t * 3) Finally, we'll use the publish sidebar status to decide:\n\t *\n\t * - if it is enabled, we show a TOGGLE\n\t * - if it is disabled, we show a BUTTON\n\t */\n\tif (\n\t\tisPublished ||\n\t\t( isScheduled && isBeingScheduled ) ||\n\t\t( isPending && ! hasPublishAction && ! isSmallerThanMediumViewport )\n\t) {\n\t\tcomponent = IS_BUTTON;\n\t} else if ( isSmallerThanMediumViewport ) {\n\t\tcomponent = IS_TOGGLE;\n\t} else if ( isPublishSidebarEnabled ) {\n\t\tcomponent = IS_TOGGLE;\n\t} else {\n\t\tcomponent = IS_BUTTON;\n\t}\n\n\treturn (\n\t\t<PostPublishButton\n\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\tisOpen={ isPublishSidebarOpened }\n\t\t\tisToggle={ component === IS_TOGGLE }\n\t\t\tonToggle={ togglePublishSidebar }\n\t\t\tsetEntitiesSavedStatesCallback={ setEntitiesSavedStatesCallback }\n\t\t/>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select ) => ( {\n\t\thasPublishAction:\n\t\t\tselect( editorStore ).getCurrentPost()?._links?.[\n\t\t\t\t'wp:action-publish'\n\t\t\t] ?? false,\n\t\tisBeingScheduled: select( editorStore ).isEditedPostBeingScheduled(),\n\t\tisPending: select( editorStore ).isCurrentPostPending(),\n\t\tisPublished: select( editorStore ).isCurrentPostPublished(),\n\t\tisPublishSidebarEnabled:\n\t\t\tselect( editorStore ).isPublishSidebarEnabled(),\n\t\tisPublishSidebarOpened:\n\t\t\tselect( editPostStore ).isPublishSidebarOpened(),\n\t\tisScheduled: select( editorStore ).isCurrentPostScheduled(),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { togglePublishSidebar } = dispatch( editPostStore );\n\t\treturn {\n\t\t\ttogglePublishSidebar,\n\t\t};\n\t} )\n)( PostPublishButtonOrToggle );\n"]}
@@ -32,16 +32,12 @@ export default function ActionsPanel({
32
32
  const {
33
33
  publishSidebarOpened,
34
34
  hasActiveMetaboxes,
35
- isSavingMetaBoxes,
36
35
  hasNonPostEntityChanges
37
- } = useSelect(select => {
38
- return {
39
- publishSidebarOpened: select(editPostStore).isPublishSidebarOpened(),
40
- hasActiveMetaboxes: select(editPostStore).hasMetaBoxes(),
41
- isSavingMetaBoxes: select(editPostStore).isSavingMetaBoxes(),
42
- hasNonPostEntityChanges: select(editorStore).hasNonPostEntityChanges()
43
- };
44
- }, []);
36
+ } = useSelect(select => ({
37
+ publishSidebarOpened: select(editPostStore).isPublishSidebarOpened(),
38
+ hasActiveMetaboxes: select(editPostStore).hasMetaBoxes(),
39
+ hasNonPostEntityChanges: select(editorStore).hasNonPostEntityChanges()
40
+ }), []);
45
41
  const openEntitiesSavedStates = useCallback(() => setEntitiesSavedStatesCallback(true), []); // It is ok for these components to be unmounted when not in visual use.
46
42
  // We don't want more than one present at a time, decide which to render.
47
43
 
@@ -51,7 +47,6 @@ export default function ActionsPanel({
51
47
  unmountableContent = createElement(PostPublishPanel, {
52
48
  onClose: closePublishSidebar,
53
49
  forceIsDirty: hasActiveMetaboxes,
54
- forceIsSaving: isSavingMetaBoxes,
55
50
  PrePublishExtension: PluginPrePublishPanel.Slot,
56
51
  PostPublishExtension: PluginPostPublishPanel.Slot
57
52
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/layout/actions-panel.js"],"names":["EntitiesSavedStates","PostPublishPanel","store","editorStore","useSelect","useDispatch","Button","createSlotFill","__","useCallback","PluginPostPublishPanel","PluginPrePublishPanel","editPostStore","Fill","Slot","ActionsPanelFill","ActionsPanel","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","isEntitiesSavedStatesOpen","closePublishSidebar","togglePublishSidebar","publishSidebarOpened","hasActiveMetaboxes","isSavingMetaBoxes","hasNonPostEntityChanges","select","isPublishSidebarOpened","hasMetaBoxes","openEntitiesSavedStates","unmountableContent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tEntitiesSavedStates,\n\tPostPublishPanel,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, createSlotFill } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport PluginPostPublishPanel from '../sidebar/plugin-post-publish-panel';\nimport PluginPrePublishPanel from '../sidebar/plugin-pre-publish-panel';\nimport { store as editPostStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'ActionsPanel' );\n\nexport const ActionsPanelFill = Fill;\n\nexport default function ActionsPanel( {\n\tsetEntitiesSavedStatesCallback,\n\tcloseEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n} ) {\n\tconst { closePublishSidebar, togglePublishSidebar } =\n\t\tuseDispatch( editPostStore );\n\tconst {\n\t\tpublishSidebarOpened,\n\t\thasActiveMetaboxes,\n\t\tisSavingMetaBoxes,\n\t\thasNonPostEntityChanges,\n\t} = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpublishSidebarOpened:\n\t\t\t\tselect( editPostStore ).isPublishSidebarOpened(),\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\tisSavingMetaBoxes: select( editPostStore ).isSavingMetaBoxes(),\n\t\t\thasNonPostEntityChanges:\n\t\t\t\tselect( editorStore ).hasNonPostEntityChanges(),\n\t\t};\n\t}, [] );\n\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setEntitiesSavedStatesCallback( true ),\n\t\t[]\n\t);\n\n\t// It is ok for these components to be unmounted when not in visual use.\n\t// We don't want more than one present at a time, decide which to render.\n\tlet unmountableContent;\n\tif ( publishSidebarOpened ) {\n\t\tunmountableContent = (\n\t\t\t<PostPublishPanel\n\t\t\t\tonClose={ closePublishSidebar }\n\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\tforceIsSaving={ isSavingMetaBoxes }\n\t\t\t\tPrePublishExtension={ PluginPrePublishPanel.Slot }\n\t\t\t\tPostPublishExtension={ PluginPostPublishPanel.Slot }\n\t\t\t/>\n\t\t);\n\t} else if ( hasNonPostEntityChanges ) {\n\t\tunmountableContent = (\n\t\t\t<div className=\"edit-post-layout__toggle-entities-saved-states-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"edit-post-layout__toggle-entities-saved-states-panel-button\"\n\t\t\t\t\tonClick={ openEntitiesSavedStates }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tunmountableContent = (\n\t\t\t<div className=\"edit-post-layout__toggle-publish-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"edit-post-layout__toggle-publish-panel-button\"\n\t\t\t\t\tonClick={ togglePublishSidebar }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open publish panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Since EntitiesSavedStates controls its own panel, we can keep it\n\t// always mounted to retain its own component state (such as checkboxes).\n\treturn (\n\t\t<>\n\t\t\t{ isEntitiesSavedStatesOpen && (\n\t\t\t\t<EntitiesSavedStates close={ closeEntitiesSavedStates } />\n\t\t\t) }\n\t\t\t<Slot bubblesVirtually />\n\t\t\t{ ! isEntitiesSavedStatesOpen && unmountableContent }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/layout/actions-panel.js"],"names":["EntitiesSavedStates","PostPublishPanel","store","editorStore","useSelect","useDispatch","Button","createSlotFill","__","useCallback","PluginPostPublishPanel","PluginPrePublishPanel","editPostStore","Fill","Slot","ActionsPanelFill","ActionsPanel","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","isEntitiesSavedStatesOpen","closePublishSidebar","togglePublishSidebar","publishSidebarOpened","hasActiveMetaboxes","hasNonPostEntityChanges","select","isPublishSidebarOpened","hasMetaBoxes","openEntitiesSavedStates","unmountableContent"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,mBADD,EAECC,gBAFD,EAGCC,KAAK,IAAIC,WAHV,QAIO,mBAJP;AAKA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,MAAT,EAAiBC,cAAjB,QAAuC,uBAAvC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,QAA4B,oBAA5B;AACA;AACA;AACA;;AACA,OAAOC,sBAAP,MAAmC,sCAAnC;AACA,OAAOC,qBAAP,MAAkC,qCAAlC;AACA,SAAST,KAAK,IAAIU,aAAlB,QAAuC,aAAvC;AAEA,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiBP,cAAc,CAAE,cAAF,CAArC;AAEA,OAAO,MAAMQ,gBAAgB,GAAGF,IAAzB;AAEP,eAAe,SAASG,YAAT,CAAuB;AACrCC,EAAAA,8BADqC;AAErCC,EAAAA,wBAFqC;AAGrCC,EAAAA;AAHqC,CAAvB,EAIX;AACH,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MACLhB,WAAW,CAAEO,aAAF,CADZ;AAEA,QAAM;AACLU,IAAAA,oBADK;AAELC,IAAAA,kBAFK;AAGLC,IAAAA;AAHK,MAIFpB,SAAS,CACVqB,MAAF,KAAgB;AACfH,IAAAA,oBAAoB,EACnBG,MAAM,CAAEb,aAAF,CAAN,CAAwBc,sBAAxB,EAFc;AAGfH,IAAAA,kBAAkB,EAAEE,MAAM,CAAEb,aAAF,CAAN,CAAwBe,YAAxB,EAHL;AAIfH,IAAAA,uBAAuB,EACtBC,MAAM,CAAEtB,WAAF,CAAN,CAAsBqB,uBAAtB;AALc,GAAhB,CADY,EAQZ,EARY,CAJb;AAeA,QAAMI,uBAAuB,GAAGnB,WAAW,CAC1C,MAAMQ,8BAA8B,CAAE,IAAF,CADM,EAE1C,EAF0C,CAA3C,CAlBG,CAuBH;AACA;;AACA,MAAIY,kBAAJ;;AACA,MAAKP,oBAAL,EAA4B;AAC3BO,IAAAA,kBAAkB,GACjB,cAAC,gBAAD;AACC,MAAA,OAAO,EAAGT,mBADX;AAEC,MAAA,YAAY,EAAGG,kBAFhB;AAGC,MAAA,mBAAmB,EAAGZ,qBAAqB,CAACG,IAH7C;AAIC,MAAA,oBAAoB,EAAGJ,sBAAsB,CAACI;AAJ/C,MADD;AAQA,GATD,MASO,IAAKU,uBAAL,EAA+B;AACrCK,IAAAA,kBAAkB,GACjB;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,MAAD;AACC,MAAA,OAAO,EAAC,WADT;AAEC,MAAA,SAAS,EAAC,6DAFX;AAGC,MAAA,OAAO,EAAGD,uBAHX;AAIC,uBAAgB;AAJjB,OAMGpB,EAAE,CAAE,iBAAF,CANL,CADD,CADD;AAYA,GAbM,MAaA;AACNqB,IAAAA,kBAAkB,GACjB;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,MAAD;AACC,MAAA,OAAO,EAAC,WADT;AAEC,MAAA,SAAS,EAAC,+CAFX;AAGC,MAAA,OAAO,EAAGR,oBAHX;AAIC,uBAAgB;AAJjB,OAMGb,EAAE,CAAE,oBAAF,CANL,CADD,CADD;AAYA,GA7DE,CA+DH;AACA;;;AACA,SACC,8BACGW,yBAAyB,IAC1B,cAAC,mBAAD;AAAqB,IAAA,KAAK,EAAGD;AAA7B,IAFF,EAIC,cAAC,IAAD;AAAM,IAAA,gBAAgB;AAAtB,IAJD,EAKG,CAAEC,yBAAF,IAA+BU,kBALlC,CADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tEntitiesSavedStates,\n\tPostPublishPanel,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, createSlotFill } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport PluginPostPublishPanel from '../sidebar/plugin-post-publish-panel';\nimport PluginPrePublishPanel from '../sidebar/plugin-pre-publish-panel';\nimport { store as editPostStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'ActionsPanel' );\n\nexport const ActionsPanelFill = Fill;\n\nexport default function ActionsPanel( {\n\tsetEntitiesSavedStatesCallback,\n\tcloseEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n} ) {\n\tconst { closePublishSidebar, togglePublishSidebar } =\n\t\tuseDispatch( editPostStore );\n\tconst {\n\t\tpublishSidebarOpened,\n\t\thasActiveMetaboxes,\n\t\thasNonPostEntityChanges,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\tpublishSidebarOpened:\n\t\t\t\tselect( editPostStore ).isPublishSidebarOpened(),\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\thasNonPostEntityChanges:\n\t\t\t\tselect( editorStore ).hasNonPostEntityChanges(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setEntitiesSavedStatesCallback( true ),\n\t\t[]\n\t);\n\n\t// It is ok for these components to be unmounted when not in visual use.\n\t// We don't want more than one present at a time, decide which to render.\n\tlet unmountableContent;\n\tif ( publishSidebarOpened ) {\n\t\tunmountableContent = (\n\t\t\t<PostPublishPanel\n\t\t\t\tonClose={ closePublishSidebar }\n\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\tPrePublishExtension={ PluginPrePublishPanel.Slot }\n\t\t\t\tPostPublishExtension={ PluginPostPublishPanel.Slot }\n\t\t\t/>\n\t\t);\n\t} else if ( hasNonPostEntityChanges ) {\n\t\tunmountableContent = (\n\t\t\t<div className=\"edit-post-layout__toggle-entities-saved-states-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"edit-post-layout__toggle-entities-saved-states-panel-button\"\n\t\t\t\t\tonClick={ openEntitiesSavedStates }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tunmountableContent = (\n\t\t\t<div className=\"edit-post-layout__toggle-publish-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"edit-post-layout__toggle-publish-panel-button\"\n\t\t\t\t\tonClick={ togglePublishSidebar }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open publish panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Since EntitiesSavedStates controls its own panel, we can keep it\n\t// always mounted to retain its own component state (such as checkboxes).\n\treturn (\n\t\t<>\n\t\t\t{ isEntitiesSavedStatesOpen && (\n\t\t\t\t<EntitiesSavedStates close={ closeEntitiesSavedStates } />\n\t\t\t) }\n\t\t\t<Slot bubblesVirtually />\n\t\t\t{ ! isEntitiesSavedStatesOpen && unmountableContent }\n\t\t</>\n\t);\n}\n"]}