@wordpress/block-library 8.28.5 → 8.28.6

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.
@@ -45,7 +45,7 @@ function NavigationMenuSelector({
45
45
  }) {
46
46
  /* translators: %s: The name of a menu. */
47
47
  const createActionLabel = (0, _i18n.__)("Create from '%s'");
48
- const [isCreatingMenu, setIsCreatingMenu] = (0, _element.useState)(false);
48
+ const [isUpdatingMenuRef, setIsUpdatingMenuRef] = (0, _element.useState)(false);
49
49
  actionLabel = actionLabel || createActionLabel;
50
50
  const {
51
51
  menus: classicMenus
@@ -68,10 +68,11 @@ function NavigationMenuSelector({
68
68
  return {
69
69
  value: id,
70
70
  label,
71
- ariaLabel: (0, _i18n.sprintf)(actionLabel, label)
71
+ ariaLabel: (0, _i18n.sprintf)(actionLabel, label),
72
+ disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
72
73
  };
73
74
  }) || [];
74
- }, [navigationMenus, actionLabel]);
75
+ }, [navigationMenus, actionLabel, isResolvingNavigationMenus, hasResolvedNavigationMenus, isUpdatingMenuRef]);
75
76
  const hasNavigationMenus = !!navigationMenus?.length;
76
77
  const hasClassicMenus = !!classicMenus?.length;
77
78
  const showNavigationMenus = !!canSwitchNavigationMenu;
