@wordpress/edit-site 5.12.8 → 5.12.10
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.
- package/build/components/add-new-page/index.js +1 -6
- package/build/components/add-new-page/index.js.map +1 -1
- package/build/components/add-new-pattern/index.js +10 -2
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/block-editor/index.js +0 -4
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +12 -6
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/editor/index.js +10 -1
- package/build/components/editor/index.js.map +1 -1
- package/build/components/layout/index.js +25 -22
- package/build/components/layout/index.js.map +1 -1
- package/build/components/page-actions/index.js +2 -2
- package/build/components/page-actions/index.js.map +1 -1
- package/build/components/page-actions/{delete-page-menu-item.js → trash-page-menu-item.js} +8 -15
- package/build/components/page-actions/trash-page-menu-item.js.map +1 -0
- package/build/components/page-patterns/grid-item.js +1 -1
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/grid.js +72 -12
- package/build/components/page-patterns/grid.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +3 -4
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +12 -4
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-template-parts/add-new-template-part.js +74 -0
- package/build/components/page-template-parts/add-new-template-part.js.map +1 -0
- package/build/components/page-template-parts/index.js +2 -23
- package/build/components/page-template-parts/index.js.map +1 -1
- package/build/components/resizable-frame/index.js +75 -32
- package/build/components/resizable-frame/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-status.js +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +13 -7
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/template-part-hint.js +1 -1
- package/build/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +33 -25
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +13 -18
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +11 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/site-hub/index.js +3 -1
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +15 -12
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/components/add-new-page/index.js +1 -6
- package/build-module/components/add-new-page/index.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +8 -2
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/block-editor/index.js +0 -4
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +13 -7
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/editor/index.js +10 -1
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/layout/index.js +25 -22
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/page-actions/index.js +2 -2
- package/build-module/components/page-actions/index.js.map +1 -1
- package/build-module/components/page-actions/{delete-page-menu-item.js → trash-page-menu-item.js} +8 -16
- package/build-module/components/page-actions/trash-page-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/grid-item.js +1 -1
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/grid.js +75 -15
- package/build-module/components/page-patterns/grid.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +4 -5
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +12 -4
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-template-parts/add-new-template-part.js +58 -0
- package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -0
- package/build-module/components/page-template-parts/index.js +3 -22
- package/build-module/components/page-template-parts/index.js.map +1 -1
- package/build-module/components/resizable-frame/index.js +76 -35
- package/build-module/components/resizable-frame/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +14 -8
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js +1 -1
- package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +33 -25
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +13 -18
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/site-hub/index.js +3 -1
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +16 -12
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-style/style-rtl.css +53 -15
- package/build-style/style.css +53 -15
- package/package.json +21 -21
- package/src/components/add-new-page/index.js +0 -3
- package/src/components/add-new-pattern/index.js +8 -2
- package/src/components/block-editor/index.js +0 -4
- package/src/components/block-editor/use-site-editor-settings.js +16 -11
- package/src/components/editor/index.js +15 -1
- package/src/components/layout/index.js +38 -43
- package/src/components/layout/style.scss +1 -0
- package/src/components/page-actions/index.js +2 -2
- package/src/components/page-actions/{delete-page-menu-item.js → trash-page-menu-item.js} +9 -21
- package/src/components/page-patterns/grid-item.js +1 -1
- package/src/components/page-patterns/grid.js +101 -16
- package/src/components/page-patterns/patterns-list.js +15 -9
- package/src/components/page-patterns/style.scss +21 -1
- package/src/components/page-patterns/use-patterns.js +11 -5
- package/src/components/page-template-parts/add-new-template-part.js +57 -0
- package/src/components/page-template-parts/index.js +3 -22
- package/src/components/resizable-frame/index.js +100 -31
- package/src/components/resizable-frame/style.scss +26 -9
- package/src/components/sidebar-edit-mode/page-panels/page-status.js +1 -1
- package/src/components/sidebar-navigation-item/style.scss +10 -1
- package/src/components/sidebar-navigation-screen/index.js +13 -6
- package/src/components/sidebar-navigation-screen-main/template-part-hint.js +1 -3
- package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
- package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
- package/src/components/sidebar-navigation-screen-pages/index.js +39 -29
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +2 -1
- package/src/components/sidebar-navigation-screen-patterns/index.js +29 -30
- package/src/components/sidebar-navigation-screen-patterns/style.scss +5 -7
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +9 -0
- package/src/components/site-hub/index.js +5 -1
- package/src/components/site-hub/style.scss +5 -0
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +73 -66
- package/build/components/page-actions/delete-page-menu-item.js.map +0 -1
- package/build-module/components/page-actions/delete-page-menu-item.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-actions/trash-page-menu-item.js"],"names":["TrashPageMenuItem","postId","onRemove","createSuccessNotice","createErrorNotice","noticesStore","deleteEntityRecord","coreStore","page","select","getEntityRecord","removePage","throwOnError","title","rendered","type","id","error","errorMessage","message","code"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AARA;AACA;AACA;AAQe,SAASA,iBAAT,CAA4B;AAAEC,EAAAA,MAAF;AAAUC,EAAAA;AAAV,CAA5B,EAAmD;AACjE,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MACL,uBAAaC,cAAb,CADD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaC,eAAb,CAA/B;AACA,QAAMC,IAAI,GAAG,qBACVC,MAAF,IACCA,MAAM,CAAEF,eAAF,CAAN,CAAoBG,eAApB,CAAqC,UAArC,EAAiD,MAAjD,EAAyDT,MAAzD,CAFW,EAGZ,CAAEA,MAAF,CAHY,CAAb;;AAKA,iBAAeU,UAAf,GAA4B;AAC3B,QAAI;AACH,YAAML,kBAAkB,CACvB,UADuB,EAEvB,MAFuB,EAGvBL,MAHuB,EAIvB,EAJuB,EAKvB;AAAEW,QAAAA,YAAY,EAAE;AAAhB,OALuB,CAAxB;AAOAT,MAAAA,mBAAmB,CAClB;AACC;AACA,oBAAI,0BAAJ,CAFD,EAGC,kCAAgBK,IAAI,CAACK,KAAL,CAAWC,QAA3B,CAHD,CADkB,EAMlB;AACCC,QAAAA,IAAI,EAAE,UADP;AAECC,QAAAA,EAAE,EAAE;AAFL,OANkB,CAAnB;AAWAd,MAAAA,QAAQ;AACR,KApBD,CAoBE,OAAQe,KAAR,EAAgB;AACjB,YAAMC,YAAY,GACjBD,KAAK,CAACE,OAAN,IAAiBF,KAAK,CAACG,IAAN,KAAe,eAAhC,GACGH,KAAK,CAACE,OADT,GAEG,cACA,uDADA,CAHJ;AAOAf,MAAAA,iBAAiB,CAAEc,YAAF,EAAgB;AAAEH,QAAAA,IAAI,EAAE;AAAR,OAAhB,CAAjB;AACA;AACD;;AACD,SACC,qDACC,4BAAC,oBAAD;AAAU,IAAA,OAAO,EAAG,MAAMJ,UAAU,EAApC;AAAyC,IAAA,aAAa;AAAtD,KACG,cAAI,eAAJ,CADH,CADD,CADD;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function TrashPageMenuItem( { postId, onRemove } ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\tconst page = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord( 'postType', 'page', postId ),\n\t\t[ postId ]\n\t);\n\tasync function removePage() {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'page',\n\t\t\t\tpostId,\n\t\t\t\t{},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t__( '\"%s\" moved to the Trash.' ),\n\t\t\t\t\tdecodeEntities( page.title.rendered )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t}\n\t\t\t);\n\t\t\tonRemove?.();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => removePage() } isDestructive>\n\t\t\t\t{ __( 'Move to Trash' ) }\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -153,7 +153,7 @@ function GridItem({
|
|
|
153
153
|
justify: "left",
|
|
154
154
|
spacing: 3,
|
|
155
155
|
className: "edit-site-patterns__pattern-title"
|
|
156
|
-
}, itemIcon && (0, _element.createElement)(_components.Tooltip, {
|
|
156
|
+
}, itemIcon && !isNonUserPattern && (0, _element.createElement)(_components.Tooltip, {
|
|
157
157
|
position: "top center",
|
|
158
158
|
text: (0, _i18n.__)('Editing this pattern will also update anywhere it is used')
|
|
159
159
|
}, (0, _element.createElement)("span", null, (0, _element.createElement)(_icons.Icon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"names":["templatePartIcons","header","footer","uncategorized","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","removeTemplate","editSiteStore","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","isUserPattern","type","USER_PATTERNS","isNonUserPattern","PATTERNS","isTemplatePart","TEMPLATE_PARTS","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","syncStatus","SYNC_TYPES","full","symbol","undefined","confirmButtonText","confirmPrompt","map","_","index","join","ariaDescription","lockSmall","moreHorizontal","placement","className","isSmall","describedBy","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BlockPreview } from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreHorizontal,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport { PATTERNS, TEMPLATE_PARTS, USER_PATTERNS, SYNC_TYPES } from './utils';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === USER_PATTERNS;\n\tconst isNonUserPattern = item.type === PATTERNS;\n\tconst isTemplatePart = item.type === TEMPLATE_PARTS;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push( __( 'Theme patterns cannot be edited.' ) );\n\t}\n\n\tconst itemIcon =\n\t\ttemplatePartIcons[ categoryId ] ||\n\t\t( item.syncStatus === SYNC_TYPES.full ? symbol : undefined );\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title\n\t\t );\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={ item.type !== PATTERNS ? onClick : undefined }\n\t\t\t\taria-disabled={ item.type !== PATTERNS ? 'false' : 'true' }\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERNS ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERNS && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t\t'Theme patterns cannot be edited.'\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<span className=\"edit-site-patterns__pattern-lock-icon\">\n\t\t\t\t\t\t\t\t\t<Icon icon={ lockSmall } size={ 24 } />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreHorizontal }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\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<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisNonUserPattern\n\t\t\t\t\t\t\t\t\t\t? __( 'Copy to My patterns' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Duplicate' )\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{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\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</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"names":["templatePartIcons","header","footer","uncategorized","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","removeTemplate","editSiteStore","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","isUserPattern","type","USER_PATTERNS","isNonUserPattern","PATTERNS","isTemplatePart","TEMPLATE_PARTS","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","syncStatus","SYNC_TYPES","full","symbol","undefined","confirmButtonText","confirmPrompt","map","_","index","join","ariaDescription","lockSmall","moreHorizontal","placement","className","isSmall","describedBy","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BlockPreview } from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreHorizontal,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport { PATTERNS, TEMPLATE_PARTS, USER_PATTERNS, SYNC_TYPES } from './utils';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === USER_PATTERNS;\n\tconst isNonUserPattern = item.type === PATTERNS;\n\tconst isTemplatePart = item.type === TEMPLATE_PARTS;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push( __( 'Theme patterns cannot be edited.' ) );\n\t}\n\n\tconst itemIcon =\n\t\ttemplatePartIcons[ categoryId ] ||\n\t\t( item.syncStatus === SYNC_TYPES.full ? symbol : undefined );\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title\n\t\t );\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={ item.type !== PATTERNS ? onClick : undefined }\n\t\t\t\taria-disabled={ item.type !== PATTERNS ? 'false' : 'true' }\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERNS ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERNS && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t\t'Theme patterns cannot be edited.'\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<span className=\"edit-site-patterns__pattern-lock-icon\">\n\t\t\t\t\t\t\t\t\t<Icon icon={ lockSmall } size={ 24 } />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreHorizontal }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\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<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisNonUserPattern\n\t\t\t\t\t\t\t\t\t\t? __( 'Copy to My patterns' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Duplicate' )\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{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\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</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"]}
|
|
@@ -13,6 +13,8 @@ var _components = require("@wordpress/components");
|
|
|
13
13
|
|
|
14
14
|
var _i18n = require("@wordpress/i18n");
|
|
15
15
|
|
|
16
|
+
var _compose = require("@wordpress/compose");
|
|
17
|
+
|
|
16
18
|
var _gridItem = _interopRequireDefault(require("./grid-item"));
|
|
17
19
|
|
|
18
20
|
/**
|
|
@@ -22,36 +24,94 @@ var _gridItem = _interopRequireDefault(require("./grid-item"));
|
|
|
22
24
|
/**
|
|
23
25
|
* Internal dependencies
|
|
24
26
|
*/
|
|
25
|
-
const PAGE_SIZE =
|
|
27
|
+
const PAGE_SIZE = 20;
|
|
28
|
+
|
|
29
|
+
function Pagination({
|
|
30
|
+
currentPage,
|
|
31
|
+
numPages,
|
|
32
|
+
changePage,
|
|
33
|
+
totalItems
|
|
34
|
+
}) {
|
|
35
|
+
return (0, _element.createElement)(_components.__experimentalHStack, {
|
|
36
|
+
expanded: false,
|
|
37
|
+
spacing: 3,
|
|
38
|
+
className: "edit-site-patterns__grid-pagination"
|
|
39
|
+
}, (0, _element.createElement)(_components.__experimentalText, {
|
|
40
|
+
variant: "muted"
|
|
41
|
+
}, // translators: %s: Total number of patterns.
|
|
42
|
+
(0, _i18n.sprintf)( // translators: %s: Total number of patterns.
|
|
43
|
+
(0, _i18n._n)('%s item', '%s items', totalItems), totalItems)), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
44
|
+
expanded: false,
|
|
45
|
+
spacing: 1
|
|
46
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
47
|
+
variant: "tertiary",
|
|
48
|
+
onClick: () => changePage(1),
|
|
49
|
+
disabled: currentPage === 1,
|
|
50
|
+
"aria-label": (0, _i18n.__)('First page')
|
|
51
|
+
}, "\xAB"), (0, _element.createElement)(_components.Button, {
|
|
52
|
+
variant: "tertiary",
|
|
53
|
+
onClick: () => changePage(currentPage - 1),
|
|
54
|
+
disabled: currentPage === 1,
|
|
55
|
+
"aria-label": (0, _i18n.__)('Previous page')
|
|
56
|
+
}, "\u2039")), (0, _element.createElement)(_components.__experimentalText, {
|
|
57
|
+
variant: "muted"
|
|
58
|
+
}, (0, _i18n.sprintf)( // translators: %1$s: Current page number, %2$s: Total number of pages.
|
|
59
|
+
(0, _i18n._x)('%1$s of %2$s', 'paging'), currentPage, numPages)), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
60
|
+
expanded: false,
|
|
61
|
+
spacing: 1
|
|
62
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
63
|
+
variant: "tertiary",
|
|
64
|
+
onClick: () => changePage(currentPage + 1),
|
|
65
|
+
disabled: currentPage === numPages,
|
|
66
|
+
"aria-label": (0, _i18n.__)('Next page')
|
|
67
|
+
}, "\u203A"), (0, _element.createElement)(_components.Button, {
|
|
68
|
+
variant: "tertiary",
|
|
69
|
+
onClick: () => changePage(numPages),
|
|
70
|
+
disabled: currentPage === numPages,
|
|
71
|
+
"aria-label": (0, _i18n.__)('Last page')
|
|
72
|
+
}, "\xBB")));
|
|
73
|
+
}
|
|
26
74
|
|
|
27
75
|
function Grid({
|
|
28
76
|
categoryId,
|
|
29
77
|
items,
|
|
30
78
|
...props
|
|
31
79
|
}) {
|
|
80
|
+
const [currentPage, setCurrentPage] = (0, _element.useState)(1);
|
|
32
81
|
const gridRef = (0, _element.useRef)();
|
|
82
|
+
const totalItems = items.length;
|
|
83
|
+
const pageIndex = currentPage - 1;
|
|
84
|
+
const list = (0, _element.useMemo)(() => items.slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE), [pageIndex, items]);
|
|
85
|
+
const asyncList = (0, _compose.useAsyncList)(list, {
|
|
86
|
+
step: 10
|
|
87
|
+
});
|
|
33
88
|
|
|
34
|
-
if (!
|
|
89
|
+
if (!list?.length) {
|
|
35
90
|
return null;
|
|
36
91
|
}
|
|
37
92
|
|
|
38
|
-
const
|
|
39
|
-
|
|
93
|
+
const numPages = Math.ceil(items.length / PAGE_SIZE);
|
|
94
|
+
|
|
95
|
+
const changePage = page => {
|
|
96
|
+
const scrollContainer = document.querySelector('.edit-site-patterns');
|
|
97
|
+
scrollContainer?.scrollTo(0, 0);
|
|
98
|
+
setCurrentPage(page);
|
|
99
|
+
};
|
|
100
|
+
|
|
40
101
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("ul", {
|
|
41
102
|
role: "listbox",
|
|
42
103
|
className: "edit-site-patterns__grid",
|
|
43
104
|
...props,
|
|
44
105
|
ref: gridRef
|
|
45
|
-
},
|
|
106
|
+
}, asyncList.map(item => (0, _element.createElement)(_gridItem.default, {
|
|
46
107
|
key: item.name,
|
|
47
108
|
item: item,
|
|
48
109
|
categoryId: categoryId
|
|
49
|
-
}))),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
(0, _i18n.__)('+ %d more patterns discoverable by searching'), restLength)));
|
|
110
|
+
}))), numPages > 1 && (0, _element.createElement)(Pagination, {
|
|
111
|
+
currentPage,
|
|
112
|
+
numPages,
|
|
113
|
+
changePage,
|
|
114
|
+
totalItems
|
|
115
|
+
}));
|
|
56
116
|
}
|
|
57
117
|
//# sourceMappingURL=grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"names":["PAGE_SIZE","Grid","categoryId","items","props","gridRef","length","list","slice","
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"names":["PAGE_SIZE","Pagination","currentPage","numPages","changePage","totalItems","Grid","categoryId","items","props","setCurrentPage","gridRef","length","pageIndex","list","slice","asyncList","step","Math","ceil","page","scrollContainer","document","querySelector","scrollTo","map","item","name"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { useRef, useState, useMemo } from '@wordpress/element';\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport GridItem from './grid-item';\n\nconst PAGE_SIZE = 20;\n\nfunction Pagination( { currentPage, numPages, changePage, totalItems } ) {\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tspacing={ 3 }\n\t\t\tclassName=\"edit-site-patterns__grid-pagination\"\n\t\t>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( 1 ) }\n\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\taria-label={ __( 'First page' ) }\n\t\t\t\t>\n\t\t\t\t\t«\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( currentPage - 1 ) }\n\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\taria-label={ __( 'Previous page' ) }\n\t\t\t\t>\n\t\t\t\t\t‹\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t_x( '%1$s of %2$s', 'paging' ),\n\t\t\t\t\tcurrentPage,\n\t\t\t\t\tnumPages\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( currentPage + 1 ) }\n\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\taria-label={ __( 'Next page' ) }\n\t\t\t\t>\n\t\t\t\t\t›\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( numPages ) }\n\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\taria-label={ __( 'Last page' ) }\n\t\t\t\t>\n\t\t\t\t\t»\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nexport default function Grid( { categoryId, items, ...props } ) {\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\tconst gridRef = useRef();\n\tconst totalItems = items.length;\n\tconst pageIndex = currentPage - 1;\n\n\tconst list = useMemo(\n\t\t() =>\n\t\t\titems.slice(\n\t\t\t\tpageIndex * PAGE_SIZE,\n\t\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t\t),\n\t\t[ pageIndex, items ]\n\t);\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tif ( ! list?.length ) {\n\t\treturn null;\n\t}\n\n\tconst numPages = Math.ceil( items.length / PAGE_SIZE );\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName=\"edit-site-patterns__grid\"\n\t\t\t\t{ ...props }\n\t\t\t\tref={ gridRef }\n\t\t\t>\n\t\t\t\t{ asyncList.map( ( item ) => (\n\t\t\t\t\t<GridItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\t{ ...{ currentPage, numPages, changePage, totalItems } }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -71,7 +71,7 @@ function PatternsList({
|
|
|
71
71
|
const {
|
|
72
72
|
patterns,
|
|
73
73
|
isResolving
|
|
74
|
-
} = (0, _usePatterns.default)(type, categoryId, {
|
|
74
|
+
} = (0, _usePatterns.default)(type, categoryId !== 'uncategorized' ? categoryId : '', {
|
|
75
75
|
search: deferredFilterValue,
|
|
76
76
|
syncStatus: deferredSyncedFilter === 'all' ? undefined : deferredSyncedFilter
|
|
77
77
|
});
|
|
@@ -81,7 +81,6 @@ function PatternsList({
|
|
|
81
81
|
const hasPatterns = patterns.length;
|
|
82
82
|
const title = SYNC_FILTERS[syncFilter];
|
|
83
83
|
const description = SYNC_DESCRIPTIONS[syncFilter];
|
|
84
|
-
const shownPatterns = (0, _compose.useAsyncList)(patterns);
|
|
85
84
|
return (0, _element.createElement)(_components.__experimentalVStack, {
|
|
86
85
|
spacing: 6
|
|
87
86
|
}, (0, _element.createElement)(_header.default, {
|
|
@@ -132,7 +131,7 @@ function PatternsList({
|
|
|
132
131
|
className: "edit-site-patterns__section-header"
|
|
133
132
|
}, (0, _element.createElement)(_components.__experimentalHeading, {
|
|
134
133
|
as: "h3",
|
|
135
|
-
level:
|
|
134
|
+
level: 5,
|
|
136
135
|
id: titleId
|
|
137
136
|
}, title), description ? (0, _element.createElement)(_components.__experimentalText, {
|
|
138
137
|
variant: "muted",
|
|
@@ -140,7 +139,7 @@ function PatternsList({
|
|
|
140
139
|
id: descriptionId
|
|
141
140
|
}, description) : null), hasPatterns && (0, _element.createElement)(_grid.default, {
|
|
142
141
|
categoryId: categoryId,
|
|
143
|
-
items:
|
|
142
|
+
items: patterns,
|
|
144
143
|
"aria-labelledby": titleId,
|
|
145
144
|
"aria-describedby": descriptionId
|
|
146
145
|
}), !isResolving && !hasPatterns && (0, _element.createElement)(_noPatterns.default, null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"names":["useLocation","useHistory","routerPrivateApis","SYNC_FILTERS","all","SYNC_TYPES","full","unsynced","SYNC_DESCRIPTIONS","PatternsList","categoryId","type","location","history","isMobileViewport","filterValue","setFilterValue","delayedFilterValue","deferredFilterValue","syncFilter","setSyncFilter","deferredSyncedFilter","patterns","isResolving","search","syncStatus","undefined","id","titleId","descriptionId","hasPatterns","length","title","description","
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"names":["useLocation","useHistory","routerPrivateApis","SYNC_FILTERS","all","SYNC_TYPES","full","unsynced","SYNC_DESCRIPTIONS","PatternsList","categoryId","type","location","history","isMobileViewport","filterValue","setFilterValue","delayedFilterValue","deferredFilterValue","syncFilter","setSyncFilter","deferredSyncedFilter","patterns","isResolving","search","syncStatus","undefined","id","titleId","descriptionId","hasPatterns","length","title","description","chevronRight","chevronLeft","state","backPath","back","push","path","value","USER_PATTERN_CATEGORY","Object","entries","map","key","label"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId } from '@wordpress/element';\nimport {\n\tSearchControl,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PatternsHeader from './header';\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport useDebouncedInput from '../../utils/use-debounced-input';\nimport { unlock } from '../../lock-unlock';\nimport { SYNC_TYPES, USER_PATTERN_CATEGORY } from './utils';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: __( 'All' ),\n\t[ SYNC_TYPES.full ]: __( 'Synced' ),\n\t[ SYNC_TYPES.unsynced ]: __( 'Standard' ),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\n\nexport default function PatternsList( { categoryId, type } ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( '' );\n\tconst deferredFilterValue = useDeferredValue( delayedFilterValue );\n\n\tconst [ syncFilter, setSyncFilter ] = useState( 'all' );\n\tconst deferredSyncedFilter = useDeferredValue( syncFilter );\n\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tcategoryId !== 'uncategorized' ? categoryId : '',\n\t\t{\n\t\t\tsearch: deferredFilterValue,\n\t\t\tsyncStatus:\n\t\t\t\tdeferredSyncedFilter === 'all'\n\t\t\t\t\t? undefined\n\t\t\t\t\t: deferredSyncedFilter,\n\t\t}\n\t);\n\n\tconst id = useId();\n\tconst titleId = `${ id }-title`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst hasPatterns = patterns.length;\n\tconst title = SYNC_FILTERS[ syncFilter ];\n\tconst description = SYNC_DESCRIPTIONS[ syncFilter ];\n\n\treturn (\n\t\t<VStack spacing={ 6 }>\n\t\t\t<PatternsHeader\n\t\t\t\tcategoryId={ categoryId }\n\t\t\t\ttype={ type }\n\t\t\t\ttitleId={ titleId }\n\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t/>\n\n\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Go back in history if we came from the Patterns page.\n\t\t\t\t\t\t\t// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\tif ( location.state?.backPath === '/patterns' ) {\n\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\tonChange={ ( value ) => setFilterValue( value ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t{ categoryId === USER_PATTERN_CATEGORY && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tonChange={ ( value ) => setSyncFilter( value ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter-option\"\n\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : null }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t{ hasPatterns && (\n\t\t\t\t<Grid\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\titems={ patterns }\n\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t</VStack>\n\t);\n}\n"]}
|
|
@@ -90,10 +90,18 @@ const selectThemePatterns = (select, {
|
|
|
90
90
|
type: 'pattern',
|
|
91
91
|
blocks: (0, _blocks.parse)(pattern.content)
|
|
92
92
|
}));
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
|
|
94
|
+
if (categoryId) {
|
|
95
|
+
patterns = (0, _searchItems.searchItems)(patterns, search, {
|
|
96
|
+
categoryId,
|
|
97
|
+
hasCategory: (item, currentCategory) => item.categories?.includes(currentCategory)
|
|
98
|
+
});
|
|
99
|
+
} else {
|
|
100
|
+
patterns = (0, _searchItems.searchItems)(patterns, search, {
|
|
101
|
+
hasCategory: item => !item.hasOwnProperty('categories')
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
97
105
|
return {
|
|
98
106
|
patterns,
|
|
99
107
|
isResolving: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"names":["EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","content","raw","categories","area","description","isCustom","source","keywords","id","name","title","rendered","type","templatePartHasCategory","item","category","selectTemplatePartsAsPatterns","select","categoryId","search","getEntityRecords","getIsResolving","coreStore","query","per_page","rawTemplateParts","TEMPLATE_PARTS","templateParts","map","isResolving","patterns","hasCategory","selectThemePatterns","getSettings","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","CORE_PATTERN_SOURCES","includes","filterOutDuplicatesByName","currentCategory","reusableBlockToPattern","reusableBlock","wp_pattern","syncStatus","wp_pattern_sync_status","SYNC_TYPES","full","selectUserPatterns","records","USER_PATTERNS","record","usePatterns","categoryType","PATTERNS"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tCORE_PATTERN_SOURCES,\n\tPATTERNS,\n\tSYNC_TYPES,\n\tTEMPLATE_PARTS,\n\tUSER_PATTERNS,\n\tfilterOutDuplicatesByName,\n} from './utils';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === 'custom',\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst templatePartHasCategory = ( item, category ) =>\n\titem.templatePart.area === category;\n\nconst selectTemplatePartsAsPatterns = (\n\tselect,\n\t{ categoryId, search = '' } = {}\n) => {\n\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\tconst query = { per_page: -1 };\n\tconst rawTemplateParts =\n\t\tgetEntityRecords( 'postType', TEMPLATE_PARTS, query ) ??\n\t\tEMPTY_PATTERN_LIST;\n\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\ttemplatePartToPattern( templatePart )\n\t);\n\n\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t'postType',\n\t\t'wp_template_part',\n\t\tquery,\n\t] );\n\n\tconst patterns = searchItems( templateParts, search, {\n\t\tcategoryId,\n\t\thasCategory: templatePartHasCategory,\n\t} );\n\n\treturn { patterns, isResolving };\n};\n\nconst selectThemePatterns = ( select, { categoryId, search = '' } = {} ) => {\n\tconst { getSettings } = unlock( select( editSiteStore ) );\n\tconst settings = getSettings();\n\tconst blockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\tsettings.__experimentalBlockPatterns;\n\n\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\tlet patterns = [\n\t\t...( blockPatterns || [] ),\n\t\t...( restBlockPatterns || [] ),\n\t]\n\t\t.filter(\n\t\t\t( pattern ) => ! CORE_PATTERN_SOURCES.includes( pattern.source )\n\t\t)\n\t\t.filter( filterOutDuplicatesByName )\n\t\t.map( ( pattern ) => ( {\n\t\t\t...pattern,\n\t\t\tkeywords: pattern.keywords || [],\n\t\t\ttype: 'pattern',\n\t\t\tblocks: parse( pattern.content ),\n\t\t} ) );\n\n\tpatterns = searchItems( patterns, search, {\n\t\tcategoryId,\n\t\thasCategory: ( item, currentCategory ) =>\n\t\t\titem.categories?.includes( currentCategory ),\n\t} );\n\n\treturn { patterns, isResolving: false };\n};\n\nconst reusableBlockToPattern = ( reusableBlock ) => ( {\n\tblocks: parse( reusableBlock.content.raw ),\n\tcategories: reusableBlock.wp_pattern,\n\tid: reusableBlock.id,\n\tname: reusableBlock.slug,\n\tsyncStatus: reusableBlock.wp_pattern_sync_status || SYNC_TYPES.full,\n\ttitle: reusableBlock.title.raw,\n\ttype: reusableBlock.type,\n\treusableBlock,\n} );\n\nconst selectUserPatterns = ( select, { search = '', syncStatus } = {} ) => {\n\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\n\tconst query = { per_page: -1 };\n\tconst records = getEntityRecords( 'postType', USER_PATTERNS, query );\n\n\tlet patterns = records\n\t\t? records.map( ( record ) => reusableBlockToPattern( record ) )\n\t\t: EMPTY_PATTERN_LIST;\n\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t'postType',\n\t\tUSER_PATTERNS,\n\t\tquery,\n\t] );\n\n\tif ( syncStatus ) {\n\t\tpatterns = patterns.filter(\n\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t);\n\t}\n\n\tpatterns = searchItems( patterns, search, {\n\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t// catch-all category for user created patterns, so it has\n\t\t// to be in the category.\n\t\thasCategory: () => true,\n\t} );\n\n\treturn { patterns, isResolving };\n};\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus }\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PARTS ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns( select, {\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch,\n\t\t\t\t} );\n\t\t\t} else if ( categoryType === PATTERNS ) {\n\t\t\t\treturn selectThemePatterns( select, { categoryId, search } );\n\t\t\t} else if ( categoryType === USER_PATTERNS ) {\n\t\t\t\treturn selectUserPatterns( select, { search, syncStatus } );\n\t\t\t}\n\t\t\treturn { patterns: EMPTY_PATTERN_LIST, isResolving: false };\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"names":["EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","content","raw","categories","area","description","isCustom","source","keywords","id","name","title","rendered","type","templatePartHasCategory","item","category","selectTemplatePartsAsPatterns","select","categoryId","search","getEntityRecords","getIsResolving","coreStore","query","per_page","rawTemplateParts","TEMPLATE_PARTS","templateParts","map","isResolving","patterns","hasCategory","selectThemePatterns","getSettings","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","CORE_PATTERN_SOURCES","includes","filterOutDuplicatesByName","currentCategory","hasOwnProperty","reusableBlockToPattern","reusableBlock","wp_pattern","syncStatus","wp_pattern_sync_status","SYNC_TYPES","full","selectUserPatterns","records","USER_PATTERNS","record","usePatterns","categoryType","PATTERNS"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tCORE_PATTERN_SOURCES,\n\tPATTERNS,\n\tSYNC_TYPES,\n\tTEMPLATE_PARTS,\n\tUSER_PATTERNS,\n\tfilterOutDuplicatesByName,\n} from './utils';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === 'custom',\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst templatePartHasCategory = ( item, category ) =>\n\titem.templatePart.area === category;\n\nconst selectTemplatePartsAsPatterns = (\n\tselect,\n\t{ categoryId, search = '' } = {}\n) => {\n\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\tconst query = { per_page: -1 };\n\tconst rawTemplateParts =\n\t\tgetEntityRecords( 'postType', TEMPLATE_PARTS, query ) ??\n\t\tEMPTY_PATTERN_LIST;\n\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\ttemplatePartToPattern( templatePart )\n\t);\n\n\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t'postType',\n\t\t'wp_template_part',\n\t\tquery,\n\t] );\n\n\tconst patterns = searchItems( templateParts, search, {\n\t\tcategoryId,\n\t\thasCategory: templatePartHasCategory,\n\t} );\n\n\treturn { patterns, isResolving };\n};\n\nconst selectThemePatterns = ( select, { categoryId, search = '' } = {} ) => {\n\tconst { getSettings } = unlock( select( editSiteStore ) );\n\tconst settings = getSettings();\n\tconst blockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\tsettings.__experimentalBlockPatterns;\n\n\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\tlet patterns = [\n\t\t...( blockPatterns || [] ),\n\t\t...( restBlockPatterns || [] ),\n\t]\n\t\t.filter(\n\t\t\t( pattern ) => ! CORE_PATTERN_SOURCES.includes( pattern.source )\n\t\t)\n\t\t.filter( filterOutDuplicatesByName )\n\t\t.map( ( pattern ) => ( {\n\t\t\t...pattern,\n\t\t\tkeywords: pattern.keywords || [],\n\t\t\ttype: 'pattern',\n\t\t\tblocks: parse( pattern.content ),\n\t\t} ) );\n\n\tif ( categoryId ) {\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\tcategoryId,\n\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t} );\n\t} else {\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\thasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),\n\t\t} );\n\t}\n\n\treturn { patterns, isResolving: false };\n};\n\nconst reusableBlockToPattern = ( reusableBlock ) => ( {\n\tblocks: parse( reusableBlock.content.raw ),\n\tcategories: reusableBlock.wp_pattern,\n\tid: reusableBlock.id,\n\tname: reusableBlock.slug,\n\tsyncStatus: reusableBlock.wp_pattern_sync_status || SYNC_TYPES.full,\n\ttitle: reusableBlock.title.raw,\n\ttype: reusableBlock.type,\n\treusableBlock,\n} );\n\nconst selectUserPatterns = ( select, { search = '', syncStatus } = {} ) => {\n\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\n\tconst query = { per_page: -1 };\n\tconst records = getEntityRecords( 'postType', USER_PATTERNS, query );\n\n\tlet patterns = records\n\t\t? records.map( ( record ) => reusableBlockToPattern( record ) )\n\t\t: EMPTY_PATTERN_LIST;\n\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t'postType',\n\t\tUSER_PATTERNS,\n\t\tquery,\n\t] );\n\n\tif ( syncStatus ) {\n\t\tpatterns = patterns.filter(\n\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t);\n\t}\n\n\tpatterns = searchItems( patterns, search, {\n\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t// catch-all category for user created patterns, so it has\n\t\t// to be in the category.\n\t\thasCategory: () => true,\n\t} );\n\n\treturn { patterns, isResolving };\n};\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus }\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PARTS ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns( select, {\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch,\n\t\t\t\t} );\n\t\t\t} else if ( categoryType === PATTERNS ) {\n\t\t\t\treturn selectThemePatterns( select, { categoryId, search } );\n\t\t\t} else if ( categoryType === USER_PATTERNS ) {\n\t\t\t\treturn selectUserPatterns( select, { search, syncStatus } );\n\t\t\t}\n\t\t\treturn { patterns: EMPTY_PATTERN_LIST, isResolving: false };\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = AddNewTemplatePart;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _router = require("@wordpress/router");
|
|
13
|
+
|
|
14
|
+
var _data = require("@wordpress/data");
|
|
15
|
+
|
|
16
|
+
var _coreData = require("@wordpress/core-data");
|
|
17
|
+
|
|
18
|
+
var _components = require("@wordpress/components");
|
|
19
|
+
|
|
20
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
21
|
+
|
|
22
|
+
var _store = require("../../store");
|
|
23
|
+
|
|
24
|
+
var _createTemplatePartModal = _interopRequireDefault(require("../create-template-part-modal"));
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* WordPress dependencies
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Internal dependencies
|
|
32
|
+
*/
|
|
33
|
+
const {
|
|
34
|
+
useHistory
|
|
35
|
+
} = (0, _lockUnlock.unlock)(_router.privateApis);
|
|
36
|
+
|
|
37
|
+
function AddNewTemplatePart() {
|
|
38
|
+
const {
|
|
39
|
+
canCreate,
|
|
40
|
+
postType
|
|
41
|
+
} = (0, _data.useSelect)(select => {
|
|
42
|
+
const {
|
|
43
|
+
supportsTemplatePartsMode
|
|
44
|
+
} = select(_store.store).getSettings();
|
|
45
|
+
return {
|
|
46
|
+
canCreate: !supportsTemplatePartsMode,
|
|
47
|
+
postType: select(_coreData.store).getPostType('wp_template_part')
|
|
48
|
+
};
|
|
49
|
+
}, []);
|
|
50
|
+
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
51
|
+
const history = useHistory();
|
|
52
|
+
|
|
53
|
+
if (!canCreate || !postType) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.Button, {
|
|
58
|
+
variant: "primary",
|
|
59
|
+
onClick: () => setIsModalOpen(true)
|
|
60
|
+
}, postType.labels.add_new_item), isModalOpen && (0, _element.createElement)(_createTemplatePartModal.default, {
|
|
61
|
+
closeModal: () => setIsModalOpen(false),
|
|
62
|
+
blocks: [],
|
|
63
|
+
onCreate: templatePart => {
|
|
64
|
+
setIsModalOpen(false);
|
|
65
|
+
history.push({
|
|
66
|
+
postId: templatePart.id,
|
|
67
|
+
postType: 'wp_template_part',
|
|
68
|
+
canvas: 'edit'
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
onError: () => setIsModalOpen(false)
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=add-new-template-part.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-template-parts/add-new-template-part.js"],"names":["useHistory","routerPrivateApis","AddNewTemplatePart","canCreate","postType","select","supportsTemplatePartsMode","editSiteStore","getSettings","coreStore","getPostType","isModalOpen","setIsModalOpen","history","labels","add_new_item","templatePart","push","postId","id","canvas"],"mappings":";;;;;;;;;AAMA;;AAHA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;AACA;;AAdA;AACA;AACA;;AAOA;AACA;AACA;AAKA,MAAM;AAAEA,EAAAA;AAAF,IAAiB,wBAAQC,mBAAR,CAAvB;;AAEe,SAASC,kBAAT,GAA8B;AAC5C,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0B,qBAAaC,MAAF,IAAc;AACxD,UAAM;AAAEC,MAAAA;AAAF,QACLD,MAAM,CAAEE,YAAF,CAAN,CAAwBC,WAAxB,EADD;AAEA,WAAO;AACNL,MAAAA,SAAS,EAAE,CAAEG,yBADP;AAENF,MAAAA,QAAQ,EAAEC,MAAM,CAAEI,eAAF,CAAN,CAAoBC,WAApB,CAAiC,kBAAjC;AAFJ,KAAP;AAIA,GAP+B,EAO7B,EAP6B,CAAhC;AAQA,QAAM,CAAEC,WAAF,EAAeC,cAAf,IAAkC,uBAAU,KAAV,CAAxC;AACA,QAAMC,OAAO,GAAGb,UAAU,EAA1B;;AAEA,MAAK,CAAEG,SAAF,IAAe,CAAEC,QAAtB,EAAiC;AAChC,WAAO,IAAP;AACA;;AAED,SACC,qDACC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,OAAO,EAAG,MAAMQ,cAAc,CAAE,IAAF;AAAxD,KACGR,QAAQ,CAACU,MAAT,CAAgBC,YADnB,CADD,EAIGJ,WAAW,IACZ,4BAAC,gCAAD;AACC,IAAA,UAAU,EAAG,MAAMC,cAAc,CAAE,KAAF,CADlC;AAEC,IAAA,MAAM,EAAG,EAFV;AAGC,IAAA,QAAQ,EAAKI,YAAF,IAAoB;AAC9BJ,MAAAA,cAAc,CAAE,KAAF,CAAd;AACAC,MAAAA,OAAO,CAACI,IAAR,CAAc;AACbC,QAAAA,MAAM,EAAEF,YAAY,CAACG,EADR;AAEbf,QAAAA,QAAQ,EAAE,kBAFG;AAGbgB,QAAAA,MAAM,EAAE;AAHK,OAAd;AAKA,KAVF;AAWC,IAAA,OAAO,EAAG,MAAMR,cAAc,CAAE,KAAF;AAX/B,IALF,CADD;AAsBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport CreateTemplatePartModal from '../create-template-part-modal';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function AddNewTemplatePart() {\n\tconst { canCreate, postType } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t\tpostType: select( coreStore ).getPostType( 'wp_template_part' ),\n\t\t};\n\t}, [] );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tif ( ! canCreate || ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button variant=\"primary\" onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ ( templatePart ) => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -13,8 +13,6 @@ var _components = require("@wordpress/components");
|
|
|
13
13
|
|
|
14
14
|
var _i18n = require("@wordpress/i18n");
|
|
15
15
|
|
|
16
|
-
var _data = require("@wordpress/data");
|
|
17
|
-
|
|
18
16
|
var _coreData = require("@wordpress/core-data");
|
|
19
17
|
|
|
20
18
|
var _htmlEntities = require("@wordpress/html-entities");
|
|
@@ -29,9 +27,7 @@ var _addedBy = _interopRequireDefault(require("../list/added-by"));
|
|
|
29
27
|
|
|
30
28
|
var _templateActions = _interopRequireDefault(require("../template-actions"));
|
|
31
29
|
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var _store = require("../../store");
|
|
30
|
+
var _addNewTemplatePart = _interopRequireDefault(require("./add-new-template-part"));
|
|
35
31
|
|
|
36
32
|
/**
|
|
37
33
|
* WordPress dependencies
|
|
@@ -46,17 +42,6 @@ function PageTemplateParts() {
|
|
|
46
42
|
} = (0, _coreData.useEntityRecords)('postType', 'wp_template_part', {
|
|
47
43
|
per_page: -1
|
|
48
44
|
});
|
|
49
|
-
const {
|
|
50
|
-
canCreate
|
|
51
|
-
} = (0, _data.useSelect)(select => {
|
|
52
|
-
const {
|
|
53
|
-
supportsTemplatePartsMode
|
|
54
|
-
} = select(_store.store).getSettings();
|
|
55
|
-
return {
|
|
56
|
-
postType: select(_coreData.store).getPostType('wp_template_part'),
|
|
57
|
-
canCreate: !supportsTemplatePartsMode
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
45
|
const columns = [{
|
|
61
46
|
header: (0, _i18n.__)('Template Part'),
|
|
62
47
|
cell: templatePart => (0, _element.createElement)(_components.__experimentalVStack, null, (0, _element.createElement)(_components.__experimentalHeading, {
|
|
@@ -88,13 +73,7 @@ function PageTemplateParts() {
|
|
|
88
73
|
}];
|
|
89
74
|
return (0, _element.createElement)(_page.default, {
|
|
90
75
|
title: (0, _i18n.__)('Template Parts'),
|
|
91
|
-
actions:
|
|
92
|
-
templateType: 'wp_template_part',
|
|
93
|
-
showIcon: false,
|
|
94
|
-
toggleProps: {
|
|
95
|
-
variant: 'primary'
|
|
96
|
-
}
|
|
97
|
-
})
|
|
76
|
+
actions: (0, _element.createElement)(_addNewTemplatePart.default, null)
|
|
98
77
|
}, templateParts && (0, _element.createElement)(_table.default, {
|
|
99
78
|
data: templateParts,
|
|
100
79
|
columns: columns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-template-parts/index.js"],"names":["PageTemplateParts","records","templateParts","per_page","
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-template-parts/index.js"],"names":["PageTemplateParts","records","templateParts","per_page","columns","header","cell","templatePart","postId","id","postType","type","canvas","backPath","title","rendered","slug","maxWidth"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AApBA;AACA;AACA;;AAUA;AACA;AACA;AAQe,SAASA,iBAAT,GAA6B;AAC3C,QAAM;AAAEC,IAAAA,OAAO,EAAEC;AAAX,MAA6B,gCAClC,UADkC,EAElC,kBAFkC,EAGlC;AACCC,IAAAA,QAAQ,EAAE,CAAC;AADZ,GAHkC,CAAnC;AAQA,QAAMC,OAAO,GAAG,CACf;AACCC,IAAAA,MAAM,EAAE,cAAI,eAAJ,CADT;AAECC,IAAAA,IAAI,EAAIC,YAAF,IACL,4BAAC,gCAAD,QACC,4BAAC,iCAAD;AAAS,MAAA,EAAE,EAAC,IAAZ;AAAiB,MAAA,KAAK,EAAG;AAAzB,OACC,4BAAC,aAAD;AACC,MAAA,MAAM,EAAG;AACRC,QAAAA,MAAM,EAAED,YAAY,CAACE,EADb;AAERC,QAAAA,QAAQ,EAAEH,YAAY,CAACI,IAFf;AAGRC,QAAAA,MAAM,EAAE;AAHA,OADV;AAMC,MAAA,KAAK,EAAG;AAAEC,QAAAA,QAAQ,EAAE;AAAZ;AANT,OAQG,kCACDN,YAAY,CAACO,KAAb,EAAoBC,QAApB,IACCR,YAAY,CAACS,IAFb,CARH,CADD,CADD,CAHF;AAqBCC,IAAAA,QAAQ,EAAE;AArBX,GADe,EAwBf;AACCZ,IAAAA,MAAM,EAAE,cAAI,UAAJ,CADT;AAECC,IAAAA,IAAI,EAAIC,YAAF,IACL,4BAAC,gBAAD;AACC,MAAA,QAAQ,EAAGA,YAAY,CAACI,IADzB;AAEC,MAAA,MAAM,EAAGJ,YAAY,CAACE;AAFvB;AAHF,GAxBe,EAiCf;AACCJ,IAAAA,MAAM,EAAE,4BAAC,0BAAD,QAAkB,cAAI,SAAJ,CAAlB,CADT;AAECC,IAAAA,IAAI,EAAIC,YAAF,IACL,4BAAC,wBAAD;AACC,MAAA,QAAQ,EAAGA,YAAY,CAACI,IADzB;AAEC,MAAA,MAAM,EAAGJ,YAAY,CAACE;AAFvB;AAHF,GAjCe,CAAhB;AA4CA,SACC,4BAAC,aAAD;AACC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CADT;AAEC,IAAA,OAAO,EAAG,4BAAC,2BAAD;AAFX,KAIGP,aAAa,IACd,4BAAC,cAAD;AAAO,IAAA,IAAI,EAAGA,aAAd;AAA8B,IAAA,OAAO,EAAGE;AAAxC,IALF,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Table from '../table';\nimport Link from '../routes/link';\nimport AddedBy from '../list/added-by';\nimport TemplateActions from '../template-actions';\nimport AddNewTemplatePart from './add-new-template-part';\n\nexport default function PageTemplateParts() {\n\tconst { records: templateParts } = useEntityRecords(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\theader: __( 'Template Part' ),\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<VStack>\n\t\t\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\t\tpostType: templatePart.type,\n\t\t\t\t\t\t\t\tcanvas: 'view',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tstate={ { backPath: '/wp_template_part/all' } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\ttemplatePart.title?.rendered ||\n\t\t\t\t\t\t\t\t\ttemplatePart.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</Heading>\n\t\t\t\t</VStack>\n\t\t\t),\n\t\t\tmaxWidth: 400,\n\t\t},\n\t\t{\n\t\t\theader: __( 'Added by' ),\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<AddedBy\n\t\t\t\t\tpostType={ templatePart.type }\n\t\t\t\t\tpostId={ templatePart.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<TemplateActions\n\t\t\t\t\tpostType={ templatePart.type }\n\t\t\t\t\tpostId={ templatePart.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={ __( 'Template Parts' ) }\n\t\t\tactions={ <AddNewTemplatePart /> }\n\t\t>\n\t\t\t{ templateParts && (\n\t\t\t\t<Table data={ templateParts } columns={ columns } />\n\t\t\t) }\n\t\t</Page>\n\t);\n}\n"]}
|