@wordpress/editor 12.13.0 → 12.15.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 (60) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/editor-history/redo.js +2 -1
  3. package/build/components/editor-history/redo.js.map +1 -1
  4. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +11 -1
  5. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  6. package/build/components/post-taxonomies/flat-term-selector.js +7 -1
  7. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  8. package/build/components/post-title/index.js +15 -1
  9. package/build/components/post-title/index.js.map +1 -1
  10. package/build/components/post-url/label.js +1 -1
  11. package/build/components/post-url/label.js.map +1 -1
  12. package/build/components/provider/use-block-editor-settings.js +1 -1
  13. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  14. package/build/hooks/custom-sources-backwards-compatibility.js +8 -5
  15. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  16. package/build/store/actions.js +1 -7
  17. package/build/store/actions.js.map +1 -1
  18. package/build/store/reducer.js +17 -9
  19. package/build/store/reducer.js.map +1 -1
  20. package/build/store/selectors.js +36 -16
  21. package/build/store/selectors.js.map +1 -1
  22. package/build-module/components/editor-history/redo.js +3 -2
  23. package/build-module/components/editor-history/redo.js.map +1 -1
  24. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +10 -1
  25. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  26. package/build-module/components/post-taxonomies/flat-term-selector.js +8 -2
  27. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  28. package/build-module/components/post-title/index.js +16 -2
  29. package/build-module/components/post-title/index.js.map +1 -1
  30. package/build-module/components/post-url/label.js +2 -2
  31. package/build-module/components/post-url/label.js.map +1 -1
  32. package/build-module/components/provider/use-block-editor-settings.js +1 -1
  33. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  34. package/build-module/hooks/custom-sources-backwards-compatibility.js +9 -6
  35. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  36. package/build-module/store/actions.js +1 -6
  37. package/build-module/store/actions.js.map +1 -1
  38. package/build-module/store/reducer.js +17 -8
  39. package/build-module/store/reducer.js.map +1 -1
  40. package/build-module/store/selectors.js +36 -15
  41. package/build-module/store/selectors.js.map +1 -1
  42. package/package.json +28 -28
  43. package/src/components/editor-history/redo.js +6 -2
  44. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +13 -0
  45. package/src/components/post-author/test/check.js +7 -7
  46. package/src/components/post-last-revision/test/check.js +7 -7
  47. package/src/components/post-pending-status/test/check.js +5 -5
  48. package/src/components/post-schedule/test/check.js +5 -5
  49. package/src/components/post-slug/test/check.js +3 -3
  50. package/src/components/post-sticky/test/index.js +11 -7
  51. package/src/components/post-taxonomies/flat-term-selector.js +10 -2
  52. package/src/components/post-title/index.js +16 -2
  53. package/src/components/post-url/label.js +2 -2
  54. package/src/components/post-visibility/test/check.js +16 -8
  55. package/src/components/provider/use-block-editor-settings.js +2 -0
  56. package/src/components/theme-support-check/test/index.js +13 -15
  57. package/src/hooks/custom-sources-backwards-compatibility.js +14 -12
  58. package/src/store/actions.js +1 -6
  59. package/src/store/reducer.js +16 -10
  60. package/src/store/selectors.js +29 -28
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { find, get, has, includes, some } from 'lodash';
5
4
  import createSelector from 'rememo';
6
5
 
7
6
  /**
@@ -149,8 +148,7 @@ export const hasNonPostEntityChanges = createRegistrySelector(
149
148
  const dirtyEntityRecords =
150
149
  select( coreStore ).__experimentalGetDirtyEntityRecords();
151
150
  const { type, id } = getCurrentPost( state );
152
- return some(
153
- dirtyEntityRecords,
151
+ return dirtyEntityRecords.some(
154
152
  ( entityRecord ) =>
155
153
  entityRecord.kind !== 'postType' ||
156
154
  entityRecord.name !== type ||
@@ -232,10 +230,8 @@ export function getCurrentPostId( state ) {
232
230
  * @return {number} Number of revisions.
233
231
  */
