Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../js/dist
File: patterns.js
const existingTerm = categoryMap.get(term.toLowerCase());
[500] Fix | Delete
if (existingTerm?.id) {
[501] Fix | Delete
return existingTerm.id;
[502] Fix | Delete
}
[503] Fix | Delete
// If we have an existing core category we need to match the new user category to the
[504] Fix | Delete
// correct slug rather than autogenerating it to prevent duplicates, eg. the core `Headers`
[505] Fix | Delete
// category uses the singular `header` as the slug.
[506] Fix | Delete
const termData = existingTerm ? {
[507] Fix | Delete
name: existingTerm.label,
[508] Fix | Delete
slug: existingTerm.name
[509] Fix | Delete
} : {
[510] Fix | Delete
name: term
[511] Fix | Delete
};
[512] Fix | Delete
const newTerm = await saveEntityRecord('taxonomy', CATEGORY_SLUG, termData, {
[513] Fix | Delete
throwOnError: true
[514] Fix | Delete
});
[515] Fix | Delete
invalidateResolution('getUserPatternCategories');
[516] Fix | Delete
return newTerm.id;
[517] Fix | Delete
} catch (error) {
[518] Fix | Delete
if (error.code !== 'term_exists') {
[519] Fix | Delete
throw error;
[520] Fix | Delete
}
[521] Fix | Delete
return error.data.term_id;
[522] Fix | Delete
}
[523] Fix | Delete
}
[524] Fix | Delete
return {
[525] Fix | Delete
categoryMap,
[526] Fix | Delete
findOrCreateTerm
[527] Fix | Delete
};
[528] Fix | Delete
}
[529] Fix | Delete
[530] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/create-pattern-modal.js
[531] Fix | Delete
/**
[532] Fix | Delete
* WordPress dependencies
[533] Fix | Delete
*/
[534] Fix | Delete
[535] Fix | Delete
[536] Fix | Delete
[537] Fix | Delete
[538] Fix | Delete
[539] Fix | Delete
[540] Fix | Delete
[541] Fix | Delete
/**
[542] Fix | Delete
* Internal dependencies
[543] Fix | Delete
*/
[544] Fix | Delete
[545] Fix | Delete
[546] Fix | Delete
[547] Fix | Delete
[548] Fix | Delete
[549] Fix | Delete
[550] Fix | Delete
[551] Fix | Delete
function CreatePatternModal({
[552] Fix | Delete
className = 'patterns-menu-items__convert-modal',
[553] Fix | Delete
modalTitle,
[554] Fix | Delete
...restProps
[555] Fix | Delete
}) {
[556] Fix | Delete
const defaultModalTitle = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getPostType(PATTERN_TYPES.user)?.labels?.add_new_item, []);
[557] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
[558] Fix | Delete
title: modalTitle || defaultModalTitle,
[559] Fix | Delete
onRequestClose: restProps.onClose,
[560] Fix | Delete
overlayClassName: className,
[561] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreatePatternModalContents, {
[562] Fix | Delete
...restProps
[563] Fix | Delete
})
[564] Fix | Delete
});
[565] Fix | Delete
}
[566] Fix | Delete
function CreatePatternModalContents({
[567] Fix | Delete
confirmLabel = (0,external_wp_i18n_namespaceObject.__)('Add'),
[568] Fix | Delete
defaultCategories = [],
[569] Fix | Delete
content,
[570] Fix | Delete
onClose,
[571] Fix | Delete
onError,
[572] Fix | Delete
onSuccess,
[573] Fix | Delete
defaultSyncType = PATTERN_SYNC_TYPES.full,
[574] Fix | Delete
defaultTitle = ''
[575] Fix | Delete
}) {
[576] Fix | Delete
const [syncType, setSyncType] = (0,external_wp_element_namespaceObject.useState)(defaultSyncType);
[577] Fix | Delete
const [categoryTerms, setCategoryTerms] = (0,external_wp_element_namespaceObject.useState)(defaultCategories);
[578] Fix | Delete
const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)(defaultTitle);
[579] Fix | Delete
const [isSaving, setIsSaving] = (0,external_wp_element_namespaceObject.useState)(false);
[580] Fix | Delete
const {
[581] Fix | Delete
createPattern
[582] Fix | Delete
} = unlock((0,external_wp_data_namespaceObject.useDispatch)(store));
[583] Fix | Delete
const {
[584] Fix | Delete
createErrorNotice
[585] Fix | Delete
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
[586] Fix | Delete
const {
[587] Fix | Delete
categoryMap,
[588] Fix | Delete
findOrCreateTerm
[589] Fix | Delete
} = useAddPatternCategory();
[590] Fix | Delete
async function onCreate(patternTitle, sync) {
[591] Fix | Delete
if (!title || isSaving) {
[592] Fix | Delete
return;
[593] Fix | Delete
}
[594] Fix | Delete
try {
[595] Fix | Delete
setIsSaving(true);
[596] Fix | Delete
const categories = await Promise.all(categoryTerms.map(termName => findOrCreateTerm(termName)));
[597] Fix | Delete
const newPattern = await createPattern(patternTitle, sync, typeof content === 'function' ? content() : content, categories);
[598] Fix | Delete
onSuccess({
[599] Fix | Delete
pattern: newPattern,
[600] Fix | Delete
categoryId: PATTERN_DEFAULT_CATEGORY
[601] Fix | Delete
});
[602] Fix | Delete
} catch (error) {
[603] Fix | Delete
createErrorNotice(error.message, {
[604] Fix | Delete
type: 'snackbar',
[605] Fix | Delete
id: 'pattern-create'
[606] Fix | Delete
});
[607] Fix | Delete
onError?.();
[608] Fix | Delete
} finally {
[609] Fix | Delete
setIsSaving(false);
[610] Fix | Delete
setCategoryTerms([]);
[611] Fix | Delete
setTitle('');
[612] Fix | Delete
}
[613] Fix | Delete
}
[614] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
[615] Fix | Delete
onSubmit: event => {
[616] Fix | Delete
event.preventDefault();
[617] Fix | Delete
onCreate(title, syncType);
[618] Fix | Delete
},
[619] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
[620] Fix | Delete
spacing: "5",
[621] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
[622] Fix | Delete
label: (0,external_wp_i18n_namespaceObject.__)('Name'),
[623] Fix | Delete
value: title,
[624] Fix | Delete
onChange: setTitle,
[625] Fix | Delete
placeholder: (0,external_wp_i18n_namespaceObject.__)('My pattern'),
[626] Fix | Delete
className: "patterns-create-modal__name-input",
[627] Fix | Delete
__nextHasNoMarginBottom: true,
[628] Fix | Delete
__next40pxDefaultSize: true
[629] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CategorySelector, {
[630] Fix | Delete
categoryTerms: categoryTerms,
[631] Fix | Delete
onChange: setCategoryTerms,
[632] Fix | Delete
categoryMap: categoryMap
[633] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
[634] Fix | Delete
label: (0,external_wp_i18n_namespaceObject._x)('Synced', 'pattern (singular)'),
[635] Fix | Delete
help: (0,external_wp_i18n_namespaceObject.__)('Sync this pattern across multiple locations.'),
[636] Fix | Delete
checked: syncType === PATTERN_SYNC_TYPES.full,
[637] Fix | Delete
onChange: () => {
[638] Fix | Delete
setSyncType(syncType === PATTERN_SYNC_TYPES.full ? PATTERN_SYNC_TYPES.unsynced : PATTERN_SYNC_TYPES.full);
[639] Fix | Delete
}
[640] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
[641] Fix | Delete
justify: "right",
[642] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
[643] Fix | Delete
__next40pxDefaultSize: true,
[644] Fix | Delete
variant: "tertiary",
[645] Fix | Delete
onClick: () => {
[646] Fix | Delete
onClose();
[647] Fix | Delete
setTitle('');
[648] Fix | Delete
},
[649] Fix | Delete
children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
[650] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
[651] Fix | Delete
__next40pxDefaultSize: true,
[652] Fix | Delete
variant: "primary",
[653] Fix | Delete
type: "submit",
[654] Fix | Delete
"aria-disabled": !title || isSaving,
[655] Fix | Delete
isBusy: isSaving,
[656] Fix | Delete
children: confirmLabel
[657] Fix | Delete
})]
[658] Fix | Delete
})]
[659] Fix | Delete
})
[660] Fix | Delete
});
[661] Fix | Delete
}
[662] Fix | Delete
[663] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/duplicate-pattern-modal.js
[664] Fix | Delete
/**
[665] Fix | Delete
* WordPress dependencies
[666] Fix | Delete
*/
[667] Fix | Delete
[668] Fix | Delete
[669] Fix | Delete
[670] Fix | Delete
[671] Fix | Delete
[672] Fix | Delete
/**
[673] Fix | Delete
* Internal dependencies
[674] Fix | Delete
*/
[675] Fix | Delete
[676] Fix | Delete
[677] Fix | Delete
[678] Fix | Delete
function getTermLabels(pattern, categories) {
[679] Fix | Delete
// Theme patterns rely on core pattern categories.
[680] Fix | Delete
if (pattern.type !== PATTERN_TYPES.user) {
[681] Fix | Delete
return categories.core?.filter(category => pattern.categories.includes(category.name)).map(category => category.label);
[682] Fix | Delete
}
[683] Fix | Delete
return categories.user?.filter(category => pattern.wp_pattern_category.includes(category.id)).map(category => category.label);
[684] Fix | Delete
}
[685] Fix | Delete
function useDuplicatePatternProps({
[686] Fix | Delete
pattern,
[687] Fix | Delete
onSuccess
[688] Fix | Delete
}) {
[689] Fix | Delete
const {
[690] Fix | Delete
createSuccessNotice
[691] Fix | Delete
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
[692] Fix | Delete
const categories = (0,external_wp_data_namespaceObject.useSelect)(select => {
[693] Fix | Delete
const {
[694] Fix | Delete
getUserPatternCategories,
[695] Fix | Delete
getBlockPatternCategories
[696] Fix | Delete
} = select(external_wp_coreData_namespaceObject.store);
[697] Fix | Delete
return {
[698] Fix | Delete
core: getBlockPatternCategories(),
[699] Fix | Delete
user: getUserPatternCategories()
[700] Fix | Delete
};
[701] Fix | Delete
});
[702] Fix | Delete
if (!pattern) {
[703] Fix | Delete
return null;
[704] Fix | Delete
}
[705] Fix | Delete
return {
[706] Fix | Delete
content: pattern.content,
[707] Fix | Delete
defaultCategories: getTermLabels(pattern, categories),
[708] Fix | Delete
defaultSyncType: pattern.type !== PATTERN_TYPES.user // Theme patterns are unsynced by default.
[709] Fix | Delete
? PATTERN_SYNC_TYPES.unsynced : pattern.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,
[710] Fix | Delete
defaultTitle: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Existing pattern title */
[711] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('%s (Copy)'), typeof pattern.title === 'string' ? pattern.title : pattern.title.raw),
[712] Fix | Delete
onSuccess: ({
[713] Fix | Delete
pattern: newPattern
[714] Fix | Delete
}) => {
[715] Fix | Delete
createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
[716] Fix | Delete
// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.
[717] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('"%s" duplicated.'), newPattern.title.raw), {
[718] Fix | Delete
type: 'snackbar',
[719] Fix | Delete
id: 'patterns-create'
[720] Fix | Delete
});
[721] Fix | Delete
onSuccess?.({
[722] Fix | Delete
pattern: newPattern
[723] Fix | Delete
});
[724] Fix | Delete
}
[725] Fix | Delete
};
[726] Fix | Delete
}
[727] Fix | Delete
function DuplicatePatternModal({
[728] Fix | Delete
pattern,
[729] Fix | Delete
onClose,
[730] Fix | Delete
onSuccess
[731] Fix | Delete
}) {
[732] Fix | Delete
const duplicatedProps = useDuplicatePatternProps({
[733] Fix | Delete
pattern,
[734] Fix | Delete
onSuccess
[735] Fix | Delete
});
[736] Fix | Delete
if (!pattern) {
[737] Fix | Delete
return null;
[738] Fix | Delete
}
[739] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreatePatternModal, {
[740] Fix | Delete
modalTitle: (0,external_wp_i18n_namespaceObject.__)('Duplicate pattern'),
[741] Fix | Delete
confirmLabel: (0,external_wp_i18n_namespaceObject.__)('Duplicate'),
[742] Fix | Delete
onClose: onClose,
[743] Fix | Delete
onError: onClose,
[744] Fix | Delete
...duplicatedProps
[745] Fix | Delete
});
[746] Fix | Delete
}
[747] Fix | Delete
[748] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/rename-pattern-modal.js
[749] Fix | Delete
/**
[750] Fix | Delete
* WordPress dependencies
[751] Fix | Delete
*/
[752] Fix | Delete
[753] Fix | Delete
[754] Fix | Delete
[755] Fix | Delete
[756] Fix | Delete
[757] Fix | Delete
[758] Fix | Delete
[759] Fix | Delete
[760] Fix | Delete
[761] Fix | Delete
function RenamePatternModal({
[762] Fix | Delete
onClose,
[763] Fix | Delete
onError,
[764] Fix | Delete
onSuccess,
[765] Fix | Delete
pattern,
[766] Fix | Delete
...props
[767] Fix | Delete
}) {
[768] Fix | Delete
const originalName = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(pattern.title);
[769] Fix | Delete
const [name, setName] = (0,external_wp_element_namespaceObject.useState)(originalName);
[770] Fix | Delete
const [isSaving, setIsSaving] = (0,external_wp_element_namespaceObject.useState)(false);
[771] Fix | Delete
const {
[772] Fix | Delete
editEntityRecord,
[773] Fix | Delete
__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits
[774] Fix | Delete
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
[775] Fix | Delete
const {
[776] Fix | Delete
createSuccessNotice,
[777] Fix | Delete
createErrorNotice
[778] Fix | Delete
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
[779] Fix | Delete
const onRename = async event => {
[780] Fix | Delete
event.preventDefault();
[781] Fix | Delete
if (!name || name === pattern.title || isSaving) {
[782] Fix | Delete
return;
[783] Fix | Delete
}
[784] Fix | Delete
try {
[785] Fix | Delete
await editEntityRecord('postType', pattern.type, pattern.id, {
[786] Fix | Delete
title: name
[787] Fix | Delete
});
[788] Fix | Delete
setIsSaving(true);
[789] Fix | Delete
setName('');
[790] Fix | Delete
onClose?.();
[791] Fix | Delete
const savedRecord = await saveSpecifiedEntityEdits('postType', pattern.type, pattern.id, ['title'], {
[792] Fix | Delete
throwOnError: true
[793] Fix | Delete
});
[794] Fix | Delete
onSuccess?.(savedRecord);
[795] Fix | Delete
createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Pattern renamed'), {
[796] Fix | Delete
type: 'snackbar',
[797] Fix | Delete
id: 'pattern-update'
[798] Fix | Delete
});
[799] Fix | Delete
} catch (error) {
[800] Fix | Delete
onError?.();
[801] Fix | Delete
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while renaming the pattern.');
[802] Fix | Delete
createErrorNotice(errorMessage, {
[803] Fix | Delete
type: 'snackbar',
[804] Fix | Delete
id: 'pattern-update'
[805] Fix | Delete
});
[806] Fix | Delete
} finally {
[807] Fix | Delete
setIsSaving(false);
[808] Fix | Delete
setName('');
[809] Fix | Delete
}
[810] Fix | Delete
};
[811] Fix | Delete
const onRequestClose = () => {
[812] Fix | Delete
onClose?.();
[813] Fix | Delete
setName('');
[814] Fix | Delete
};
[815] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
[816] Fix | Delete
title: (0,external_wp_i18n_namespaceObject.__)('Rename'),
[817] Fix | Delete
...props,
[818] Fix | Delete
onRequestClose: onClose,
[819] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
[820] Fix | Delete
onSubmit: onRename,
[821] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
[822] Fix | Delete
spacing: "5",
[823] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
[824] Fix | Delete
__nextHasNoMarginBottom: true,
[825] Fix | Delete
__next40pxDefaultSize: true,
[826] Fix | Delete
label: (0,external_wp_i18n_namespaceObject.__)('Name'),
[827] Fix | Delete
value: name,
[828] Fix | Delete
onChange: setName,
[829] Fix | Delete
required: true
[830] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
[831] Fix | Delete
justify: "right",
[832] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
[833] Fix | Delete
__next40pxDefaultSize: true,
[834] Fix | Delete
variant: "tertiary",
[835] Fix | Delete
onClick: onRequestClose,
[836] Fix | Delete
children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
[837] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
[838] Fix | Delete
__next40pxDefaultSize: true,
[839] Fix | Delete
variant: "primary",
[840] Fix | Delete
type: "submit",
[841] Fix | Delete
children: (0,external_wp_i18n_namespaceObject.__)('Save')
[842] Fix | Delete
})]
[843] Fix | Delete
})]
[844] Fix | Delete
})
[845] Fix | Delete
})
[846] Fix | Delete
});
[847] Fix | Delete
}
[848] Fix | Delete
[849] Fix | Delete
;// CONCATENATED MODULE: external ["wp","primitives"]
[850] Fix | Delete
const external_wp_primitives_namespaceObject = window["wp"]["primitives"];
[851] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js
[852] Fix | Delete
/**
[853] Fix | Delete
* WordPress dependencies
[854] Fix | Delete
*/
[855] Fix | Delete
[856] Fix | Delete
[857] Fix | Delete
const symbol = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
[858] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[859] Fix | Delete
viewBox: "0 0 24 24",
[860] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[861] Fix | Delete
d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
[862] Fix | Delete
})
[863] Fix | Delete
});
[864] Fix | Delete
/* harmony default export */ const library_symbol = (symbol);
[865] Fix | Delete
[866] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/pattern-convert-button.js
[867] Fix | Delete
/**
[868] Fix | Delete
* WordPress dependencies
[869] Fix | Delete
*/
[870] Fix | Delete
[871] Fix | Delete
[872] Fix | Delete
[873] Fix | Delete
[874] Fix | Delete
[875] Fix | Delete
[876] Fix | Delete
[877] Fix | Delete
[878] Fix | Delete
[879] Fix | Delete
/**
[880] Fix | Delete
* Internal dependencies
[881] Fix | Delete
*/
[882] Fix | Delete
[883] Fix | Delete
[884] Fix | Delete
[885] Fix | Delete
[886] Fix | Delete
[887] Fix | Delete
/**
[888] Fix | Delete
* Menu control to convert block(s) to a pattern block.
[889] Fix | Delete
*
[890] Fix | Delete
* @param {Object} props Component props.
[891] Fix | Delete
* @param {string[]} props.clientIds Client ids of selected blocks.
[892] Fix | Delete
* @param {string} props.rootClientId ID of the currently selected top-level block.
[893] Fix | Delete
* @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.
[894] Fix | Delete
* @return {import('react').ComponentType} The menu control or null.
[895] Fix | Delete
*/
[896] Fix | Delete
[897] Fix | Delete
[898] Fix | Delete
[899] Fix | Delete
function PatternConvertButton({
[900] Fix | Delete
clientIds,
[901] Fix | Delete
rootClientId,
[902] Fix | Delete
closeBlockSettingsMenu
[903] Fix | Delete
}) {
[904] Fix | Delete
const {
[905] Fix | Delete
createSuccessNotice
[906] Fix | Delete
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
[907] Fix | Delete
const {
[908] Fix | Delete
replaceBlocks
[909] Fix | Delete
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
[910] Fix | Delete
// Ignore reason: false positive of the lint rule.
[911] Fix | Delete
// eslint-disable-next-line @wordpress/no-unused-vars-before-return
[912] Fix | Delete
const {
[913] Fix | Delete
setEditingPattern
[914] Fix | Delete
} = unlock((0,external_wp_data_namespaceObject.useDispatch)(store));
[915] Fix | Delete
const [isModalOpen, setIsModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
[916] Fix | Delete
const canConvert = (0,external_wp_data_namespaceObject.useSelect)(select => {
[917] Fix | Delete
var _getBlocksByClientId;
[918] Fix | Delete
const {
[919] Fix | Delete
canUser
[920] Fix | Delete
} = select(external_wp_coreData_namespaceObject.store);
[921] Fix | Delete
const {
[922] Fix | Delete
getBlocksByClientId,
[923] Fix | Delete
canInsertBlockType,
[924] Fix | Delete
getBlockRootClientId
[925] Fix | Delete
} = select(external_wp_blockEditor_namespaceObject.store);
[926] Fix | Delete
const rootId = rootClientId || (clientIds.length > 0 ? getBlockRootClientId(clientIds[0]) : undefined);
[927] Fix | Delete
const blocks = (_getBlocksByClientId = getBlocksByClientId(clientIds)) !== null && _getBlocksByClientId !== void 0 ? _getBlocksByClientId : [];
[928] Fix | Delete
const isReusable = blocks.length === 1 && blocks[0] && (0,external_wp_blocks_namespaceObject.isReusableBlock)(blocks[0]) && !!select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_block', blocks[0].attributes.ref);
[929] Fix | Delete
const _canConvert =
[930] Fix | Delete
// Hide when this is already a synced pattern.
[931] Fix | Delete
!isReusable &&
[932] Fix | Delete
// Hide when patterns are disabled.
[933] Fix | Delete
canInsertBlockType('core/block', rootId) && blocks.every(block =>
[934] Fix | Delete
// Guard against the case where a regular block has *just* been converted.
[935] Fix | Delete
!!block &&
[936] Fix | Delete
// Hide on invalid blocks.
[937] Fix | Delete
block.isValid &&
[938] Fix | Delete
// Hide when block doesn't support being made into a pattern.
[939] Fix | Delete
(0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'reusable', true)) &&
[940] Fix | Delete
// Hide when current doesn't have permission to do that.
[941] Fix | Delete
!!canUser('create', 'blocks');
[942] Fix | Delete
return _canConvert;
[943] Fix | Delete
}, [clientIds, rootClientId]);
[944] Fix | Delete
const {
[945] Fix | Delete
getBlocksByClientId
[946] Fix | Delete
} = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
[947] Fix | Delete
const getContent = (0,external_wp_element_namespaceObject.useCallback)(() => (0,external_wp_blocks_namespaceObject.serialize)(getBlocksByClientId(clientIds)), [getBlocksByClientId, clientIds]);
[948] Fix | Delete
if (!canConvert) {
[949] Fix | Delete
return null;
[950] Fix | Delete
}
[951] Fix | Delete
const handleSuccess = ({
[952] Fix | Delete
pattern
[953] Fix | Delete
}) => {
[954] Fix | Delete
if (pattern.wp_pattern_sync_status !== PATTERN_SYNC_TYPES.unsynced) {
[955] Fix | Delete
const newBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/block', {
[956] Fix | Delete
ref: pattern.id
[957] Fix | Delete
});
[958] Fix | Delete
replaceBlocks(clientIds, newBlock);
[959] Fix | Delete
setEditingPattern(newBlock.clientId, true);
[960] Fix | Delete
closeBlockSettingsMenu();
[961] Fix | Delete
}
[962] Fix | Delete
createSuccessNotice(pattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced ? (0,external_wp_i18n_namespaceObject.sprintf)(
[963] Fix | Delete
// translators: %s: the name the user has given to the pattern.
[964] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('Unsynced pattern created: %s'), pattern.title.raw) : (0,external_wp_i18n_namespaceObject.sprintf)(
[965] Fix | Delete
// translators: %s: the name the user has given to the pattern.
[966] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('Synced pattern created: %s'), pattern.title.raw), {
[967] Fix | Delete
type: 'snackbar',
[968] Fix | Delete
id: 'convert-to-pattern-success'
[969] Fix | Delete
});
[970] Fix | Delete
setIsModalOpen(false);
[971] Fix | Delete
};
[972] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
[973] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
[974] Fix | Delete
icon: library_symbol,
[975] Fix | Delete
onClick: () => setIsModalOpen(true),
[976] Fix | Delete
"aria-expanded": isModalOpen,
[977] Fix | Delete
"aria-haspopup": "dialog",
[978] Fix | Delete
children: (0,external_wp_i18n_namespaceObject.__)('Create pattern')
[979] Fix | Delete
}), isModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreatePatternModal, {
[980] Fix | Delete
content: getContent,
[981] Fix | Delete
onSuccess: pattern => {
[982] Fix | Delete
handleSuccess(pattern);
[983] Fix | Delete
},
[984] Fix | Delete
onError: () => {
[985] Fix | Delete
setIsModalOpen(false);
[986] Fix | Delete
},
[987] Fix | Delete
onClose: () => {
[988] Fix | Delete
setIsModalOpen(false);
[989] Fix | Delete
}
[990] Fix | Delete
})]
[991] Fix | Delete
});
[992] Fix | Delete
}
[993] Fix | Delete
[994] Fix | Delete
;// CONCATENATED MODULE: external ["wp","url"]
[995] Fix | Delete
const external_wp_url_namespaceObject = window["wp"]["url"];
[996] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/patterns-manage-button.js
[997] Fix | Delete
/**
[998] Fix | Delete
* WordPress dependencies
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function