@wordpress/edit-site 6.42.0 → 6.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/page-patterns/index.cjs +7 -27
- package/build/components/page-patterns/index.cjs.map +2 -2
- package/build/components/page-templates/index-legacy.cjs +13 -6
- package/build/components/page-templates/index-legacy.cjs.map +2 -2
- package/build/components/post-list/index.cjs +15 -6
- package/build/components/post-list/index.cjs.map +2 -2
- package/build/components/post-list/quick-edit-modal.cjs +16 -48
- package/build/components/post-list/quick-edit-modal.cjs.map +2 -2
- package/build/components/sidebar-dataviews/index.cjs +37 -25
- package/build/components/sidebar-dataviews/index.cjs.map +3 -3
- package/build/components/sidebar-navigation-screen-patterns/index.cjs +55 -47
- package/build/components/sidebar-navigation-screen-patterns/index.cjs.map +2 -2
- package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs +33 -56
- package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs.map +3 -3
- package/build/components/site-editor-routes/home.cjs +8 -4
- package/build/components/site-editor-routes/home.cjs.map +2 -2
- package/build/components/site-editor-routes/navigation-item.cjs +13 -6
- package/build/components/site-editor-routes/navigation-item.cjs.map +2 -2
- package/build/components/site-editor-routes/navigation.cjs +9 -4
- package/build/components/site-editor-routes/navigation.cjs.map +2 -2
- package/build/components/site-editor-routes/page-item.cjs +13 -6
- package/build/components/site-editor-routes/page-item.cjs.map +2 -2
- package/build/components/site-editor-routes/pages.cjs +21 -7
- package/build/components/site-editor-routes/pages.cjs.map +3 -3
- package/build/components/site-editor-routes/stylebook.cjs +17 -2
- package/build/components/site-editor-routes/stylebook.cjs.map +2 -2
- package/build/components/site-editor-routes/template-item.cjs +13 -6
- package/build/components/site-editor-routes/template-item.cjs.map +2 -2
- package/build/components/site-editor-routes/templates.cjs +20 -7
- package/build/components/site-editor-routes/templates.cjs.map +3 -3
- package/build/components/site-editor-routes/utils.cjs +7 -2
- package/build/components/site-editor-routes/utils.cjs.map +2 -2
- package/build-module/components/page-patterns/index.mjs +8 -30
- package/build-module/components/page-patterns/index.mjs.map +2 -2
- package/build-module/components/page-templates/index-legacy.mjs +14 -11
- package/build-module/components/page-templates/index-legacy.mjs.map +2 -2
- package/build-module/components/post-list/index.mjs +16 -11
- package/build-module/components/post-list/index.mjs.map +2 -2
- package/build-module/components/post-list/quick-edit-modal.mjs +16 -48
- package/build-module/components/post-list/quick-edit-modal.mjs.map +2 -2
- package/build-module/components/sidebar-dataviews/index.mjs +45 -25
- package/build-module/components/sidebar-dataviews/index.mjs.map +2 -2
- package/build-module/components/sidebar-navigation-screen-patterns/index.mjs +55 -47
- package/build-module/components/sidebar-navigation-screen-patterns/index.mjs.map +2 -2
- package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs +41 -59
- package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs.map +2 -2
- package/build-module/components/site-editor-routes/home.mjs +10 -6
- package/build-module/components/site-editor-routes/home.mjs.map +2 -2
- package/build-module/components/site-editor-routes/navigation-item.mjs +14 -7
- package/build-module/components/site-editor-routes/navigation-item.mjs.map +2 -2
- package/build-module/components/site-editor-routes/navigation.mjs +10 -5
- package/build-module/components/site-editor-routes/navigation.mjs.map +2 -2
- package/build-module/components/site-editor-routes/page-item.mjs +14 -7
- package/build-module/components/site-editor-routes/page-item.mjs.map +2 -2
- package/build-module/components/site-editor-routes/pages.mjs +22 -11
- package/build-module/components/site-editor-routes/pages.mjs.map +2 -2
- package/build-module/components/site-editor-routes/stylebook.mjs +18 -3
- package/build-module/components/site-editor-routes/stylebook.mjs.map +2 -2
- package/build-module/components/site-editor-routes/template-item.mjs +14 -7
- package/build-module/components/site-editor-routes/template-item.mjs.map +2 -2
- package/build-module/components/site-editor-routes/templates.mjs +21 -11
- package/build-module/components/site-editor-routes/templates.mjs.map +2 -2
- package/build-module/components/site-editor-routes/utils.mjs +5 -1
- package/build-module/components/site-editor-routes/utils.mjs.map +2 -2
- package/build-style/style-rtl.css +60 -49
- package/build-style/style.css +60 -49
- package/package.json +46 -46
- package/src/components/page-patterns/index.js +9 -30
- package/src/components/page-templates/index-legacy.js +14 -11
- package/src/components/post-list/index.js +16 -10
- package/src/components/post-list/quick-edit-modal.js +19 -54
- package/src/components/post-list/style.scss +2 -0
- package/src/components/sidebar-dataviews/index.js +48 -26
- package/src/components/sidebar-dataviews/style.scss +0 -16
- package/src/components/sidebar-navigation-screen-patterns/index.js +62 -55
- package/src/components/sidebar-navigation-screen-templates-browse/content-legacy.js +44 -64
- package/src/components/site-editor-routes/home.js +9 -5
- package/src/components/site-editor-routes/navigation-item.js +13 -6
- package/src/components/site-editor-routes/navigation.js +9 -4
- package/src/components/site-editor-routes/page-item.js +13 -6
- package/src/components/site-editor-routes/pages.js +21 -10
- package/src/components/site-editor-routes/stylebook.js +12 -3
- package/src/components/site-editor-routes/template-item.js +13 -6
- package/src/components/site-editor-routes/templates.js +21 -10
- package/src/components/site-editor-routes/utils.js +12 -0
- package/build/components/post-list/view-utils.cjs +0 -202
- package/build/components/post-list/view-utils.cjs.map +0 -7
- package/build/components/sidebar-dataviews/dataview-item.cjs +0 -82
- package/build/components/sidebar-dataviews/dataview-item.cjs.map +0 -7
- package/build-module/components/post-list/view-utils.mjs +0 -182
- package/build-module/components/post-list/view-utils.mjs.map +0 -7
- package/build-module/components/sidebar-dataviews/dataview-item.mjs +0 -51
- package/build-module/components/sidebar-dataviews/dataview-item.mjs.map +0 -7
- package/src/components/post-list/view-utils.js +0 -187
- package/src/components/sidebar-dataviews/dataview-item.js +0 -56
|
@@ -12,7 +12,7 @@ import { DataViews, filterSortAndPaginate } from "@wordpress/dataviews";
|
|
|
12
12
|
import { privateApis as editorPrivateApis } from "@wordpress/editor";
|
|
13
13
|
import { useEvent, usePrevious } from "@wordpress/compose";
|
|
14
14
|
import { addQueryArgs } from "@wordpress/url";
|
|
15
|
-
import { useView } from "@wordpress/views";
|
|
15
|
+
import { useView, useViewConfig } from "@wordpress/views";
|
|
16
16
|
import {
|
|
17
17
|
OPERATOR_IS_ANY,
|
|
18
18
|
OPERATOR_IS_NONE,
|
|
@@ -26,11 +26,6 @@ import {
|
|
|
26
26
|
useEditPostAction,
|
|
27
27
|
useQuickEditPostAction
|
|
28
28
|
} from "../dataviews-actions/index.mjs";
|
|
29
|
-
import {
|
|
30
|
-
defaultLayouts,
|
|
31
|
-
DEFAULT_VIEW,
|
|
32
|
-
getActiveViewOverridesForTab
|
|
33
|
-
} from "./view-utils.mjs";
|
|
34
29
|
import useNotesCount from "./use-notes-count.mjs";
|
|
35
30
|
import { QuickEditModal } from "./quick-edit-modal.mjs";
|
|
36
31
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -49,16 +44,25 @@ function PostList({ postType }) {
|
|
|
49
44
|
const { path, query } = useLocation();
|
|
50
45
|
const { activeView = "all", postId, quickEdit = false } = query;
|
|
51
46
|
const history = useHistory();
|
|
52
|
-
const
|
|
47
|
+
const {
|
|
48
|
+
default_view: defaultView,
|
|
49
|
+
default_layouts: defaultLayouts,
|
|
50
|
+
view_list: viewList,
|
|
51
|
+
form: quickEditForm
|
|
52
|
+
} = useViewConfig({
|
|
53
|
+
kind: "postType",
|
|
54
|
+
name: postType
|
|
55
|
+
});
|
|
53
56
|
const activeViewOverrides = useMemo(
|
|
54
|
-
() =>
|
|
55
|
-
[activeView]
|
|
57
|
+
() => viewList?.find((v) => v.slug === activeView)?.view ?? {},
|
|
58
|
+
[viewList, activeView]
|
|
56
59
|
);
|
|
57
60
|
const { view, updateView, isModified, resetToDefault } = useView({
|
|
58
61
|
kind: "postType",
|
|
59
62
|
name: postType,
|
|
60
63
|
slug: "default",
|
|
61
64
|
defaultView,
|
|
65
|
+
defaultLayouts,
|
|
62
66
|
activeViewOverrides,
|
|
63
67
|
queryParams: {
|
|
64
68
|
page: query.pageNumber,
|
|
@@ -268,7 +272,7 @@ function PostList({ postType }) {
|
|
|
268
272
|
},
|
|
269
273
|
getItemId,
|
|
270
274
|
getItemLevel,
|
|
271
|
-
defaultLayouts,
|
|
275
|
+
defaultLayouts: defaultLayouts ?? {},
|
|
272
276
|
onReset: isModified ? () => {
|
|
273
277
|
resetToDefault();
|
|
274
278
|
history.invalidate();
|
|
@@ -281,7 +285,8 @@ function PostList({ postType }) {
|
|
|
281
285
|
{
|
|
282
286
|
postType,
|
|
283
287
|
postId: selection,
|
|
284
|
-
closeModal: closeQuickEditModal
|
|
288
|
+
closeModal: closeQuickEditModal,
|
|
289
|
+
quickEditForm
|
|
285
290
|
}
|
|
286
291
|
)
|
|
287
292
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/post-list/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Page } from '@wordpress/admin-ui';\nimport { Button } from '@wordpress/components';\nimport {\n\tstore as coreStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useEvent, usePrevious } from '@wordpress/compose';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useView } from '@wordpress/views';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\n\nimport AddNewPostModal from '../add-new-post';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tuseEditPostAction,\n\tuseQuickEditPostAction,\n} from '../dataviews-actions';\
|
|
5
|
-
"mappings": ";AAGA,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB;AAAA,EACC,SAAS;AAAA,EACT,eAAe;AAAA,OACT;AACP,SAAS,UAAU,SAAS,aAAa,iBAAiB;AAC1D,SAAS,eAAe,yBAAyB;AACjD,SAAS,iBAAiB;AAC1B,SAAS,WAAW,6BAA6B;AACjD,SAAS,eAAe,yBAAyB;AACjD,SAAS,UAAU,mBAAmB;AACtC,SAAS,oBAAoB;AAC7B,SAAS,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Page } from '@wordpress/admin-ui';\nimport { Button } from '@wordpress/components';\nimport {\n\tstore as coreStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useEvent, usePrevious } from '@wordpress/compose';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useView, useViewConfig } from '@wordpress/views';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\n\nimport AddNewPostModal from '../add-new-post';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tuseEditPostAction,\n\tuseQuickEditPostAction,\n} from '../dataviews-actions';\n\nimport useNotesCount from './use-notes-count';\nimport { QuickEditModal } from './quick-edit-modal';\n\nconst { usePostActions, usePostFields } = unlock( editorPrivateApis );\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\nconst { useEntityRecordsWithPermissions } = unlock( coreDataPrivateApis );\nconst EMPTY_ARRAY = [];\n\nconst DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.\n\nfunction getItemId( item ) {\n\treturn item.id.toString();\n}\n\nfunction getItemLevel( item ) {\n\treturn item.level;\n}\n\nexport default function PostList( { postType } ) {\n\tconst { path, query } = useLocation();\n\tconst { activeView = 'all', postId, quickEdit = false } = query;\n\tconst history = useHistory();\n\tconst {\n\t\tdefault_view: defaultView,\n\t\tdefault_layouts: defaultLayouts,\n\t\tview_list: viewList,\n\t\tform: quickEditForm,\n\t} = useViewConfig( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\tconst activeViewOverrides = useMemo(\n\t\t() => viewList?.find( ( v ) => v.slug === activeView )?.view ?? {},\n\t\t[ viewList, activeView ]\n\t);\n\tconst { view, updateView, isModified, resetToDefault } = useView( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t\tslug: 'default',\n\t\tdefaultView,\n\t\tdefaultLayouts,\n\t\tactiveViewOverrides,\n\t\tqueryParams: {\n\t\t\tpage: query.pageNumber,\n\t\t\tsearch: query.search,\n\t\t},\n\t\tonChangeQueryParams: ( newQueryParams ) => {\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t...query,\n\t\t\t\t\tpageNumber: newQueryParams.page,\n\t\t\t\t\tsearch: newQueryParams.search || undefined,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t} );\n\n\tconst onChangeView = useEvent( ( newView ) => {\n\t\tupdateView( newView );\n\t\tif ( newView.type !== view.type ) {\n\t\t\t// Retrigger the routing areas resolution.\n\t\t\thistory.invalidate();\n\t\t}\n\t} );\n\n\tconst [ selection, setSelection ] = useState( postId?.split( ',' ) ?? [] );\n\tconst onChangeSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items );\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\tpostId: items.join( ',' ),\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\t[ path, history ]\n\t);\n\tuseEffect( () => {\n\t\tconst newSelection = postId?.split( ',' ) ?? [];\n\t\tsetSelection( newSelection );\n\t}, [ postId ] );\n\n\tconst fields = usePostFields( {\n\t\tpostType,\n\t} );\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters?.forEach( ( filter ) => {\n\t\t\tif (\n\t\t\t\tfilter.field === 'status' &&\n\t\t\t\tfilter.operator === OPERATOR_IS_ANY\n\t\t\t) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_IS_ANY\n\t\t\t) {\n\t\t\t\tfilters.author = filter.value;\n\t\t\t} else if (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_IS_NONE\n\t\t\t) {\n\t\t\t\tfilters.author_exclude = filter.value;\n\t\t\t}\n\t\t\tif ( filter.field === 'date' ) {\n\t\t\t\t// Skip if no value is set yet\n\t\t\t\tif ( ! filter.value ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( filter.operator === OPERATOR_BEFORE ) {\n\t\t\t\t\tfilters.before = filter.value;\n\t\t\t\t} else if ( filter.operator === OPERATOR_AFTER ) {\n\t\t\t\t\tfilters.after = filter.value;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === '' ) {\n\t\t\tfilters.status = DEFAULT_STATUSES;\n\t\t}\n\n\t\treturn {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author,wp:featuredmedia',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\torderby_hierarchy: !! view.showLevels,\n\t\t\tsearch: view.search,\n\t\t\t...filters,\n\t\t};\n\t}, [ view ] );\n\tconst {\n\t\trecords,\n\t\tisResolving: isLoadingData,\n\t\ttotalItems,\n\t\ttotalPages,\n\t\thasResolved,\n\t} = useEntityRecordsWithPermissions( 'postType', postType, queryArgs );\n\n\tconst postIds = useMemo(\n\t\t() => records?.map( ( record ) => record.id ) ?? [],\n\t\t[ records ]\n\t);\n\tconst { notesCount, isLoading: isLoadingNotesCount } =\n\t\tuseNotesCount( postIds );\n\n\t// The REST API sort the authors by ID, but we want to sort them by name.\n\tconst data = useMemo( () => {\n\t\tlet processedRecords = records;\n\n\t\tif ( view?.sort?.field === 'author' ) {\n\t\t\tprocessedRecords = filterSortAndPaginate(\n\t\t\t\trecords,\n\t\t\t\t{ sort: { ...view.sort } },\n\t\t\t\tfields\n\t\t\t).data;\n\t\t}\n\n\t\tif ( processedRecords ) {\n\t\t\treturn processedRecords.map( ( record ) => ( {\n\t\t\t\t...record,\n\t\t\t\tnotesCount: notesCount[ record.id ] ?? 0,\n\t\t\t} ) );\n\t\t}\n\n\t\treturn processedRecords;\n\t}, [ records, fields, view?.sort, notesCount ] );\n\n\tconst ids = data?.map( ( record ) => getItemId( record ) ) ?? [];\n\tconst prevIds = usePrevious( ids ) ?? [];\n\tconst deletedIds = prevIds.filter( ( id ) => ! ids.includes( id ) );\n\tconst postIdWasDeleted = deletedIds.includes( postId );\n\n\tuseEffect( () => {\n\t\tif ( postIdWasDeleted ) {\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\tpostId: undefined,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t}, [ history, postIdWasDeleted, path ] );\n\n\tconst paginationInfo = useMemo(\n\t\t() => ( {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t} ),\n\t\t[ totalItems, totalPages ]\n\t);\n\n\tconst { labels, canCreateRecord } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, canUser } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tlabels: getPostType( postType )?.labels,\n\t\t\t\tcanCreateRecord: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: postType,\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst postTypeActions = usePostActions( {\n\t\tpostType,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\tconst quickEditAction = useQuickEditPostAction();\n\tconst actions = useMemo( () => {\n\t\tif ( view.type === LAYOUT_LIST ) {\n\t\t\tconst editActionPrimary = { ...editAction, isPrimary: true };\n\t\t\treturn [ editActionPrimary, ...postTypeActions ];\n\t\t}\n\n\t\treturn [ editAction, quickEditAction, ...postTypeActions ];\n\t}, [ view.type, editAction, quickEditAction, postTypeActions ] );\n\n\tconst [ showAddPostModal, setShowAddPostModal ] = useState( false );\n\n\tconst openModal = () => setShowAddPostModal( true );\n\tconst closeModal = () => setShowAddPostModal( false );\n\tconst handleNewPage = ( { type, id } ) => {\n\t\thistory.navigate( `/${ type }/${ id }?canvas=edit` );\n\t\tcloseModal();\n\t};\n\tconst closeQuickEditModal = () => {\n\t\thistory.navigate(\n\t\t\taddQueryArgs( path, {\n\t\t\t\t...query,\n\t\t\t\tquickEdit: undefined,\n\t\t\t} )\n\t\t);\n\t};\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={ labels?.name }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t{ labels?.add_new_item && canCreateRecord && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ openModal }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ labels.add_new_item }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t{ showAddPostModal && (\n\t\t\t\t\t\t\t\t<AddNewPostModal\n\t\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\t\tonSave={ handleNewPage }\n\t\t\t\t\t\t\t\t\tonClose={ closeModal }\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) }\n\t\t\t\t</>\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tkey={ activeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\tisLoading={\n\t\t\t\t\tisLoadingData || isLoadingNotesCount || ! hasResolved\n\t\t\t\t}\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tisItemClickable={ ( item ) => item.status !== 'trash' }\n\t\t\t\tonClickItem={ ( { id } ) => {\n\t\t\t\t\thistory.navigate( `/${ postType }/${ id }?canvas=edit` );\n\t\t\t\t} }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tgetItemLevel={ getItemLevel }\n\t\t\t\tdefaultLayouts={ defaultLayouts ?? {} }\n\t\t\t\tonReset={\n\t\t\t\t\tisModified\n\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\tresetToDefault();\n\t\t\t\t\t\t\t\thistory.invalidate();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: false\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ quickEdit &&\n\t\t\t\t! isLoadingData &&\n\t\t\t\tselection.length > 0 &&\n\t\t\t\tview.type !== LAYOUT_LIST && (\n\t\t\t\t\t<QuickEditModal\n\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\tpostId={ selection }\n\t\t\t\t\t\tcloseModal={ closeQuickEditModal }\n\t\t\t\t\t\tquickEditForm={ quickEditForm }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</Page>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -14,7 +14,12 @@ import { unlock } from "../../lock-unlock.mjs";
|
|
|
14
14
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
var { usePostFields, PostCardPanel } = unlock(editorPrivateApis);
|
|
16
16
|
var fieldsWithBulkEditSupport = ["status", "date", "author", "discussion"];
|
|
17
|
-
function QuickEditModal({
|
|
17
|
+
function QuickEditModal({
|
|
18
|
+
postType,
|
|
19
|
+
postId,
|
|
20
|
+
closeModal,
|
|
21
|
+
quickEditForm
|
|
22
|
+
}) {
|
|
18
23
|
const isBulk = postId.length > 1;
|
|
19
24
|
const [localEdits, setLocalEdits] = useState({});
|
|
20
25
|
const { record, hasFinishedResolution, canSwitchTemplate } = useSelect(
|
|
@@ -70,58 +75,21 @@ function QuickEditModal({ postType, postId, closeModal }) {
|
|
|
70
75
|
[_fields, canSwitchTemplate]
|
|
71
76
|
);
|
|
72
77
|
const form = useMemo(() => {
|
|
73
|
-
|
|
74
|
-
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
id: "post-content-info",
|
|
83
|
-
layout: { type: "regular", labelPosition: "none" }
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
id: "status",
|
|
87
|
-
label: __("Status"),
|
|
88
|
-
children: [
|
|
89
|
-
{
|
|
90
|
-
id: "status",
|
|
91
|
-
layout: { type: "regular", labelPosition: "none" }
|
|
92
|
-
},
|
|
93
|
-
"scheduled_date",
|
|
94
|
-
"password"
|
|
95
|
-
]
|
|
96
|
-
},
|
|
97
|
-
"author",
|
|
98
|
-
"date",
|
|
99
|
-
"slug",
|
|
100
|
-
"parent",
|
|
101
|
-
{
|
|
102
|
-
id: "discussion",
|
|
103
|
-
label: __("Discussion"),
|
|
104
|
-
children: [
|
|
105
|
-
{
|
|
106
|
-
id: "comment_status",
|
|
107
|
-
layout: { type: "regular", labelPosition: "none" }
|
|
108
|
-
},
|
|
109
|
-
"ping_status"
|
|
110
|
-
]
|
|
111
|
-
},
|
|
112
|
-
"template"
|
|
113
|
-
];
|
|
78
|
+
if (!quickEditForm) {
|
|
79
|
+
return { layout: { type: "panel" }, fields: [] };
|
|
80
|
+
}
|
|
81
|
+
if (!isBulk) {
|
|
82
|
+
return quickEditForm;
|
|
83
|
+
}
|
|
114
84
|
return {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
},
|
|
118
|
-
fields: isBulk ? allFields.filter(
|
|
85
|
+
...quickEditForm,
|
|
86
|
+
fields: (quickEditForm.fields ?? []).filter(
|
|
119
87
|
(field) => fieldsWithBulkEditSupport.includes(
|
|
120
88
|
typeof field === "string" ? field : field.id
|
|
121
89
|
)
|
|
122
|
-
)
|
|
90
|
+
)
|
|
123
91
|
};
|
|
124
|
-
}, [isBulk]);
|
|
92
|
+
}, [isBulk, quickEditForm]);
|
|
125
93
|
const onChange = (edits) => {
|
|
126
94
|
const currentData = { ...record, ...localEdits };
|
|
127
95
|
if (edits.status && edits.status !== "future" && currentData?.status === "future" && new Date(currentData.date) > /* @__PURE__ */ new Date()) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/post-list/quick-edit-modal.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { DataForm } from '@wordpress/dataviews';\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { usePostFields, PostCardPanel } = unlock( editorPrivateApis );\n\nconst fieldsWithBulkEditSupport = [ 'status', 'date', 'author', 'discussion' ];\n\nexport function QuickEditModal( {
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,aAAa,iBAAiB;AACvC,SAAS,SAAS,qBAAqB;AACvC,SAAS,gBAAgB;AACzB;AAAA,EACC;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,OAClB;AACP,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,eAAe,yBAAyB;AAKjD,SAAS,cAAc;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { DataForm } from '@wordpress/dataviews';\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { usePostFields, PostCardPanel } = unlock( editorPrivateApis );\n\nconst fieldsWithBulkEditSupport = [ 'status', 'date', 'author', 'discussion' ];\n\nexport function QuickEditModal( {\n\tpostType,\n\tpostId,\n\tcloseModal,\n\tquickEditForm,\n} ) {\n\tconst isBulk = postId.length > 1;\n\n\tconst [ localEdits, setLocalEdits ] = useState( {} );\n\tconst { record, hasFinishedResolution, canSwitchTemplate } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution: hasFinished,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tif ( isBulk ) {\n\t\t\t\treturn {\n\t\t\t\t\trecord: null,\n\t\t\t\t\thasFinishedResolution: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst args = [ 'postType', postType, postId[ 0 ] ];\n\n\t\t\tconst { getHomePage, getPostsPageId } = unlock(\n\t\t\t\tselect( coreDataStore )\n\t\t\t);\n\t\t\tconst singlePostId = String( postId[ 0 ] );\n\t\t\tconst isPostsPage =\n\t\t\t\tsinglePostId !== undefined && getPostsPageId() === singlePostId;\n\t\t\tconst isFrontPage =\n\t\t\t\tsinglePostId !== undefined &&\n\t\t\t\tpostType === 'page' &&\n\t\t\t\tgetHomePage()?.postId === singlePostId;\n\n\t\t\treturn {\n\t\t\t\trecord: getEditedEntityRecord( ...args ),\n\t\t\t\thasFinishedResolution: hasFinished(\n\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\targs\n\t\t\t\t),\n\t\t\t\tcanSwitchTemplate: ! isPostsPage && ! isFrontPage,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, isBulk ]\n\t);\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreDataStore );\n\n\tconst _fields = usePostFields( { postType } );\n\tconst fields = useMemo(\n\t\t() =>\n\t\t\t_fields?.map( ( field ) => {\n\t\t\t\tif ( field.id === 'status' ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\telements: field.elements.filter(\n\t\t\t\t\t\t\t( element ) => element.value !== 'trash'\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif ( field.id === 'template' ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\treadOnly: ! canSwitchTemplate,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn field;\n\t\t\t} ),\n\t\t[ _fields, canSwitchTemplate ]\n\t);\n\n\tconst form = useMemo( () => {\n\t\tif ( ! quickEditForm ) {\n\t\t\treturn { layout: { type: 'panel' }, fields: [] };\n\t\t}\n\t\tif ( ! isBulk ) {\n\t\t\treturn quickEditForm;\n\t\t}\n\t\treturn {\n\t\t\t...quickEditForm,\n\t\t\tfields: ( quickEditForm.fields ?? [] ).filter( ( field ) =>\n\t\t\t\tfieldsWithBulkEditSupport.includes(\n\t\t\t\t\ttypeof field === 'string' ? field : field.id\n\t\t\t\t)\n\t\t\t),\n\t\t};\n\t}, [ isBulk, quickEditForm ] );\n\n\tconst onChange = ( edits ) => {\n\t\tconst currentData = { ...record, ...localEdits };\n\n\t\tif (\n\t\t\tedits.status &&\n\t\t\tedits.status !== 'future' &&\n\t\t\tcurrentData?.status === 'future' &&\n\t\t\tnew Date( currentData.date ) > new Date()\n\t\t) {\n\t\t\tedits.date = null;\n\t\t}\n\t\tif (\n\t\t\tedits.status &&\n\t\t\tedits.status === 'private' &&\n\t\t\tcurrentData?.password\n\t\t) {\n\t\t\tedits.password = '';\n\t\t}\n\n\t\tsetLocalEdits( ( prev ) => ( { ...prev, ...edits } ) );\n\t};\n\tuseEffect( () => {\n\t\tsetLocalEdits( {} );\n\t}, [ postId ] );\n\n\tconst onSave = async () => {\n\t\tfor ( const id of postId ) {\n\t\t\teditEntityRecord( 'postType', postType, id, localEdits );\n\t\t}\n\n\t\tif ( isBulk ) {\n\t\t\tawait Promise.allSettled(\n\t\t\t\tpostId.map( ( id ) =>\n\t\t\t\t\tsaveEditedEntityRecord( 'postType', postType, id )\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\tawait saveEditedEntityRecord( 'postType', postType, postId[ 0 ] );\n\t\t}\n\t\tcloseModal?.();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\toverlayClassName=\"dataviews-action-modal__quick-edit\"\n\t\t\t__experimentalHideHeader\n\t\t\tonRequestClose={ closeModal }\n\t\t\tfocusOnMount=\"firstElement\"\n\t\t>\n\t\t\t<div className=\"dataviews-action-modal__quick-edit-header\">\n\t\t\t\t<PostCardPanel\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tpostId={ postId }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\thideActions\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div className=\"dataviews-action-modal__quick-edit-content\">\n\t\t\t\t{ hasFinishedResolution && (\n\t\t\t\t\t<DataForm\n\t\t\t\t\t\tdata={ { ...record, ...localEdits } }\n\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<HStack className=\"dataviews-action-modal__quick-edit-footer\">\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ onSave }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</Modal>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,43 +1,63 @@
|
|
|
1
1
|
// packages/edit-site/src/components/sidebar-dataviews/index.js
|
|
2
2
|
import { __experimentalItemGroup as ItemGroup } from "@wordpress/components";
|
|
3
3
|
import { privateApis as routerPrivateApis } from "@wordpress/router";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import {
|
|
5
|
+
trash,
|
|
6
|
+
pages,
|
|
7
|
+
drafts,
|
|
8
|
+
published,
|
|
9
|
+
scheduled,
|
|
10
|
+
pending,
|
|
11
|
+
notAllowed
|
|
12
|
+
} from "@wordpress/icons";
|
|
13
|
+
import { useViewConfig } from "@wordpress/views";
|
|
14
|
+
import { addQueryArgs } from "@wordpress/url";
|
|
7
15
|
import { unlock } from "../../lock-unlock.mjs";
|
|
8
|
-
import
|
|
9
|
-
import { getDefaultViews } from "../post-list/view-utils.mjs";
|
|
16
|
+
import SidebarNavigationItem from "../sidebar-navigation-item/index.mjs";
|
|
10
17
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
11
18
|
var { useLocation } = unlock(routerPrivateApis);
|
|
12
|
-
|
|
19
|
+
var SLUG_TO_ICON = {
|
|
20
|
+
all: pages,
|
|
21
|
+
published,
|
|
22
|
+
future: scheduled,
|
|
23
|
+
drafts,
|
|
24
|
+
pending,
|
|
25
|
+
private: notAllowed,
|
|
26
|
+
trash
|
|
27
|
+
};
|
|
28
|
+
var defaultResolveIcon = (view) => {
|
|
29
|
+
return SLUG_TO_ICON[view.slug];
|
|
30
|
+
};
|
|
31
|
+
function DataViewsSidebarContent({
|
|
32
|
+
postType,
|
|
33
|
+
resolveIcon = defaultResolveIcon
|
|
34
|
+
}) {
|
|
13
35
|
const {
|
|
36
|
+
path,
|
|
14
37
|
query: { activeView = "all" }
|
|
15
38
|
} = useLocation();
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
[postType]
|
|
22
|
-
);
|
|
23
|
-
const defaultViews = useMemo(
|
|
24
|
-
() => getDefaultViews(postTypeObject),
|
|
25
|
-
[postTypeObject]
|
|
26
|
-
);
|
|
39
|
+
const { view_list: viewList } = useViewConfig({
|
|
40
|
+
kind: "postType",
|
|
41
|
+
name: postType
|
|
42
|
+
});
|
|
27
43
|
if (!postType) {
|
|
28
44
|
return null;
|
|
29
45
|
}
|
|
30
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ItemGroup, { className: "edit-site-sidebar-dataviews", children:
|
|
46
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ItemGroup, { className: "edit-site-sidebar-dataviews", children: viewList?.map((view) => {
|
|
47
|
+
const isActive = view.slug === activeView;
|
|
48
|
+
const slug = view.slug === "all" ? void 0 : view.slug;
|
|
49
|
+
const icon = resolveIcon(view);
|
|
31
50
|
return /* @__PURE__ */ jsx(
|
|
32
|
-
|
|
51
|
+
SidebarNavigationItem,
|
|
33
52
|
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
isActive:
|
|
53
|
+
icon,
|
|
54
|
+
to: addQueryArgs(path, {
|
|
55
|
+
activeView: slug
|
|
56
|
+
}),
|
|
57
|
+
"aria-current": isActive ? "true" : void 0,
|
|
58
|
+
children: view.title
|
|
39
59
|
},
|
|
40
|
-
|
|
60
|
+
view.slug
|
|
41
61
|
);
|
|
42
62
|
}) }) });
|
|
43
63
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/sidebar-dataviews/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {
|
|
5
|
-
"mappings": ";AAGA,SAAS,2BAA2B,iBAAiB;AACrD,SAAS,eAAe,yBAAyB;AACjD,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\ttrash,\n\tpages,\n\tdrafts,\n\tpublished,\n\tscheduled,\n\tpending,\n\tnotAllowed,\n} from '@wordpress/icons';\nimport { useViewConfig } from '@wordpress/views';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst SLUG_TO_ICON = {\n\tall: pages,\n\tpublished,\n\tfuture: scheduled,\n\tdrafts,\n\tpending,\n\tprivate: notAllowed,\n\ttrash,\n};\nconst defaultResolveIcon = ( view ) => {\n\treturn SLUG_TO_ICON[ view.slug ];\n};\n\nexport default function DataViewsSidebarContent( {\n\tpostType,\n\tresolveIcon = defaultResolveIcon,\n} ) {\n\tconst {\n\t\tpath,\n\t\tquery: { activeView = 'all' },\n\t} = useLocation();\n\tconst { view_list: viewList } = useViewConfig( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-dataviews\">\n\t\t\t\t{ viewList?.map( ( view ) => {\n\t\t\t\t\tconst isActive = view.slug === activeView;\n\t\t\t\t\tconst slug = view.slug === 'all' ? undefined : view.slug;\n\t\t\t\t\tconst icon = resolveIcon( view );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SidebarNavigationItem\n\t\t\t\t\t\t\tkey={ view.slug }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tto={ addQueryArgs( path, {\n\t\t\t\t\t\t\t\tactiveView: slug,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ view.title }\n\t\t\t\t\t\t</SidebarNavigationItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,2BAA2B,iBAAiB;AACrD,SAAS,eAAe,yBAAyB;AACjD;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAK7B,SAAS,cAAc;AACvB,OAAO,2BAA2B;AAkChC,mBAOI,WAPJ;AAhCF,IAAM,EAAE,YAAY,IAAI,OAAQ,iBAAkB;AAElD,IAAM,eAAe;AAAA,EACpB,KAAK;AAAA,EACL;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AACD;AACA,IAAM,qBAAqB,CAAE,SAAU;AACtC,SAAO,aAAc,KAAK,IAAK;AAChC;AAEe,SAAR,wBAA0C;AAAA,EAChD;AAAA,EACA,cAAc;AACf,GAAI;AACH,QAAM;AAAA,IACL;AAAA,IACA,OAAO,EAAE,aAAa,MAAM;AAAA,EAC7B,IAAI,YAAY;AAChB,QAAM,EAAE,WAAW,SAAS,IAAI,cAAe;AAAA,IAC9C,MAAM;AAAA,IACN,MAAM;AAAA,EACP,CAAE;AACF,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAEA,SACC,gCACC,8BAAC,aAAU,WAAU,+BAClB,oBAAU,IAAK,CAAE,SAAU;AAC5B,UAAM,WAAW,KAAK,SAAS;AAC/B,UAAM,OAAO,KAAK,SAAS,QAAQ,SAAY,KAAK;AACpD,UAAM,OAAO,YAAa,IAAK;AAC/B,WACC;AAAA,MAAC;AAAA;AAAA,QAEA;AAAA,QACA,IAAK,aAAc,MAAM;AAAA,UACxB,YAAY;AAAA,QACb,CAAE;AAAA,QACF,gBAAe,WAAW,SAAS;AAAA,QAEjC,eAAK;AAAA;AAAA,MAPD,KAAK;AAAA,IAQZ;AAAA,EAEF,CAAE,GACH,GACD;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,9 +4,11 @@ import {
|
|
|
4
4
|
__experimentalItem as Item
|
|
5
5
|
} from "@wordpress/components";
|
|
6
6
|
import { getTemplatePartIcon } from "@wordpress/editor";
|
|
7
|
+
import { useMemo } from "@wordpress/element";
|
|
7
8
|
import { __ } from "@wordpress/i18n";
|
|
8
9
|
import { file } from "@wordpress/icons";
|
|
9
10
|
import { privateApis as routerPrivateApis } from "@wordpress/router";
|
|
11
|
+
import { useViewConfig } from "@wordpress/views";
|
|
10
12
|
import SidebarNavigationScreen from "../sidebar-navigation-screen/index.mjs";
|
|
11
13
|
import CategoryItem from "./category-item.mjs";
|
|
12
14
|
import {
|
|
@@ -21,63 +23,40 @@ import { unlock } from "../../lock-unlock.mjs";
|
|
|
21
23
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
22
24
|
var { useLocation } = unlock(routerPrivateApis);
|
|
23
25
|
function CategoriesGroup({
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
templatePartViews,
|
|
27
|
+
patternViews,
|
|
28
|
+
templatePartCounts,
|
|
29
|
+
patternCounts,
|
|
26
30
|
currentCategory,
|
|
27
31
|
currentType
|
|
28
32
|
}) {
|
|
29
|
-
const [allPatterns, ...otherPatterns] = patternCategories;
|
|
30
33
|
return /* @__PURE__ */ jsxs(ItemGroup, { className: "edit-site-sidebar-navigation-screen-patterns__group", children: [
|
|
31
|
-
/* @__PURE__ */ jsx(
|
|
34
|
+
templatePartViews?.map((view) => /* @__PURE__ */ jsx(
|
|
32
35
|
CategoryItem,
|
|
33
36
|
{
|
|
34
|
-
count:
|
|
35
|
-
icon: getTemplatePartIcon(
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
count: templatePartCounts[view.slug],
|
|
38
|
+
icon: getTemplatePartIcon(
|
|
39
|
+
view.slug === TEMPLATE_PART_ALL_AREAS_CATEGORY ? void 0 : view.slug
|
|
40
|
+
),
|
|
41
|
+
label: view.title,
|
|
42
|
+
id: view.slug,
|
|
38
43
|
type: TEMPLATE_PART_POST_TYPE,
|
|
39
|
-
isActive: currentCategory ===
|
|
44
|
+
isActive: currentCategory === view.slug && currentType === TEMPLATE_PART_POST_TYPE
|
|
40
45
|
},
|
|
41
|
-
|
|
42
|
-
),
|
|
43
|
-
Object.entries(templatePartAreas).map(
|
|
44
|
-
([area, { label, templateParts, icon }]) => /* @__PURE__ */ jsx(
|
|
45
|
-
CategoryItem,
|
|
46
|
-
{
|
|
47
|
-
count: templateParts?.length,
|
|
48
|
-
icon: getTemplatePartIcon(icon),
|
|
49
|
-
label,
|
|
50
|
-
id: area,
|
|
51
|
-
type: TEMPLATE_PART_POST_TYPE,
|
|
52
|
-
isActive: currentCategory === area && currentType === TEMPLATE_PART_POST_TYPE
|
|
53
|
-
},
|
|
54
|
-
area
|
|
55
|
-
)
|
|
56
|
-
),
|
|
46
|
+
view.slug
|
|
47
|
+
)),
|
|
57
48
|
/* @__PURE__ */ jsx("div", { className: "edit-site-sidebar-navigation-screen-patterns__divider" }),
|
|
58
|
-
|
|
49
|
+
patternViews?.map((view) => /* @__PURE__ */ jsx(
|
|
59
50
|
CategoryItem,
|
|
60
51
|
{
|
|
61
|
-
count:
|
|
62
|
-
label:
|
|
52
|
+
count: patternCounts[view.slug],
|
|
53
|
+
label: view.title,
|
|
63
54
|
icon: file,
|
|
64
|
-
id:
|
|
55
|
+
id: view.slug,
|
|
65
56
|
type: PATTERN_TYPES.user,
|
|
66
|
-
isActive: currentCategory === `${
|
|
57
|
+
isActive: currentCategory === `${view.slug}` && currentType === PATTERN_TYPES.user
|
|
67
58
|
},
|
|
68
|
-
|
|
69
|
-
),
|
|
70
|
-
otherPatterns.map((category) => /* @__PURE__ */ jsx(
|
|
71
|
-
CategoryItem,
|
|
72
|
-
{
|
|
73
|
-
count: category.count,
|
|
74
|
-
label: category.label,
|
|
75
|
-
icon: file,
|
|
76
|
-
id: category.name,
|
|
77
|
-
type: PATTERN_TYPES.user,
|
|
78
|
-
isActive: currentCategory === `${category.name}` && currentType === PATTERN_TYPES.user
|
|
79
|
-
},
|
|
80
|
-
category.name
|
|
59
|
+
view.slug
|
|
81
60
|
))
|
|
82
61
|
] });
|
|
83
62
|
}
|
|
@@ -86,8 +65,35 @@ function SidebarNavigationScreenPatterns({ backPath }) {
|
|
|
86
65
|
query: { postType = "wp_block", categoryId }
|
|
87
66
|
} = useLocation();
|
|
88
67
|
const currentCategory = categoryId || (postType === PATTERN_TYPES.user ? PATTERN_DEFAULT_CATEGORY : TEMPLATE_PART_ALL_AREAS_CATEGORY);
|
|
89
|
-
const {
|
|
90
|
-
|
|
68
|
+
const { view_list: templatePartViews } = useViewConfig({
|
|
69
|
+
kind: "postType",
|
|
70
|
+
name: TEMPLATE_PART_POST_TYPE
|
|
71
|
+
});
|
|
72
|
+
const { view_list: patternViews } = useViewConfig({
|
|
73
|
+
kind: "postType",
|
|
74
|
+
name: PATTERN_TYPES.user
|
|
75
|
+
});
|
|
76
|
+
const { templatePartAreas, isLoading, hasTemplateParts } = useTemplatePartAreas();
|
|
77
|
+
const templatePartCounts = useMemo(() => {
|
|
78
|
+
const counts = { [TEMPLATE_PART_ALL_AREAS_CATEGORY]: 0 };
|
|
79
|
+
Object.entries(templatePartAreas).forEach(
|
|
80
|
+
([area, { templateParts }]) => {
|
|
81
|
+
const count = templateParts?.length || 0;
|
|
82
|
+
counts[area] = count;
|
|
83
|
+
counts[TEMPLATE_PART_ALL_AREAS_CATEGORY] += count;
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
return counts;
|
|
87
|
+
}, [templatePartAreas]);
|
|
88
|
+
const { patternCategories } = usePatternCategories();
|
|
89
|
+
const patternCounts = useMemo(() => {
|
|
90
|
+
const counts = {};
|
|
91
|
+
patternCategories.forEach((cat) => {
|
|
92
|
+
counts[cat.name] = cat.count;
|
|
93
|
+
});
|
|
94
|
+
return counts;
|
|
95
|
+
}, [patternCategories]);
|
|
96
|
+
const hasPatterns = patternCounts[PATTERN_DEFAULT_CATEGORY] > 0;
|
|
91
97
|
return /* @__PURE__ */ jsx(
|
|
92
98
|
SidebarNavigationScreen,
|
|
93
99
|
{
|
|
@@ -104,8 +110,10 @@ function SidebarNavigationScreenPatterns({ backPath }) {
|
|
|
104
110
|
/* @__PURE__ */ jsx(
|
|
105
111
|
CategoriesGroup,
|
|
106
112
|
{
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
templatePartViews,
|
|
114
|
+
patternViews,
|
|
115
|
+
templatePartCounts,
|
|
116
|
+
patternCounts,
|
|
109
117
|
currentCategory,
|
|
110
118
|
currentType: postType
|
|
111
119
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/sidebar-navigation-screen-patterns/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n} from '@wordpress/components';\nimport { getTemplatePartIcon } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport { file } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport CategoryItem from './category-item';\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_PART_ALL_AREAS_CATEGORY,\n} from '../../utils/constants';\nimport usePatternCategories from './use-pattern-categories';\nimport useTemplatePartAreas from './use-template-part-areas';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction CategoriesGroup( {\n\
|
|
5
|
-
"mappings": ";AAGA;AAAA,EACC,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,OAChB;AACP,SAAS,2BAA2B;AACpC,SAAS,UAAU;AACnB,SAAS,YAAY;AACrB,SAAS,eAAe,yBAAyB;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n} from '@wordpress/components';\nimport { getTemplatePartIcon } from '@wordpress/editor';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { file } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useViewConfig } from '@wordpress/views';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport CategoryItem from './category-item';\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_PART_ALL_AREAS_CATEGORY,\n} from '../../utils/constants';\nimport usePatternCategories from './use-pattern-categories';\nimport useTemplatePartAreas from './use-template-part-areas';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction CategoriesGroup( {\n\ttemplatePartViews,\n\tpatternViews,\n\ttemplatePartCounts,\n\tpatternCounts,\n\tcurrentCategory,\n\tcurrentType,\n} ) {\n\treturn (\n\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t{ templatePartViews?.map( ( view ) => (\n\t\t\t\t<CategoryItem\n\t\t\t\t\tkey={ view.slug }\n\t\t\t\t\tcount={ templatePartCounts[ view.slug ] }\n\t\t\t\t\ticon={ getTemplatePartIcon(\n\t\t\t\t\t\tview.slug === TEMPLATE_PART_ALL_AREAS_CATEGORY\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: view.slug\n\t\t\t\t\t) }\n\t\t\t\t\tlabel={ view.title }\n\t\t\t\t\tid={ view.slug }\n\t\t\t\t\ttype={ TEMPLATE_PART_POST_TYPE }\n\t\t\t\t\tisActive={\n\t\t\t\t\t\tcurrentCategory === view.slug &&\n\t\t\t\t\t\tcurrentType === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-patterns__divider\" />\n\t\t\t{ patternViews?.map( ( view ) => (\n\t\t\t\t<CategoryItem\n\t\t\t\t\tkey={ view.slug }\n\t\t\t\t\tcount={ patternCounts[ view.slug ] }\n\t\t\t\t\tlabel={ view.title }\n\t\t\t\t\ticon={ file }\n\t\t\t\t\tid={ view.slug }\n\t\t\t\t\ttype={ PATTERN_TYPES.user }\n\t\t\t\t\tisActive={\n\t\t\t\t\t\tcurrentCategory === `${ view.slug }` &&\n\t\t\t\t\t\tcurrentType === PATTERN_TYPES.user\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</ItemGroup>\n\t);\n}\n\nexport default function SidebarNavigationScreenPatterns( { backPath } ) {\n\tconst {\n\t\tquery: { postType = 'wp_block', categoryId },\n\t} = useLocation();\n\tconst currentCategory =\n\t\tcategoryId ||\n\t\t( postType === PATTERN_TYPES.user\n\t\t\t? PATTERN_DEFAULT_CATEGORY\n\t\t\t: TEMPLATE_PART_ALL_AREAS_CATEGORY );\n\n\tconst { view_list: templatePartViews } = useViewConfig( {\n\t\tkind: 'postType',\n\t\tname: TEMPLATE_PART_POST_TYPE,\n\t} );\n\tconst { view_list: patternViews } = useViewConfig( {\n\t\tkind: 'postType',\n\t\tname: PATTERN_TYPES.user,\n\t} );\n\n\tconst { templatePartAreas, isLoading, hasTemplateParts } =\n\t\tuseTemplatePartAreas();\n\tconst templatePartCounts = useMemo( () => {\n\t\tconst counts = { [ TEMPLATE_PART_ALL_AREAS_CATEGORY ]: 0 };\n\t\tObject.entries( templatePartAreas ).forEach(\n\t\t\t( [ area, { templateParts } ] ) => {\n\t\t\t\tconst count = templateParts?.length || 0;\n\t\t\t\tcounts[ area ] = count;\n\t\t\t\tcounts[ TEMPLATE_PART_ALL_AREAS_CATEGORY ] += count;\n\t\t\t}\n\t\t);\n\t\treturn counts;\n\t}, [ templatePartAreas ] );\n\tconst { patternCategories } = usePatternCategories();\n\tconst patternCounts = useMemo( () => {\n\t\tconst counts = {};\n\t\tpatternCategories.forEach( ( cat ) => {\n\t\t\tcounts[ cat.name ] = cat.count;\n\t\t} );\n\t\treturn counts;\n\t}, [ patternCategories ] );\n\n\tconst hasPatterns = patternCounts[ PATTERN_DEFAULT_CATEGORY ] > 0;\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tdescription={ __(\n\t\t\t\t'Manage what patterns are available when editing the site.'\n\t\t\t) }\n\t\t\tisRoot={ ! backPath }\n\t\t\tbackPath={ backPath }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && __( 'Loading items\u2026' ) }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! hasTemplateParts && ! hasPatterns && (\n\t\t\t\t\t\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t\t\t\t\t\t<Item>{ __( 'No items found' ) }</Item>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<CategoriesGroup\n\t\t\t\t\t\t\t\ttemplatePartViews={ templatePartViews }\n\t\t\t\t\t\t\t\tpatternViews={ patternViews }\n\t\t\t\t\t\t\t\ttemplatePartCounts={ templatePartCounts }\n\t\t\t\t\t\t\t\tpatternCounts={ patternCounts }\n\t\t\t\t\t\t\t\tcurrentCategory={ currentCategory }\n\t\t\t\t\t\t\t\tcurrentType={ postType }\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}\n\t\t/>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|