234
232
  export function getCurrentPostRevisionsCount( state ) {
235
- return get(
236
- getCurrentPost( state ),
237
- [ '_links', 'version-history', 0, 'count' ],
238
- 0
233
+ return (
234
+ getCurrentPost( state )._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0
239
235
  );
240
236
  }
241
237
 
@@ -248,9 +244,8 @@ export function getCurrentPostRevisionsCount( state ) {
248
244
  * @return {?number} ID of the last revision.
249
245
  */
250
246
  export function getCurrentPostLastRevisionId( state ) {
251
- return get(
252
- getCurrentPost( state ),
253
- [ '_links', 'predecessor-version', 0, 'id' ],
247
+ return (
248
+ getCurrentPost( state )._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ??
254
249
  null
255
250
  );
256
251
  }
@@ -371,7 +366,7 @@ export function getEditedPostAttribute( state, attributeName ) {
371
366
  export const getAutosaveAttribute = createRegistrySelector(
372
367
  ( select ) => ( state, attributeName ) => {
373
368
  if (
374
- ! includes( AUTOSAVE_PROPERTIES, attributeName ) &&
369
+ ! AUTOSAVE_PROPERTIES.includes( attributeName ) &&
375
370
  attributeName !== 'preview_link'
376
371
  ) {
377
372
  return;
@@ -379,9 +374,7 @@ export const getAutosaveAttribute = createRegistrySelector(
379
374
 
380
375
  const postType = getCurrentPostType( state );
381
376
  const postId = getCurrentPostId( state );
382
- const currentUserId = get( select( coreStore ).getCurrentUser(), [
383
- 'id',
384
- ] );
377
+ const currentUserId = select( coreStore ).getCurrentUser()?.id;
385
378
  const autosave = select( coreStore ).getAutosave(
386
379
  postType,
387
380
  postId,
@@ -589,9 +582,7 @@ export const isEditedPostAutosaveable = createRegistrySelector(
589
582
  postType,
590
583
  postId
591
584
  );
592
- const currentUserId = get( select( coreStore ).getCurrentUser(), [
593
- 'id',
594
- ] );
585
+ const currentUserId = select( coreStore ).getCurrentUser()?.id;
595
586
 
596
587
  // Disable reason - this line causes the side-effect of fetching the autosave
597
588
  // via a resolver, moving below the return would result in the autosave never
@@ -710,8 +701,7 @@ export const isSavingNonPostEntityChanges = createRegistrySelector(
710
701
  const entitiesBeingSaved =
711
702
  select( coreStore ).__experimentalGetEntitiesBeingSaved();
712
703
  const { type, id } = getCurrentPost( state );
713
- return some(
714
- entitiesBeingSaved,
704
+ return entitiesBeingSaved.some(
715
705
  ( entityRecord ) =>
716
706
  entityRecord.kind !== 'postType' ||
717
707
  entityRecord.name !== type ||
@@ -771,7 +761,7 @@ export function isAutosavingPost( state ) {
771
761
  if ( ! isSavingPost( state ) ) {
772
762
  return false;
773
763
  }
774
- return !! get( state.saving, [ 'options', 'isAutosave' ] );
764
+ return Boolean( state.saving.options?.isAutosave );
775
765
  }
776
766
 
777
767
  /**
@@ -785,7 +775,7 @@ export function isPreviewingPost( state ) {
785
775
  if ( ! isSavingPost( state ) ) {
786
776
  return false;
787
777
  }
788
- return !! get( state.saving, [ 'options', 'isPreview' ] );
778
+ return Boolean( state.saving.options?.isPreview );
789
779
  }
790
780
 
791
781
  /**
@@ -1081,10 +1071,11 @@ export function getActivePostLock( state ) {
1081
1071
  * @return {boolean} Whether the user can or can't post unfiltered HTML.
1082
1072
  */
1083
1073
  export function canUserUseUnfilteredHTML( state ) {
1084
- return has( getCurrentPost( state ), [
1085
- '_links',
1086
- 'wp:action-unfiltered-html',
1087
- ] );
1074
+ return Boolean(
1075
+ getCurrentPost( state )._links?.hasOwnProperty(
1076
+ 'wp:action-unfiltered-html'
1077
+ )
1078
+ );
1088
1079
  }
1089
1080
 
1090
1081
  /**
@@ -1583,8 +1574,18 @@ export const __experimentalGetDefaultTemplatePartAreas = createSelector(
1583
1574
  * @return {Object} The template type.
1584
1575
  */
1585
1576
  export const __experimentalGetDefaultTemplateType = createSelector(
1586
- ( state, slug ) =>
1587
- find( __experimentalGetDefaultTemplateTypes( state ), { slug } ) || {},
1577
+ ( state, slug ) => {
1578
+ const templateTypes = __experimentalGetDefaultTemplateTypes( state );
1579
+ if ( ! templateTypes ) {
1580
+ return EMPTY_OBJECT;
1581
+ }
1582
+
1583
+ return (
1584
+ Object.values( templateTypes ).find(
1585
+ ( type ) => type.slug === slug
1586
+ ) ?? EMPTY_OBJECT
1587
+ );
1588
+ },
1588
1589
  ( state, slug ) => [ __experimentalGetDefaultTemplateTypes( state ), slug ]
1589
1590
  );
1590
1591
 
@@ -1598,7 +1599,7 @@ export const __experimentalGetDefaultTemplateType = createSelector(
1598
1599
  */
1599
1600
  export function __experimentalGetTemplateInfo( state, template ) {
1600
1601
  if ( ! template ) {
1601
- return {};
1602
+ return EMPTY_OBJECT;
1602
1603
  }
1603
1604
 
1604
1605
  const { description, slug, title, area } = template;