@wordpress/editor 13.24.1 → 13.26.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 (307) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/document-bar/index.js +164 -0
  4. package/build/components/document-bar/index.js.map +1 -0
  5. package/build/components/document-outline/index.js +82 -1
  6. package/build/components/document-outline/index.js.map +1 -1
  7. package/build/components/document-tools/index.js +160 -0
  8. package/build/components/document-tools/index.js.map +1 -0
  9. package/build/components/editor-canvas/edit-template-blocks-notification.js +106 -0
  10. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
  11. package/build/components/editor-canvas/index.js +298 -0
  12. package/build/components/editor-canvas/index.js.map +1 -0
  13. package/build/components/entities-saved-states/index.js +3 -1
  14. package/build/components/entities-saved-states/index.js.map +1 -1
  15. package/build/components/global-keyboard-shortcuts/index.js +12 -2
  16. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  17. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
  18. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  19. package/build/components/index.js +72 -8
  20. package/build/components/index.js.map +1 -1
  21. package/build/components/index.native.js +9 -1
  22. package/build/components/index.native.js.map +1 -1
  23. package/build/components/inserter-sidebar/index.js +77 -0
  24. package/build/components/inserter-sidebar/index.js.map +1 -0
  25. package/build/components/list-view-sidebar/index.js +150 -0
  26. package/build/components/list-view-sidebar/index.js.map +1 -0
  27. package/build/components/list-view-sidebar/list-view-outline.js +28 -0
  28. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -0
  29. package/build/components/offline-status/index.native.js +85 -0
  30. package/build/components/offline-status/index.native.js.map +1 -0
  31. package/build/components/page-attributes/panel.js +63 -0
  32. package/build/components/page-attributes/panel.js.map +1 -0
  33. package/build/components/post-discussion/panel.js +59 -0
  34. package/build/components/post-discussion/panel.js.map +1 -0
  35. package/build/components/post-excerpt/check.js +19 -0
  36. package/build/components/post-excerpt/check.js.map +1 -1
  37. package/build/components/post-excerpt/panel.js +55 -0
  38. package/build/components/post-excerpt/panel.js.map +1 -0
  39. package/build/components/post-excerpt/plugin.js +72 -0
  40. package/build/components/post-excerpt/plugin.js.map +1 -0
  41. package/build/components/post-featured-image/index.js +5 -8
  42. package/build/components/post-featured-image/index.js.map +1 -1
  43. package/build/components/post-featured-image/panel.js +60 -0
  44. package/build/components/post-featured-image/panel.js.map +1 -0
  45. package/build/components/post-last-revision/panel.js +27 -0
  46. package/build/components/post-last-revision/panel.js.map +1 -0
  47. package/build/components/post-publish-button/index.js +1 -0
  48. package/build/components/post-publish-button/index.js.map +1 -1
  49. package/build/components/post-publish-panel/maybe-upload-media.js +2 -4
  50. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  51. package/build/components/post-saved-state/index.js +13 -8
  52. package/build/components/post-saved-state/index.js.map +1 -1
  53. package/build/components/post-schedule/panel.js +1 -1
  54. package/build/components/post-schedule/panel.js.map +1 -1
  55. package/build/components/post-taxonomies/panel.js +68 -0
  56. package/build/components/post-taxonomies/panel.js.map +1 -0
  57. package/build/components/post-template/block-theme.js +100 -0
  58. package/build/components/post-template/block-theme.js.map +1 -0
  59. package/build/components/post-template/classic-theme.js +171 -0
  60. package/build/components/post-template/classic-theme.js.map +1 -0
  61. package/build/components/post-template/create-new-template-modal.js +98 -0
  62. package/build/components/post-template/create-new-template-modal.js.map +1 -0
  63. package/build/components/post-template/create-new-template.js +55 -0
  64. package/build/components/post-template/create-new-template.js.map +1 -0
  65. package/build/components/post-template/hooks.js +88 -0
  66. package/build/components/post-template/hooks.js.map +1 -0
  67. package/build/components/post-template/panel.js +70 -0
  68. package/build/components/post-template/panel.js.map +1 -0
  69. package/build/components/post-template/reset-default-template.js +48 -0
  70. package/build/components/post-template/reset-default-template.js.map +1 -0
  71. package/build/components/post-template/swap-template-button.js +86 -0
  72. package/build/components/post-template/swap-template-button.js.map +1 -0
  73. package/build/components/post-title/index.native.js +25 -15
  74. package/build/components/post-title/index.native.js.map +1 -1
  75. package/build/components/post-view-link/index.js +58 -0
  76. package/build/components/post-view-link/index.js.map +1 -0
  77. package/build/components/post-visibility/check.js +5 -17
  78. package/build/components/post-visibility/check.js.map +1 -1
  79. package/build/components/preview-dropdown/index.js +118 -0
  80. package/build/components/preview-dropdown/index.js.map +1 -0
  81. package/build/components/provider/index.js +24 -82
  82. package/build/components/provider/index.js.map +1 -1
  83. package/build/components/provider/index.native.js +36 -8
  84. package/build/components/provider/index.native.js.map +1 -1
  85. package/build/components/provider/navigation-block-editing-mode.js +40 -0
  86. package/build/components/provider/navigation-block-editing-mode.js.map +1 -0
  87. package/build/components/provider/use-block-editor-settings.js +38 -15
  88. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  89. package/build/hooks/index.js +1 -0
  90. package/build/hooks/index.js.map +1 -1
  91. package/build/hooks/pattern-partial-syncing.js +49 -0
  92. package/build/hooks/pattern-partial-syncing.js.map +1 -0
  93. package/build/private-apis.js +14 -0
  94. package/build/private-apis.js.map +1 -1
  95. package/build/store/actions.js +161 -13
  96. package/build/store/actions.js.map +1 -1
  97. package/build/store/defaults.js +2 -1
  98. package/build/store/defaults.js.map +1 -1
  99. package/build/store/index.js +5 -0
  100. package/build/store/index.js.map +1 -1
  101. package/build/store/private-actions.js +52 -0
  102. package/build/store/private-actions.js.map +1 -0
  103. package/build/store/private-selectors.js +52 -0
  104. package/build/store/private-selectors.js.map +1 -0
  105. package/build/store/reducer.js +109 -27
  106. package/build/store/reducer.js.map +1 -1
  107. package/build/store/reducer.native.js +0 -1
  108. package/build/store/reducer.native.js.map +1 -1
  109. package/build/store/selectors.js +104 -9
  110. package/build/store/selectors.js.map +1 -1
  111. package/build/utils/media-upload/index.js +8 -2
  112. package/build/utils/media-upload/index.js.map +1 -1
  113. package/build-module/components/document-bar/index.js +156 -0
  114. package/build-module/components/document-bar/index.js.map +1 -0
  115. package/build-module/components/document-outline/index.js +82 -1
  116. package/build-module/components/document-outline/index.js.map +1 -1
  117. package/build-module/components/document-tools/index.js +151 -0
  118. package/build-module/components/document-tools/index.js.map +1 -0
  119. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +100 -0
  120. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
  121. package/build-module/components/editor-canvas/index.js +289 -0
  122. package/build-module/components/editor-canvas/index.js.map +1 -0
  123. package/build-module/components/entities-saved-states/index.js +3 -1
  124. package/build-module/components/entities-saved-states/index.js.map +1 -1
  125. package/build-module/components/global-keyboard-shortcuts/index.js +12 -2
  126. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  127. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
  128. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  129. package/build-module/components/index.js +9 -1
  130. package/build-module/components/index.js.map +1 -1
  131. package/build-module/components/index.native.js +1 -0
  132. package/build-module/components/index.native.js.map +1 -1
  133. package/build-module/components/inserter-sidebar/index.js +70 -0
  134. package/build-module/components/inserter-sidebar/index.js.map +1 -0
  135. package/build-module/components/list-view-sidebar/index.js +142 -0
  136. package/build-module/components/list-view-sidebar/index.js.map +1 -0
  137. package/build-module/components/list-view-sidebar/list-view-outline.js +20 -0
  138. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -0
  139. package/build-module/components/offline-status/index.native.js +77 -0
  140. package/build-module/components/offline-status/index.native.js.map +1 -0
  141. package/build-module/components/page-attributes/panel.js +53 -0
  142. package/build-module/components/page-attributes/panel.js.map +1 -0
  143. package/build-module/components/post-discussion/panel.js +50 -0
  144. package/build-module/components/post-discussion/panel.js.map +1 -0
  145. package/build-module/components/post-excerpt/check.js +19 -0
  146. package/build-module/components/post-excerpt/check.js.map +1 -1
  147. package/build-module/components/post-excerpt/panel.js +48 -0
  148. package/build-module/components/post-excerpt/panel.js.map +1 -0
  149. package/build-module/components/post-excerpt/plugin.js +64 -0
  150. package/build-module/components/post-excerpt/plugin.js.map +1 -0
  151. package/build-module/components/post-featured-image/index.js +5 -8
  152. package/build-module/components/post-featured-image/index.js.map +1 -1
  153. package/build-module/components/post-featured-image/panel.js +51 -0
  154. package/build-module/components/post-featured-image/panel.js.map +1 -0
  155. package/build-module/components/post-last-revision/panel.js +18 -0
  156. package/build-module/components/post-last-revision/panel.js.map +1 -0
  157. package/build-module/components/post-publish-button/index.js +1 -0
  158. package/build-module/components/post-publish-button/index.js.map +1 -1
  159. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -4
  160. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  161. package/build-module/components/post-saved-state/index.js +13 -8
  162. package/build-module/components/post-saved-state/index.js.map +1 -1
  163. package/build-module/components/post-schedule/panel.js +1 -1
  164. package/build-module/components/post-schedule/panel.js.map +1 -1
  165. package/build-module/components/post-taxonomies/panel.js +59 -0
  166. package/build-module/components/post-taxonomies/panel.js.map +1 -0
  167. package/build-module/components/post-template/block-theme.js +92 -0
  168. package/build-module/components/post-template/block-theme.js.map +1 -0
  169. package/build-module/components/post-template/classic-theme.js +162 -0
  170. package/build-module/components/post-template/classic-theme.js.map +1 -0
  171. package/build-module/components/post-template/create-new-template-modal.js +91 -0
  172. package/build-module/components/post-template/create-new-template-modal.js.map +1 -0
  173. package/build-module/components/post-template/create-new-template.js +47 -0
  174. package/build-module/components/post-template/create-new-template.js.map +1 -0
  175. package/build-module/components/post-template/hooks.js +78 -0
  176. package/build-module/components/post-template/hooks.js.map +1 -0
  177. package/build-module/components/post-template/panel.js +62 -0
  178. package/build-module/components/post-template/panel.js.map +1 -0
  179. package/build-module/components/post-template/reset-default-template.js +41 -0
  180. package/build-module/components/post-template/reset-default-template.js.map +1 -0
  181. package/build-module/components/post-template/swap-template-button.js +79 -0
  182. package/build-module/components/post-template/swap-template-button.js.map +1 -0
  183. package/build-module/components/post-title/index.native.js +26 -16
  184. package/build-module/components/post-title/index.native.js.map +1 -1
  185. package/build-module/components/post-view-link/index.js +51 -0
  186. package/build-module/components/post-view-link/index.js.map +1 -0
  187. package/build-module/components/post-visibility/check.js +6 -16
  188. package/build-module/components/post-visibility/check.js.map +1 -1
  189. package/build-module/components/preview-dropdown/index.js +110 -0
  190. package/build-module/components/preview-dropdown/index.js.map +1 -0
  191. package/build-module/components/provider/index.js +25 -83
  192. package/build-module/components/provider/index.js.map +1 -1
  193. package/build-module/components/provider/index.native.js +37 -9
  194. package/build-module/components/provider/index.native.js.map +1 -1
  195. package/build-module/components/provider/navigation-block-editing-mode.js +34 -0
  196. package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -0
  197. package/build-module/components/provider/use-block-editor-settings.js +38 -15
  198. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  199. package/build-module/hooks/index.js +1 -0
  200. package/build-module/hooks/index.js.map +1 -1
  201. package/build-module/hooks/pattern-partial-syncing.js +46 -0
  202. package/build-module/hooks/pattern-partial-syncing.js.map +1 -0
  203. package/build-module/private-apis.js +14 -0
  204. package/build-module/private-apis.js.map +1 -1
  205. package/build-module/store/actions.js +147 -9
  206. package/build-module/store/actions.js.map +1 -1
  207. package/build-module/store/defaults.js +2 -1
  208. package/build-module/store/defaults.js.map +1 -1
  209. package/build-module/store/index.js +5 -0
  210. package/build-module/store/index.js.map +1 -1
  211. package/build-module/store/private-actions.js +44 -0
  212. package/build-module/store/private-actions.js.map +1 -0
  213. package/build-module/store/private-selectors.js +43 -0
  214. package/build-module/store/private-selectors.js.map +1 -0
  215. package/build-module/store/reducer.js +103 -26
  216. package/build-module/store/reducer.js.map +1 -1
  217. package/build-module/store/reducer.native.js +1 -2
  218. package/build-module/store/reducer.native.js.map +1 -1
  219. package/build-module/store/selectors.js +93 -6
  220. package/build-module/store/selectors.js.map +1 -1
  221. package/build-module/utils/media-upload/index.js +8 -2
  222. package/build-module/utils/media-upload/index.js.map +1 -1
  223. package/build-style/style-rtl.css +433 -0
  224. package/build-style/style.css +433 -0
  225. package/package.json +32 -31
  226. package/src/components/document-bar/index.js +193 -0
  227. package/src/components/document-bar/style.scss +130 -0
  228. package/src/components/document-outline/index.js +48 -1
  229. package/src/components/document-outline/style.scss +12 -0
  230. package/src/components/document-tools/index.js +177 -0
  231. package/src/components/document-tools/style.scss +98 -0
  232. package/src/components/editor-canvas/edit-template-blocks-notification.js +108 -0
  233. package/src/components/editor-canvas/index.js +386 -0
  234. package/src/components/editor-canvas/style.scss +5 -0
  235. package/src/components/entities-saved-states/index.js +3 -1
  236. package/src/components/entities-saved-states/style.scss +4 -0
  237. package/src/components/global-keyboard-shortcuts/index.js +12 -2
  238. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +10 -0
  239. package/src/components/index.js +9 -1
  240. package/src/components/index.native.js +1 -0
  241. package/src/components/inserter-sidebar/index.js +73 -0
  242. package/src/components/inserter-sidebar/style.scss +22 -0
  243. package/src/components/list-view-sidebar/index.js +169 -0
  244. package/src/components/list-view-sidebar/list-view-outline.js +37 -0
  245. package/src/components/list-view-sidebar/style.scss +84 -0
  246. package/src/components/offline-status/index.native.js +101 -0
  247. package/src/components/offline-status/style.native.scss +28 -0
  248. package/src/components/offline-status/test/index.native.js +108 -0
  249. package/src/components/page-attributes/panel.js +62 -0
  250. package/src/components/post-discussion/panel.js +57 -0
  251. package/src/components/post-excerpt/check.js +18 -0
  252. package/src/components/post-excerpt/panel.js +57 -0
  253. package/src/components/post-excerpt/plugin.js +61 -0
  254. package/src/components/post-excerpt/test/plugin.js +36 -0
  255. package/src/components/post-featured-image/index.js +3 -7
  256. package/src/components/post-featured-image/panel.js +55 -0
  257. package/src/components/post-last-revision/panel.js +22 -0
  258. package/src/components/post-last-revision/style.scss +10 -0
  259. package/src/components/post-publish-button/index.js +1 -0
  260. package/src/components/post-publish-panel/maybe-upload-media.js +3 -8
  261. package/src/components/post-saved-state/index.js +9 -8
  262. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +2 -2
  263. package/src/components/post-schedule/panel.js +1 -1
  264. package/src/components/post-taxonomies/panel.js +66 -0
  265. package/src/components/post-template/block-theme.js +110 -0
  266. package/src/components/post-template/classic-theme.js +213 -0
  267. package/src/components/post-template/create-new-template-modal.js +139 -0
  268. package/src/components/post-template/create-new-template.js +50 -0
  269. package/src/components/post-template/hooks.js +95 -0
  270. package/src/components/post-template/panel.js +66 -0
  271. package/src/components/post-template/reset-default-template.js +43 -0
  272. package/src/components/post-template/style.scss +52 -0
  273. package/src/components/post-template/swap-template-button.js +86 -0
  274. package/src/components/post-title/index.native.js +32 -18
  275. package/src/components/post-title/style.scss +1 -0
  276. package/src/components/post-title/test/__snapshots__/index.native.js.snap +25 -0
  277. package/src/components/post-title/test/index.native.js +78 -0
  278. package/src/components/post-view-link/index.js +47 -0
  279. package/src/components/post-visibility/check.js +10 -15
  280. package/src/components/post-visibility/test/check.js +24 -13
  281. package/src/components/preview-dropdown/index.js +133 -0
  282. package/src/components/preview-dropdown/style.scss +5 -0
  283. package/src/components/provider/index.js +28 -118
  284. package/src/components/provider/index.native.js +55 -14
  285. package/src/components/provider/navigation-block-editing-mode.js +37 -0
  286. package/src/components/provider/use-block-editor-settings.js +42 -17
  287. package/src/hooks/index.js +1 -0
  288. package/src/hooks/pattern-partial-syncing.js +73 -0
  289. package/src/private-apis.js +14 -0
  290. package/src/store/actions.js +160 -9
  291. package/src/store/defaults.js +1 -0
  292. package/src/store/index.js +5 -0
  293. package/src/store/private-actions.js +61 -0
  294. package/src/store/private-selectors.js +51 -0
  295. package/src/store/reducer.js +103 -26
  296. package/src/store/reducer.native.js +0 -2
  297. package/src/store/selectors.js +144 -42
  298. package/src/store/test/actions.js +56 -0
  299. package/src/store/test/reducer.js +98 -0
  300. package/src/store/test/selectors.js +137 -147
  301. package/src/style.scss +7 -0
  302. package/src/utils/media-upload/index.js +9 -2
  303. package/build/components/post-template/index.js +0 -66
  304. package/build/components/post-template/index.js.map +0 -1
  305. package/build-module/components/post-template/index.js +0 -57
  306. package/build-module/components/post-template/index.js.map +0 -1
  307. package/src/components/post-template/index.js +0 -64
