@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 4.68 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/template-part-menu-items/convert-to-regular.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\n\nexport default function ConvertToRegularBlocks( { clientId, onClose } ) {\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\n\tconst { canRemove, templatePartTitle } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canRemoveBlock, getBlock } = select( blockEditorStore );\n\t\t\tconst { getEntityRecord, getCurrentTheme } = select( coreStore );\n\n\t\t\tconst block = getBlock( clientId );\n\t\t\tconst { slug, theme } = block?.attributes ?? {};\n\t\t\tconst themeSlug = theme || getCurrentTheme()?.stylesheet;\n\t\t\tconst templatePartId =\n\t\t\t\tthemeSlug && slug ? `${ themeSlug }//${ slug }` : null;\n\t\t\tconst entity = templatePartId\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template_part',\n\t\t\t\t\t\ttemplatePartId\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\ttemplatePartTitle: entity?.title?.rendered\n\t\t\t\t\t? decodeEntities( entity.title.rendered )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! canRemove ) {\n\t\treturn null;\n\t}\n\n\tconst title = templatePartTitle\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: template part title, e.g. \"Header\" */\n\t\t\t\t__( 'Detach %s?' ),\n\t\t\t\ttemplatePartTitle\n\t\t )\n\t\t: __( 'Detach template part?' );\n\n\tconst message = templatePartTitle\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: template part title, e.g. \"Header\" */\n\t\t\t\t__(\n\t\t\t\t\t'The blocks will be separated from the original template part and will be fully editable. Future changes to the %s template part will not apply here.'\n\t\t\t\t),\n\t\t\t\ttemplatePartTitle\n\t\t )\n\t\t: __(\n\t\t\t\t'The blocks will be separated from the original template part and will be fully editable. Future changes to the template part will not apply here.'\n\t\t );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setShowConfirmDialog( true ) }>\n\t\t\t\t{ __( 'Detach' ) }\n\t\t\t</MenuItem>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ () => {\n\t\t\t\t\treplaceBlocks( clientId, getBlocks( clientId ) );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t\tconfirmButtonText={ __( 'Detach' ) }\n\t\t\t\tsize=\"medium\"\n\t\t\t\ttitle={ title }\n\t\t\t\t__experimentalHideHeader={ false }\n\t\t\t>\n\t\t\t\t{ message }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAuC;AACvC,0BAA0C;AAC1C,uBAAmC;AACnC,wBAGO;AACP,kBAA4B;AAC5B,2BAA+B;AAC/B,qBAAyB;AA6DvB;AA3Da,SAAR,uBAAyC,EAAE,UAAU,QAAQ,GAAI;AACvE,QAAM,CAAE,mBAAmB,oBAAqB,QAAI,yBAAU,KAAM;AAEpE,QAAM,EAAE,UAAU,QAAI,uBAAW,oBAAAA,KAAiB;AAClD,QAAM,EAAE,cAAc,QAAI,yBAAa,oBAAAA,KAAiB;AAExD,QAAM,EAAE,WAAW,kBAAkB,QAAI;AAAA,IACxC,CAAE,WAAY;AACb,YAAM,EAAE,gBAAgB,SAAS,IAAI,OAAQ,oBAAAA,KAAiB;AAC9D,YAAM,EAAE,iBAAiB,gBAAgB,IAAI,OAAQ,iBAAAC,KAAU;AAE/D,YAAM,QAAQ,SAAU,QAAS;AACjC,YAAM,EAAE,MAAM,MAAM,IAAI,OAAO,cAAc,CAAC;AAC9C,YAAM,YAAY,SAAS,gBAAgB,GAAG;AAC9C,YAAM,iBACL,aAAa,OAAO,GAAI,SAAU,KAAM,IAAK,KAAK;AACnD,YAAM,SAAS,iBACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,IACA;AAEH,aAAO;AAAA,QACN,WAAW,eAAgB,QAAS;AAAA,QACpC,mBAAmB,QAAQ,OAAO,eAC/B,qCAAgB,OAAO,MAAM,QAAS,IACtC;AAAA,MACJ;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,MAAK,CAAE,WAAY;AAClB,WAAO;AAAA,EACR;AAEA,QAAM,QAAQ,wBACX;AAAA;AAAA,QAEA,gBAAI,YAAa;AAAA,IACjB;AAAA,EACA,QACA,gBAAI,uBAAwB;AAE/B,QAAM,UAAU,wBACb;AAAA;AAAA,QAEA;AAAA,MACC;AAAA,IACD;AAAA,IACA;AAAA,EACA,QACA;AAAA,IACA;AAAA,EACA;AAEH,SACC,4EACC;AAAA,gDAAC,8BAAS,SAAU,MAAM,qBAAsB,IAAK,GAClD,8BAAI,QAAS,GAChB;AAAA,IACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,QAAS;AAAA,QACT,WAAY,MAAM;AACjB,wBAAe,UAAU,UAAW,QAAS,CAAE;AAC/C,kBAAQ;AAAA,QACT;AAAA,QACA,UAAW,MAAM,qBAAsB,KAAM;AAAA,QAC7C,uBAAoB,gBAAI,QAAS;AAAA,QACjC,MAAK;AAAA,QACL;AAAA,QACA,0BAA2B;AAAA,QAEzB;AAAA;AAAA,IACH;AAAA,KACD;AAEF;",
"names": ["blockEditorStore", "coreStore", "ConfirmDialog"]
}