@@ -80,7 +81,7 @@ function NavigationMenuSelector({
80
81
  const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
81
82
  const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
82
83
  let selectorLabel = '';
83
- if (isCreatingMenu || isResolvingNavigationMenus) {
84
+ if (isResolvingNavigationMenus) {
84
85
  selectorLabel = (0, _i18n.__)('Loading…');
85
86
  } else if (noMenuSelected || noBlockMenus || menuUnavailable) {
86
87
  // Note: classic Menus may be available.
@@ -90,10 +91,10 @@ function NavigationMenuSelector({
90
91
  selectorLabel = currentTitle;
91
92
  }
92
93
  (0, _element.useEffect)(() => {
93
- if (isCreatingMenu && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
94
- setIsCreatingMenu(false);
94
+ if (isUpdatingMenuRef && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
95
+ setIsUpdatingMenuRef(false);
95
96
  }
96
- }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenu, createNavigationMenuIsError, isCreatingMenu, menuUnavailable, noBlockMenus, noMenuSelected]);
97
+ }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenu, createNavigationMenuIsError, isUpdatingMenuRef, menuUnavailable, noBlockMenus, noMenuSelected]);
97
98
  const NavigationMenuSelectorDropdown = (0, _react.createElement)(_components.DropdownMenu, {
98
99
  label: selectorLabel,
99
100
  icon: _icons.moreVertical,
@@ -107,35 +108,35 @@ function NavigationMenuSelector({
107
108
  }, (0, _react.createElement)(_components.MenuItemsChoice, {
108
109
  value: currentMenuId,
109
110
  onSelect: menuId => {
110
- setIsCreatingMenu(true);
111
111
  onSelectNavigationMenu(menuId);
112
112
  onClose();
113
113
  },
114
- choices: menuChoices,
115
- disabled: isCreatingMenu
114
+ choices: menuChoices
116
115
  })), showClassicMenus && hasClassicMenus && (0, _react.createElement)(_components.MenuGroup, {
117
116
  label: (0, _i18n.__)('Import Classic Menus')
118
117
  }, classicMenus?.map(menu => {
119
118
  const label = (0, _htmlEntities.decodeEntities)(menu.name);
120
119
  return (0, _react.createElement)(_components.MenuItem, {
121
- onClick: () => {
122
- setIsCreatingMenu(true);
123
- onSelectClassicMenu(menu);
120
+ onClick: async () => {
121
+ setIsUpdatingMenuRef(true);
122
+ await onSelectClassicMenu(menu);
123
+ setIsUpdatingMenuRef(false);
124
124
  onClose();
125
125
  },
126
126
  key: menu.id,
127
127
  "aria-label": (0, _i18n.sprintf)(createActionLabel, label),
128
- disabled: isCreatingMenu
128
+ disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
129
129
  }, label);
130
130
  })), canUserCreateNavigationMenu && (0, _react.createElement)(_components.MenuGroup, {
131
131
  label: (0, _i18n.__)('Tools')
132
132
  }, (0, _react.createElement)(_components.MenuItem, {
133
- disabled: isCreatingMenu,
134
- onClick: () => {
133
+ onClick: async () => {
134
+ setIsUpdatingMenuRef(true);
135
+ await onCreateNew();
136
+ setIsUpdatingMenuRef(false);
135
137
  onClose();
136
- onCreateNew();
137
- setIsCreatingMenu(true);
138
- }
138
+ },
139
+ disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
139
140
  }, (0, _i18n.__)('Create new menu')))));
140
141
  return NavigationMenuSelectorDropdown;
141
142
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_icons","_i18n","_htmlEntities","_element","_coreData","_useNavigationMenu","_interopRequireDefault","_useNavigationEntities","buildMenuLabel","title","id","status","sprintf","__","decodeEntities","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isCreatingMenu","setIsCreatingMenu","useState","menus","classicMenus","useNavigationEntities","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenu","canSwitchNavigationMenu","useNavigationMenu","currentTitle","useEntityProp","menuChoices","useMemo","map","index","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","useEffect","NavigationMenuSelectorDropdown","_react","createElement","DropdownMenu","icon","moreVertical","toggleProps","isSmall","onClose","Fragment","MenuGroup","MenuItemsChoice","onSelect","menuId","choices","disabled","menu","name","MenuItem","onClick","key","_default","exports","default"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isCreatingMenu, setIsCreatingMenu ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [ navigationMenus, actionLabel ] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tlet selectorLabel = '';\n\n\tif ( isCreatingMenu || isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingMenu &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsCreatingMenu( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenu,\n\t\tcreateNavigationMenuIsError,\n\t\tisCreatingMenu,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\t\t\tonSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\tonCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_icons","_i18n","_htmlEntities","_element","_coreData","_useNavigationMenu","_interopRequireDefault","_useNavigationEntities","buildMenuLabel","title","id","status","sprintf","__","decodeEntities","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isUpdatingMenuRef","setIsUpdatingMenuRef","useState","menus","classicMenus","useNavigationEntities","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenu","canSwitchNavigationMenu","useNavigationMenu","currentTitle","useEntityProp","menuChoices","useMemo","map","index","label","rendered","value","ariaLabel","disabled","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","useEffect","NavigationMenuSelectorDropdown","_react","createElement","DropdownMenu","icon","moreVertical","toggleProps","isSmall","onClose","Fragment","MenuGroup","MenuItemsChoice","onSelect","menuId","choices","menu","name","MenuItem","onClick","key","_default","exports","default"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isUpdatingMenuRef, setIsUpdatingMenuRef ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t! hasResolvedNavigationMenus,\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [\n\t\tnavigationMenus,\n\t\tactionLabel,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tisUpdatingMenuRef,\n\t] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tlet selectorLabel = '';\n\n\tif ( isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisUpdatingMenuRef &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsUpdatingMenuRef( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenu,\n\t\tcreateNavigationMenuIsError,\n\t\tisUpdatingMenuRef,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\t\t\tawait onSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\tawait onCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ import { Placeholder, Spinner, ToolbarButton, ToolbarGroup } from '@wordpress/co
14
14
  import { __ } from '@wordpress/i18n';
15
15
  import { useInnerBlocksProps, RecursionProvider, useHasRecursion, InnerBlocks, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
16
16
  import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
17
- import { parse, cloneBlock } from '@wordpress/blocks';
17
+ import { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';
18
18
  import { RichTextData } from '@wordpress/rich-text';
19
19
 
20
20
  /**
@@ -196,7 +196,8 @@ export default function ReusableBlockEdit({
196
196
  userCanEdit,
197
197
  getBlockEditingMode,
198
198
  onNavigateToEntityRecord,
199
- editingMode
199
+ editingMode,
200
+ hasPatternOverridesSource
200
201
  } = useSelect(select => {
201
202
  const {
202
203
  canUser
@@ -206,6 +207,9 @@ export default function ReusableBlockEdit({
206
207
  getSettings,
207
208
  getBlockEditingMode: _getBlockEditingMode
208
209
  } = select(blockEditorStore);
210
+ const {
211
+ getBlockBindingsSource
212
+ } = unlock(select(blocksStore));
209
213
  const blocks = getBlocks(patternClientId);
210
214
  const canEdit = canUser('update', 'blocks', ref);
211
215
 
@@ -215,7 +219,8 @@ export default function ReusableBlockEdit({
215
219
  userCanEdit: canEdit,
216
220
  getBlockEditingMode: _getBlockEditingMode,
217
221
  onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
218
- editingMode: _getBlockEditingMode(patternClientId)
222
+ editingMode: _getBlockEditingMode(patternClientId),
223
+ hasPatternOverridesSource: !!getBlockBindingsSource('core/pattern-overrides')
219
224
  };
220
225
  }, [patternClientId, ref]);
221
226
 
@@ -223,9 +228,9 @@ export default function ReusableBlockEdit({
223
228
  useEffect(() => {
224
229
  setBlockEditMode(setBlockEditingMode, innerBlocks,
225
230
  // Disable editing if the pattern itself is disabled.
226
- editingMode === 'disabled' ? 'disabled' : undefined);
227
- }, [editingMode, innerBlocks, setBlockEditingMode]);
228
- const canOverrideBlocks = useMemo(() => hasOverridableBlocks(innerBlocks), [innerBlocks]);
231
+ editingMode === 'disabled' || !hasPatternOverridesSource ? 'disabled' : undefined);
232
+ }, [editingMode, innerBlocks, setBlockEditingMode, hasPatternOverridesSource]);
233
+ const canOverrideBlocks = useMemo(() => hasPatternOverridesSource && hasOverridableBlocks(innerBlocks), [hasPatternOverridesSource, innerBlocks]);
229
234
  const initialBlocks = useMemo(() => {
230
235
  var _editedRecord$blocks$;
231
236
  return (// Clone the blocks to generate new client IDs.
@@ -244,11 +249,12 @@ export default function ReusableBlockEdit({
244
249
  registry.batch(() => {
245
250
  setBlockEditingMode(patternClientId, 'default');
246
251
  syncDerivedUpdates(() => {
247
- replaceInnerBlocks(patternClientId, applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current));
252
+ const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
253
+ replaceInnerBlocks(patternClientId, blocks);
248
254
  });
249
255
  setBlockEditingMode(patternClientId, originalEditingMode);
250
256
  });
251
- }, [__unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
257
+ }, [hasPatternOverridesSource, __unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
252
258
  const {
253
259
  alignment,
254
260
  layout
@@ -270,6 +276,9 @@ export default function ReusableBlockEdit({
270
276
  // Sync the `content` attribute from the updated blocks to the pattern block.
271
277
  // `syncDerivedUpdates` is used here to avoid creating an additional undo level.
272
278
  useEffect(() => {
279
+ if (!hasPatternOverridesSource) {
280
+ return;
281
+ }
273
282
  const {
274
283
  getBlocks
275
284
  } = registry.select(blockEditorStore);
@@ -285,7 +294,7 @@ export default function ReusableBlockEdit({
285
294
  });
286
295
  }
287
296
  }, blockEditorStore);
288
- }, [syncDerivedUpdates, patternClientId, registry, setAttributes]);
297
+ }, [hasPatternOverridesSource, syncDerivedUpdates, patternClientId, registry, setAttributes]);
289
298
  const handleEditOriginal = () => {
290
299
  onNavigateToEntityRecord({
291
300
  postId: ref,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","RichTextData","name","patternBlockName","unlock","useLayoutClasses","PARTIAL_SYNCING_SUPPORTED_BLOCKS","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableAttributes","Object","keys","bindings","values","binding","source","hasOverridableBlocks","getOverridableAttributes","entries","filter","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","setBlockEditMode","setEditMode","mode","forEach","editMode","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","hasAlreadyRendered","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","select","canUser","getBlocks","getSettings","_getBlockEditingMode","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","blockProps","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","createElement","uniqueId","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableAttributes( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( hasOverridableAttributes( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' ? 'disabled' : undefined\n\t\t);\n\t}, [ editingMode, innerBlocks, setBlockEditingMode ] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasOverridableBlocks( innerBlocks ),\n\t\t[ innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","blocksStore","RichTextData","name","patternBlockName","unlock","useLayoutClasses","PARTIAL_SYNCING_SUPPORTED_BLOCKS","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableAttributes","Object","keys","bindings","values","binding","source","hasOverridableBlocks","getOverridableAttributes","entries","filter","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","setBlockEditMode","setEditMode","mode","forEach","editMode","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","hasAlreadyRendered","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","blockProps","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","createElement","uniqueId","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableAttributes( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( hasOverridableAttributes( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
@@ -19,7 +19,9 @@ export default function save({
19
19
  // prevent embedding in PHP. Ideally checks for the code block,
20
20
  // or pre/code tags, should be made on the PHP side?
21
21
  ,
22
- value: escape(attributes.content.toString())
22
+ value: escape(typeof attributes.content === 'string' ? attributes.content : attributes.content.toHTMLString({
23
+ preserveWhiteSpace: true
24
+ }))
23
25
  }));
24
26
  }
25
27
  //# sourceMappingURL=save.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RichText","useBlockProps","escape","save","attributes","createElement","Content","tagName","value","content","toString"],"sources":["@wordpress/block-library/src/code/save.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { escape } from './utils';\n\nexport default function save( { attributes } ) {\n\treturn (\n\t\t<pre { ...useBlockProps.save() }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"code\"\n\t\t\t\t// To do: `escape` encodes characters in shortcodes and URLs to\n\t\t\t\t// prevent embedding in PHP. Ideally checks for the code block,\n\t\t\t\t// or pre/code tags, should be made on the PHP side?\n\t\t\t\tvalue={ escape( attributes.content.toString() ) }\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,yBAAyB;;AAEjE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,SAAS;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,OACCC,aAAA;IAAA,GAAUJ,aAAa,CAACE,IAAI,CAAC;EAAC,GAC7BE,aAAA,CAACL,QAAQ,CAACM,OAAO;IAChBC,OAAO,EAAC;IACR;IACA;IACA;IAAA;IACAC,KAAK,EAAGN,MAAM,CAAEE,UAAU,CAACK,OAAO,CAACC,QAAQ,CAAC,CAAE;EAAG,CACjD,CACG,CAAC;AAER"}
1
+ {"version":3,"names":["RichText","useBlockProps","escape","save","attributes","createElement","Content","tagName","value","content","toHTMLString","preserveWhiteSpace"],"sources":["@wordpress/block-library/src/code/save.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { escape } from './utils';\n\nexport default function save( { attributes } ) {\n\treturn (\n\t\t<pre { ...useBlockProps.save() }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"code\"\n\t\t\t\t// To do: `escape` encodes characters in shortcodes and URLs to\n\t\t\t\t// prevent embedding in PHP. Ideally checks for the code block,\n\t\t\t\t// or pre/code tags, should be made on the PHP side?\n\t\t\t\tvalue={ escape(\n\t\t\t\t\ttypeof attributes.content === 'string'\n\t\t\t\t\t\t? attributes.content\n\t\t\t\t\t\t: attributes.content.toHTMLString( {\n\t\t\t\t\t\t\t\tpreserveWhiteSpace: true,\n\t\t\t\t\t\t } )\n\t\t\t\t) }\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,yBAAyB;;AAEjE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,SAAS;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,OACCC,aAAA;IAAA,GAAUJ,aAAa,CAACE,IAAI,CAAC;EAAC,GAC7BE,aAAA,CAACL,QAAQ,CAACM,OAAO;IAChBC,OAAO,EAAC;IACR;IACA;IACA;IAAA;IACAC,KAAK,EAAGN,MAAM,CACb,OAAOE,UAAU,CAACK,OAAO,KAAK,QAAQ,GACnCL,UAAU,CAACK,OAAO,GAClBL,UAAU,CAACK,OAAO,CAACC,YAAY,CAAE;MACjCC,kBAAkB,EAAE;IACpB,CAAE,CACN;EAAG,CACH,CACG,CAAC;AAER"}
@@ -107,8 +107,8 @@ function Navigation({
107
107
  isSuccess: createNavigationMenuIsSuccess,
108
108
  isError: createNavigationMenuIsError
109
109
  } = useCreateNavigationMenu(clientId);
110
- const createUntitledEmptyNavigationMenu = () => {
111
- createNavigationMenu('');
110
+ const createUntitledEmptyNavigationMenu = async () => {
111
+ await createNavigationMenu('');
112
112
  };
113
113
  const {
114
114
  hasUncontrolledInnerBlocks,