@@ -1,3 +1,8 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import deepFreeze from 'deep-freeze';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
@@ -122,6 +127,10 @@ selectorNames.forEach( ( name ) => {
122
127
  },
123
128
  };
124
129
  },
130
+
131
+ getBlocks() {
132
+ return state.getBlocks && state.getBlocks();
133
+ },
125
134
  } );
126
135
 
127
136
  selectorNames.forEach( ( otherName ) => {
@@ -183,6 +192,9 @@ const {
183
192
  __experimentalGetDefaultTemplateTypes,
184
193
  __experimentalGetTemplateInfo,
185
194
  __experimentalGetDefaultTemplatePartAreas,
195
+ isEditorPanelRemoved,
196
+ isInserterOpened,
197
+ isListViewOpened,
186
198
  } = selectors;
187
199
 
188
200
  const defaultTemplateTypes = [
@@ -2155,16 +2167,9 @@ describe( 'selectors', () => {
2155
2167
  describe( 'getSuggestedPostFormat', () => {
2156
2168
  it( 'returns null if cannot be determined', () => {
2157
2169
  const state = {
2158
- editor: {
2159
- present: {
2160
- blocks: {
2161
- value: [],
2162
- },
2163
- edits: {},
2164
- },
2170
+ getBlocks() {
2171
+ return [];
2165
2172
  },
2166
- initialEdits: {},
2167
- currentPost: {},
2168
2173
  };
2169
2174
 
2170
2175
  expect( getSuggestedPostFormat( state ) ).toBeNull();
@@ -2172,77 +2177,56 @@ describe( 'selectors', () => {
2172
2177
 
2173
2178
  it( 'return null if only one block of type `core/embed` and provider not matched', () => {
2174
2179
  const state = {
2175
- editor: {
2176
- present: {
2177
- blocks: {
2178
- value: [
2179
- {
2180
- clientId: 567,
2181
- name: 'core/embed',
2182
- attributes: {
2183
- providerNameSlug: 'instagram',
2184
- },
2185
- innerBlocks: [],
2186
- },
2187
- ],
2180
+ getBlocks() {
2181
+ return [
2182
+ {
2183
+ clientId: 567,
2184
+ name: 'core/embed',
2185
+ attributes: {
2186
+ providerNameSlug: 'instagram',
2187
+ },
2188
+ innerBlocks: [],
2188
2189
  },
2189
- edits: {},
2190
- },
2190
+ ];
2191
2191
  },
2192
- initialEdits: {},
2193
- currentPost: {},
2194
2192
  };
2195
2193
  expect( getSuggestedPostFormat( state ) ).toBeNull();
2196
2194
  } );
2197
2195
 
2198
2196
  it( 'return null if only one block of type `core/embed` and provider not exists', () => {
2199
2197
  const state = {
2200
- editor: {
2201
- present: {
2202
- blocks: {
2203
- value: [
2204
- {
2205
- clientId: 567,
2206
- name: 'core/embed',
2207
- attributes: {},
2208
- innerBlocks: [],
2209
- },
2210
- ],
2198
+ getBlocks() {
2199
+ return [
2200
+ {
2201
+ clientId: 567,
2202
+ name: 'core/embed',
2203
+ attributes: {},
2204
+ innerBlocks: [],
2211
2205
  },
2212
- edits: {},
2213
- },
2206
+ ];
2214
2207
  },
2215
- initialEdits: {},
2216
- currentPost: {},
2217
2208
  };
2218
2209
  expect( getSuggestedPostFormat( state ) ).toBeNull();
2219
2210
  } );
2220
2211
 
2221
2212
  it( 'returns null if there is more than one block in the post', () => {
2222
2213
  const state = {
2223
- editor: {
2224
- present: {
2225
- blocks: {
2226
- value: [
2227
- {
2228
- clientId: 123,
2229
- name: 'core/image',
2230
- attributes: {},
2231
- innerBlocks: [],
2232
- },
2233
- {
2234
- clientId: 456,
2235
- name: 'core/quote',
2236
- attributes: {},
2237
- innerBlocks: [],
2238
- },
2239
- ],
2214
+ getBlocks() {
2215
+ return [
2216
+ {
2217
+ clientId: 123,
2218
+ name: 'core/image',
2219
+ attributes: {},
2220
+ innerBlocks: [],
2240
2221
  },
2241
- edits: {},
2242
- },
2222
+ {
2223
+ clientId: 456,
2224
+ name: 'core/quote',
2225
+ attributes: {},
2226
+ innerBlocks: [],
2227
+ },
2228
+ ];
2243
2229
  },
2244
- initialEdits: {},
2245
- currentPost: {},
2246
2230
  };
2247
2231
 
2248
2232
  expect( getSuggestedPostFormat( state ) ).toBeNull();
@@ -2250,23 +2234,16 @@ describe( 'selectors', () => {
2250
2234
 
2251
2235
  it( 'returns Image if the first block is of type `core/image`', () => {
2252
2236
  const state = {
2253
- editor: {
2254
- present: {
2255
- blocks: {
2256
- value: [
2257
- {
2258
- clientId: 123,
2259
- name: 'core/image',
2260
- attributes: {},
2261
- innerBlocks: [],
2262
- },
2263
- ],
2237
+ getBlocks() {
2238
+ return [
2239
+ {
2240
+ clientId: 123,
2241
+ name: 'core/image',
2242
+ attributes: {},
2243
+ innerBlocks: [],
2264
2244
  },
2265
- edits: {},
2266
- },
2245
+ ];
2267
2246
  },
2268
- initialEdits: {},
2269
- currentPost: {},
2270
2247
  };
2271
2248
 
2272
2249
  expect( getSuggestedPostFormat( state ) ).toBe( 'image' );
@@ -2274,23 +2251,16 @@ describe( 'selectors', () => {
2274
2251
 
2275
2252
  it( 'returns Quote if the first block is of type `core/quote`', () => {
2276
2253
  const state = {
2277
- editor: {
2278
- present: {
2279
- blocks: {
2280
- value: [
2281
- {
2282
- clientId: 456,
2283
- name: 'core/quote',
2284
- attributes: {},
2285
- innerBlocks: [],
2286
- },
2287
- ],
2254
+ getBlocks() {
2255
+ return [
2256
+ {
2257
+ clientId: 456,
2258
+ name: 'core/quote',
2259
+ attributes: {},
2260
+ innerBlocks: [],
2288
2261
  },
2289
- edits: {},
2290
- },
2262
+ ];
2291
2263
  },
2292
- initialEdits: {},
2293
- currentPost: {},
2294
2264
  };
2295
2265
 
2296
2266
  expect( getSuggestedPostFormat( state ) ).toBe( 'quote' );
@@ -2298,25 +2268,18 @@ describe( 'selectors', () => {
2298
2268
 
2299
2269
  it( 'returns Video if the first block is of type `core/embed from youtube`', () => {
2300
2270
  const state = {
2301
- editor: {
2302
- present: {
2303
- blocks: {
2304
- value: [
2305
- {
2306
- clientId: 567,
2307
- name: 'core/embed',
2308
- attributes: {
2309
- providerNameSlug: 'youtube',
2310
- },
2311
- innerBlocks: [],
2312
- },
2313
- ],
2271
+ getBlocks() {
2272
+ return [
2273
+ {
2274
+ clientId: 567,
2275
+ name: 'core/embed',
2276
+ attributes: {
2277
+ providerNameSlug: 'youtube',
2278
+ },
2279
+ innerBlocks: [],
2314
2280
  },
2315
- edits: {},
2316
- },
2281
+ ];
2317
2282
  },
2318
- initialEdits: {},
2319
- currentPost: {},
2320
2283
  };
2321
2284
 
2322
2285
  expect( getSuggestedPostFormat( state ) ).toBe( 'video' );
@@ -2324,25 +2287,18 @@ describe( 'selectors', () => {
2324
2287
 
2325
2288
  it( 'returns Audio if the first block is of type `core/embed from soundcloud`', () => {
2326
2289
  const state = {
2327
- editor: {
2328
- present: {
2329
- blocks: {
2330
- value: [
2331
- {
2332
- clientId: 567,
2333
- name: 'core/embed',
2334
- attributes: {
2335
- providerNameSlug: 'soundcloud',
2336
- },
2337
- innerBlocks: [],
2338
- },
2339
- ],
2290
+ getBlocks() {
2291
+ return [
2292
+ {
2293
+ clientId: 567,
2294
+ name: 'core/embed',
2295
+ attributes: {
2296
+ providerNameSlug: 'soundcloud',
2297
+ },
2298
+ innerBlocks: [],
2340
2299
  },
2341
- edits: {},
2342
- },
2300
+ ];
2343
2301
  },
2344
- initialEdits: {},
2345
- currentPost: {},
2346
2302
  };
2347
2303
 
2348
2304
  expect( getSuggestedPostFormat( state ) ).toBe( 'audio' );
@@ -2350,29 +2306,22 @@ describe( 'selectors', () => {
2350
2306
 
2351
2307
  it( 'returns Quote if the first block is of type `core/quote` and second is of type `core/paragraph`', () => {
2352
2308
  const state = {
2353
- editor: {
2354
- present: {
2355
- blocks: {
2356
- value: [
2357
- {
2358
- clientId: 456,
2359
- name: 'core/quote',
2360
- attributes: {},
2361
- innerBlocks: [],
2362
- },
2363
- {
2364
- clientId: 789,
2365
- name: 'core/paragraph',
2366
- attributes: {},
2367
- innerBlocks: [],
2368
- },
2369
- ],
2309
+ getBlocks() {
2310
+ return [
2311
+ {
2312
+ clientId: 456,
2313
+ name: 'core/quote',
2314
+ attributes: {},
2315
+ innerBlocks: [],
2370
2316
  },
2371
- edits: {},
2372
- },
2317
+ {
2318
+ clientId: 789,
2319
+ name: 'core/paragraph',
2320
+ attributes: {},
2321
+ innerBlocks: [],
2322
+ },
2323
+ ];
2373
2324
  },
2374
- initialEdits: {},
2375
- currentPost: {},
2376
2325
  };
2377
2326
 
2378
2327
  expect( getSuggestedPostFormat( state ) ).toBe( 'quote' );
@@ -3069,4 +3018,45 @@ describe( 'selectors', () => {
3069
3018
  );
3070
3019
  } );
3071
3020
  } );
3021
+ describe( 'isEditorPanelRemoved', () => {
3022
+ it( 'should return false by default', () => {
3023
+ const state = deepFreeze( {
3024
+ removedPanels: [],
3025
+ } );
3026
+
3027
+ expect( isEditorPanelRemoved( state, 'post-status' ) ).toBe(
3028
+ false
3029
+ );
3030
+ } );
3031
+
3032
+ it( 'should return true when panel was removed', () => {
3033
+ const state = deepFreeze( {
3034
+ removedPanels: [ 'post-status' ],
3035
+ } );
3036
+
3037
+ expect( isEditorPanelRemoved( state, 'post-status' ) ).toBe( true );
3038
+ } );
3039
+ } );
3040
+
3041
+ describe( 'isInserterOpened', () => {
3042
+ it( 'returns the block inserter panel isOpened state', () => {
3043
+ const state = {
3044
+ blockInserterPanel: true,
3045
+ };
3046
+ expect( isInserterOpened( state ) ).toBe( true );
3047
+ state.blockInserterPanel = false;
3048
+ expect( isInserterOpened( state ) ).toBe( false );
3049
+ } );
3050
+ } );
3051
+
3052
+ describe( 'isListViewOpened', () => {
3053
+ it( 'returns the list view panel isOpened state', () => {
3054
+ const state = {
3055
+ listViewPanel: true,
3056
+ };
3057
+ expect( isListViewOpened( state ) ).toBe( true );
3058
+ state.listViewPanel = false;
3059
+ expect( isListViewOpened( state ) ).toBe( false );
3060
+ } );
3061
+ } );
3072
3062
  } );
package/src/style.scss CHANGED
@@ -1,8 +1,12 @@
1
1
  @import "./components/autocompleters/style.scss";
2
+ @import "./components/document-bar/style.scss";
2
3
  @import "./components/document-outline/style.scss";
4
+ @import "./components/document-tools/style.scss";
3
5
  @import "./components/editor-notices/style.scss";
4
6
  @import "./components/entities-saved-states/style.scss";
5
7
  @import "./components/error-boundary/style.scss";
8
+ @import "./components/inserter-sidebar/style.scss";
9
+ @import "./components/list-view-sidebar/style.scss";
6
10
  @import "./components/post-author/style.scss";
7
11
  @import "./components/post-excerpt/style.scss";
8
12
  @import "./components/post-featured-image/style.scss";
@@ -16,10 +20,13 @@
16
20
  @import "./components/post-schedule/style.scss";
17
21
  @import "./components/post-sync-status/style.scss";
18
22
  @import "./components/post-taxonomies/style.scss";
23
+ @import "./components/post-template/style.scss";
19
24
  @import "./components/post-text-editor/style.scss";
20
25
  @import "./components/post-title/style.scss";
21
26
  @import "./components/post-url/style.scss";
22
27
  @import "./components/post-visibility/style.scss";
23
28
  @import "./components/post-trash/style.scss";
29
+ @import "./components/preview-dropdown/style.scss";
24
30
  @import "./components/table-of-contents/style.scss";
25
31
  @import "./components/template-validation-notice/style.scss";
32
+ @import "./components/editor-canvas/style.scss";
@@ -31,17 +31,24 @@ export default function mediaUpload( {
31
31
  onError = noop,
32
32
  onFileChange,
33
33
  } ) {
34
- const { getCurrentPostId, getEditorSettings } = select( editorStore );
34
+ const { getCurrentPost, getEditorSettings } = select( editorStore );
35
35
  const wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;
36
36
  maxUploadFileSize =
37
37
  maxUploadFileSize || getEditorSettings().maxUploadFileSize;
38
+ const currentPost = getCurrentPost();
39
+ // Templates and template parts' numerical ID is stored in `wp_id`.
40
+ const currentPostId =
41
+ typeof currentPost?.id === 'number'
42
+ ? currentPost.id
43
+ : currentPost?.wp_id;
44
+ const postData = currentPostId ? { post: currentPostId } : {};
38
45
 
39
46
  uploadMedia( {
40
47
  allowedTypes,
41
48
  filesList,
42
49
  onFileChange,
43
50
  additionalData: {
44
- post: getCurrentPostId(),
51
+ ...postData,
45
52
  ...additionalData,
46
53
  },
47
54
  maxUploadFileSize,
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.PostTemplate = PostTemplate;
7
- exports.default = void 0;
8
- var _react = require("react");
9
- var _i18n = require("@wordpress/i18n");
10
- var _components = require("@wordpress/components");
11
- var _data = require("@wordpress/data");
12
- var _coreData = require("@wordpress/core-data");
13
- var _store = require("../../store");
14
- /**
15
- * WordPress dependencies
16
- */
17
-
18
- /**
19
- * Internal dependencies
20
- */
21
-
22
- function PostTemplate() {
23
- const {
24
- availableTemplates,
25
- selectedTemplate,
26
- isViewable
27
- } = (0, _data.useSelect)(select => {
28
- var _getPostType$viewable;
29
- const {
30
- getEditedPostAttribute,
31
- getEditorSettings,
32
- getCurrentPostType
33
- } = select(_store.store);
34
- const {
35
- getPostType
36
- } = select(_coreData.store);
37
- return {
38
- selectedTemplate: getEditedPostAttribute('template'),
39
- availableTemplates: getEditorSettings().availableTemplates,
40
- isViewable: (_getPostType$viewable = getPostType(getCurrentPostType())?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false
41
- };
42
- }, []);
43
- const {
44
- editPost
45
- } = (0, _data.useDispatch)(_store.store);
46
- if (!isViewable || !availableTemplates || !Object.keys(availableTemplates).length) {
47
- return null;
48
- }
49
- return (0, _react.createElement)(_components.SelectControl, {
50
- __nextHasNoMarginBottom: true,
51
- label: (0, _i18n.__)('Template:'),
52
- value: selectedTemplate,
53
- onChange: templateSlug => {
54
- editPost({
55
- template: templateSlug || ''
56
- });
57
- },
58
- options: Object.entries(availableTemplates !== null && availableTemplates !== void 0 ? availableTemplates : {}).map(([templateSlug, templateName]) => ({
59
- value: templateSlug,
60
- label: templateName
61
- }))
62
- });
63
- }
64
- var _default = PostTemplate;
65
- exports.default = _default;
66
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_i18n","require","_components","_data","_coreData","_store","PostTemplate","availableTemplates","selectedTemplate","isViewable","useSelect","select","_getPostType$viewable","getEditedPostAttribute","getEditorSettings","getCurrentPostType","editorStore","getPostType","coreStore","viewable","editPost","useDispatch","Object","keys","length","_react","createElement","SelectControl","__nextHasNoMarginBottom","label","__","value","onChange","templateSlug","template","options","entries","map","templateName","_default","exports","default"],"sources":["@wordpress/editor/src/components/post-template/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTemplate() {\n\tconst { availableTemplates, selectedTemplate, isViewable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetEditorSettings,\n\t\t\t\tgetCurrentPostType,\n\t\t\t} = select( editorStore );\n\t\t\tconst { getPostType } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tselectedTemplate: getEditedPostAttribute( 'template' ),\n\t\t\t\tavailableTemplates: getEditorSettings().availableTemplates,\n\t\t\t\tisViewable:\n\t\t\t\t\tgetPostType( getCurrentPostType() )?.viewable ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tif (\n\t\t! isViewable ||\n\t\t! availableTemplates ||\n\t\t! Object.keys( availableTemplates ).length\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Template:' ) }\n\t\t\tvalue={ selectedTemplate }\n\t\t\tonChange={ ( templateSlug ) => {\n\t\t\t\teditPost( {\n\t\t\t\t\ttemplate: templateSlug || '',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\toptions={ Object.entries( availableTemplates ?? {} ).map(\n\t\t\t\t( [ templateSlug, templateName ] ) => ( {\n\t\t\t\t\tvalue: templateSlug,\n\t\t\t\t\tlabel: templateName,\n\t\t\t\t} )\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PostTemplate;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGO,SAASK,YAAYA,CAAA,EAAG;EAC9B,MAAM;IAAEC,kBAAkB;IAAEC,gBAAgB;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EACnEC,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MACLC,sBAAsB;MACtBC,iBAAiB;MACjBC;IACD,CAAC,GAAGJ,MAAM,CAAEK,YAAY,CAAC;IACzB,MAAM;MAAEC;IAAY,CAAC,GAAGN,MAAM,CAAEO,eAAU,CAAC;IAE3C,OAAO;MACNV,gBAAgB,EAAEK,sBAAsB,CAAE,UAAW,CAAC;MACtDN,kBAAkB,EAAEO,iBAAiB,CAAC,CAAC,CAACP,kBAAkB;MAC1DE,UAAU,GAAAG,qBAAA,GACTK,WAAW,CAAEF,kBAAkB,CAAC,CAAE,CAAC,EAAEI,QAAQ,cAAAP,qBAAA,cAAAA,qBAAA,GAAI;IACnD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAM;IAAEQ;EAAS,CAAC,GAAG,IAAAC,iBAAW,EAAEL,YAAY,CAAC;EAE/C,IACC,CAAEP,UAAU,IACZ,CAAEF,kBAAkB,IACpB,CAAEe,MAAM,CAACC,IAAI,CAAEhB,kBAAmB,CAAC,CAACiB,MAAM,EACzC;IACD,OAAO,IAAI;EACZ;EAEA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACxB,WAAA,CAAAyB,aAAa;IACbC,uBAAuB;IACvBC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;IAC3BC,KAAK,EAAGvB,gBAAkB;IAC1BwB,QAAQ,EAAKC,YAAY,IAAM;MAC9Bb,QAAQ,CAAE;QACTc,QAAQ,EAAED,YAAY,IAAI;MAC3B,CAAE,CAAC;IACJ,CAAG;IACHE,OAAO,EAAGb,MAAM,CAACc,OAAO,CAAE7B,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAE,CAAC,CAAC8B,GAAG,CACvD,CAAE,CAAEJ,YAAY,EAAEK,YAAY,CAAE,MAAQ;MACvCP,KAAK,EAAEE,YAAY;MACnBJ,KAAK,EAAES;IACR,CAAC,CACF;EAAG,CACH,CAAC;AAEJ;AAAC,IAAAC,QAAA,GAEcjC,YAAY;AAAAkC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -1,57 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { __ } from '@wordpress/i18n';
6
- import { SelectControl } from '@wordpress/components';
7
- import { useSelect, useDispatch } from '@wordpress/data';
8
- import { store as coreStore } from '@wordpress/core-data';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import { store as editorStore } from '../../store';
14
- export function PostTemplate() {
15
- const {
16
- availableTemplates,
17
- selectedTemplate,
18
- isViewable
19
- } = useSelect(select => {
20
- var _getPostType$viewable;
21
- const {
22
- getEditedPostAttribute,
23
- getEditorSettings,
24
- getCurrentPostType
25
- } = select(editorStore);
26
- const {
27
- getPostType
28
- } = select(coreStore);
29
- return {
30
- selectedTemplate: getEditedPostAttribute('template'),
31
- availableTemplates: getEditorSettings().availableTemplates,
32
- isViewable: (_getPostType$viewable = getPostType(getCurrentPostType())?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false
33
- };
34
- }, []);
35
- const {
36
- editPost
37
- } = useDispatch(editorStore);
38
- if (!isViewable || !availableTemplates || !Object.keys(availableTemplates).length) {
39
- return null;
40
- }
41
- return createElement(SelectControl, {
42
- __nextHasNoMarginBottom: true,
43
- label: __('Template:'),
44
- value: selectedTemplate,
45
- onChange: templateSlug => {
46
- editPost({
47
- template: templateSlug || ''
48
- });
49
- },
50
- options: Object.entries(availableTemplates !== null && availableTemplates !== void 0 ? availableTemplates : {}).map(([templateSlug, templateName]) => ({
51
- value: templateSlug,
52
- label: templateName
53
- }))
54
- });
55
- }
56
- export default PostTemplate;
57
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__","SelectControl","useSelect","useDispatch","store","coreStore","editorStore","PostTemplate","availableTemplates","selectedTemplate","isViewable","select","_getPostType$viewable","getEditedPostAttribute","getEditorSettings","getCurrentPostType","getPostType","viewable","editPost","Object","keys","length","createElement","__nextHasNoMarginBottom","label","value","onChange","templateSlug","template","options","entries","map","templateName"],"sources":["@wordpress/editor/src/components/post-template/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTemplate() {\n\tconst { availableTemplates, selectedTemplate, isViewable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetEditorSettings,\n\t\t\t\tgetCurrentPostType,\n\t\t\t} = select( editorStore );\n\t\t\tconst { getPostType } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tselectedTemplate: getEditedPostAttribute( 'template' ),\n\t\t\t\tavailableTemplates: getEditorSettings().availableTemplates,\n\t\t\t\tisViewable:\n\t\t\t\t\tgetPostType( getCurrentPostType() )?.viewable ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tif (\n\t\t! isViewable ||\n\t\t! availableTemplates ||\n\t\t! Object.keys( availableTemplates ).length\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Template:' ) }\n\t\t\tvalue={ selectedTemplate }\n\t\t\tonChange={ ( templateSlug ) => {\n\t\t\t\teditPost( {\n\t\t\t\t\ttemplate: templateSlug || '',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\toptions={ Object.entries( availableTemplates ?? {} ).map(\n\t\t\t\t( [ templateSlug, templateName ] ) => ( {\n\t\t\t\t\tvalue: templateSlug,\n\t\t\t\t\tlabel: templateName,\n\t\t\t\t} )\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PostTemplate;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,WAAW,QAAQ,aAAa;AAElD,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC9B,MAAM;IAAEC,kBAAkB;IAAEC,gBAAgB;IAAEC;EAAW,CAAC,GAAGR,SAAS,CACnES,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MACLC,sBAAsB;MACtBC,iBAAiB;MACjBC;IACD,CAAC,GAAGJ,MAAM,CAAEL,WAAY,CAAC;IACzB,MAAM;MAAEU;IAAY,CAAC,GAAGL,MAAM,CAAEN,SAAU,CAAC;IAE3C,OAAO;MACNI,gBAAgB,EAAEI,sBAAsB,CAAE,UAAW,CAAC;MACtDL,kBAAkB,EAAEM,iBAAiB,CAAC,CAAC,CAACN,kBAAkB;MAC1DE,UAAU,GAAAE,qBAAA,GACTI,WAAW,CAAED,kBAAkB,CAAC,CAAE,CAAC,EAAEE,QAAQ,cAAAL,qBAAA,cAAAA,qBAAA,GAAI;IACnD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAM;IAAEM;EAAS,CAAC,GAAGf,WAAW,CAAEG,WAAY,CAAC;EAE/C,IACC,CAAEI,UAAU,IACZ,CAAEF,kBAAkB,IACpB,CAAEW,MAAM,CAACC,IAAI,CAAEZ,kBAAmB,CAAC,CAACa,MAAM,EACzC;IACD,OAAO,IAAI;EACZ;EAEA,OACCC,aAAA,CAACrB,aAAa;IACbsB,uBAAuB;IACvBC,KAAK,EAAGxB,EAAE,CAAE,WAAY,CAAG;IAC3ByB,KAAK,EAAGhB,gBAAkB;IAC1BiB,QAAQ,EAAKC,YAAY,IAAM;MAC9BT,QAAQ,CAAE;QACTU,QAAQ,EAAED,YAAY,IAAI;MAC3B,CAAE,CAAC;IACJ,CAAG;IACHE,OAAO,EAAGV,MAAM,CAACW,OAAO,CAAEtB,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAE,CAAC,CAACuB,GAAG,CACvD,CAAE,CAAEJ,YAAY,EAAEK,YAAY,CAAE,MAAQ;MACvCP,KAAK,EAAEE,YAAY;MACnBH,KAAK,EAAEQ;IACR,CAAC,CACF;EAAG,CACH,CAAC;AAEJ;AAEA,eAAezB,YAAY"}
@@ -1,64 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __ } from '@wordpress/i18n';
5
- import { SelectControl } from '@wordpress/components';
6
- import { useSelect, useDispatch } from '@wordpress/data';
7
- import { store as coreStore } from '@wordpress/core-data';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import { store as editorStore } from '../../store';
13
-
14
- export function PostTemplate() {
15
- const { availableTemplates, selectedTemplate, isViewable } = useSelect(
16
- ( select ) => {
17
- const {
18
- getEditedPostAttribute,
19
- getEditorSettings,
20
- getCurrentPostType,
21
- } = select( editorStore );
22
- const { getPostType } = select( coreStore );
23
-
24
- return {
25
- selectedTemplate: getEditedPostAttribute( 'template' ),
26
- availableTemplates: getEditorSettings().availableTemplates,
27
- isViewable:
28
- getPostType( getCurrentPostType() )?.viewable ?? false,
29
- };
30
- },
31
- []
32
- );
33
-
34
- const { editPost } = useDispatch( editorStore );
35
-
36
- if (
37
- ! isViewable ||
38
- ! availableTemplates ||
39
- ! Object.keys( availableTemplates ).length
40
- ) {
41
- return null;
42
- }
43
-
44
- return (
45
- <SelectControl
46
- __nextHasNoMarginBottom
47
- label={ __( 'Template:' ) }
48
- value={ selectedTemplate }
49
- onChange={ ( templateSlug ) => {
50
- editPost( {
51
- template: templateSlug || '',
52
- } );
53
- } }
54
- options={ Object.entries( availableTemplates ?? {} ).map(
55
- ( [ templateSlug, templateName ] ) => ( {
56
- value: templateSlug,
57
- label: templateName,
58
- } )
59
- ) }
60
- />
61
- );
62
- }
63
-
64
- export default PostTemplate;