@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.
Files changed (96) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/page-patterns/index.cjs +7 -27
  3. package/build/components/page-patterns/index.cjs.map +2 -2
  4. package/build/components/page-templates/index-legacy.cjs +13 -6
  5. package/build/components/page-templates/index-legacy.cjs.map +2 -2
  6. package/build/components/post-list/index.cjs +15 -6
  7. package/build/components/post-list/index.cjs.map +2 -2
  8. package/build/components/post-list/quick-edit-modal.cjs +16 -48
  9. package/build/components/post-list/quick-edit-modal.cjs.map +2 -2
  10. package/build/components/sidebar-dataviews/index.cjs +37 -25
  11. package/build/components/sidebar-dataviews/index.cjs.map +3 -3
  12. package/build/components/sidebar-navigation-screen-patterns/index.cjs +55 -47
  13. package/build/components/sidebar-navigation-screen-patterns/index.cjs.map +2 -2
  14. package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs +33 -56
  15. package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs.map +3 -3
  16. package/build/components/site-editor-routes/home.cjs +8 -4
  17. package/build/components/site-editor-routes/home.cjs.map +2 -2
  18. package/build/components/site-editor-routes/navigation-item.cjs +13 -6
  19. package/build/components/site-editor-routes/navigation-item.cjs.map +2 -2
  20. package/build/components/site-editor-routes/navigation.cjs +9 -4
  21. package/build/components/site-editor-routes/navigation.cjs.map +2 -2
  22. package/build/components/site-editor-routes/page-item.cjs +13 -6
  23. package/build/components/site-editor-routes/page-item.cjs.map +2 -2
  24. package/build/components/site-editor-routes/pages.cjs +21 -7
  25. package/build/components/site-editor-routes/pages.cjs.map +3 -3
  26. package/build/components/site-editor-routes/stylebook.cjs +17 -2
  27. package/build/components/site-editor-routes/stylebook.cjs.map +2 -2
  28. package/build/components/site-editor-routes/template-item.cjs +13 -6
  29. package/build/components/site-editor-routes/template-item.cjs.map +2 -2
  30. package/build/components/site-editor-routes/templates.cjs +20 -7
  31. package/build/components/site-editor-routes/templates.cjs.map +3 -3
  32. package/build/components/site-editor-routes/utils.cjs +7 -2
  33. package/build/components/site-editor-routes/utils.cjs.map +2 -2
  34. package/build-module/components/page-patterns/index.mjs +8 -30
  35. package/build-module/components/page-patterns/index.mjs.map +2 -2
  36. package/build-module/components/page-templates/index-legacy.mjs +14 -11
  37. package/build-module/components/page-templates/index-legacy.mjs.map +2 -2
  38. package/build-module/components/post-list/index.mjs +16 -11
  39. package/build-module/components/post-list/index.mjs.map +2 -2
  40. package/build-module/components/post-list/quick-edit-modal.mjs +16 -48
  41. package/build-module/components/post-list/quick-edit-modal.mjs.map +2 -2
  42. package/build-module/components/sidebar-dataviews/index.mjs +45 -25
  43. package/build-module/components/sidebar-dataviews/index.mjs.map +2 -2
  44. package/build-module/components/sidebar-navigation-screen-patterns/index.mjs +55 -47
  45. package/build-module/components/sidebar-navigation-screen-patterns/index.mjs.map +2 -2
  46. package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs +41 -59
  47. package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs.map +2 -2
  48. package/build-module/components/site-editor-routes/home.mjs +10 -6
  49. package/build-module/components/site-editor-routes/home.mjs.map +2 -2
  50. package/build-module/components/site-editor-routes/navigation-item.mjs +14 -7
  51. package/build-module/components/site-editor-routes/navigation-item.mjs.map +2 -2
  52. package/build-module/components/site-editor-routes/navigation.mjs +10 -5
  53. package/build-module/components/site-editor-routes/navigation.mjs.map +2 -2
  54. package/build-module/components/site-editor-routes/page-item.mjs +14 -7
  55. package/build-module/components/site-editor-routes/page-item.mjs.map +2 -2
  56. package/build-module/components/site-editor-routes/pages.mjs +22 -11
  57. package/build-module/components/site-editor-routes/pages.mjs.map +2 -2
  58. package/build-module/components/site-editor-routes/stylebook.mjs +18 -3
  59. package/build-module/components/site-editor-routes/stylebook.mjs.map +2 -2
  60. package/build-module/components/site-editor-routes/template-item.mjs +14 -7
  61. package/build-module/components/site-editor-routes/template-item.mjs.map +2 -2
  62. package/build-module/components/site-editor-routes/templates.mjs +21 -11
  63. package/build-module/components/site-editor-routes/templates.mjs.map +2 -2
  64. package/build-module/components/site-editor-routes/utils.mjs +5 -1
  65. package/build-module/components/site-editor-routes/utils.mjs.map +2 -2
  66. package/build-style/style-rtl.css +60 -49
  67. package/build-style/style.css +60 -49
  68. package/package.json +46 -46
  69. package/src/components/page-patterns/index.js +9 -30
  70. package/src/components/page-templates/index-legacy.js +14 -11
  71. package/src/components/post-list/index.js +16 -10
  72. package/src/components/post-list/quick-edit-modal.js +19 -54
  73. package/src/components/post-list/style.scss +2 -0
  74. package/src/components/sidebar-dataviews/index.js +48 -26
  75. package/src/components/sidebar-dataviews/style.scss +0 -16
  76. package/src/components/sidebar-navigation-screen-patterns/index.js +62 -55
  77. package/src/components/sidebar-navigation-screen-templates-browse/content-legacy.js +44 -64
  78. package/src/components/site-editor-routes/home.js +9 -5
  79. package/src/components/site-editor-routes/navigation-item.js +13 -6
  80. package/src/components/site-editor-routes/navigation.js +9 -4
  81. package/src/components/site-editor-routes/page-item.js +13 -6
  82. package/src/components/site-editor-routes/pages.js +21 -10
  83. package/src/components/site-editor-routes/stylebook.js +12 -3
  84. package/src/components/site-editor-routes/template-item.js +13 -6
  85. package/src/components/site-editor-routes/templates.js +21 -10
  86. package/src/components/site-editor-routes/utils.js +12 -0
  87. package/build/components/post-list/view-utils.cjs +0 -202
  88. package/build/components/post-list/view-utils.cjs.map +0 -7
  89. package/build/components/sidebar-dataviews/dataview-item.cjs +0 -82
  90. package/build/components/sidebar-dataviews/dataview-item.cjs.map +0 -7
  91. package/build-module/components/post-list/view-utils.mjs +0 -182
  92. package/build-module/components/post-list/view-utils.mjs.map +0 -7
  93. package/build-module/components/sidebar-dataviews/dataview-item.mjs +0 -51
  94. package/build-module/components/sidebar-dataviews/dataview-item.mjs.map +0 -7
  95. package/src/components/post-list/view-utils.js +0 -187
  96. 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 defaultView = DEFAULT_VIEW;
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
- () => getActiveViewOverridesForTab(activeView),
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';\nimport {\n\tdefaultLayouts,\n\tDEFAULT_VIEW,\n\tgetActiveViewOverridesForTab,\n} from './view-utils';\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 defaultView = DEFAULT_VIEW;\n\tconst activeViewOverrides = useMemo(\n\t\t() => getActiveViewOverridesForTab( activeView ),\n\t\t[ 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\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/>\n\t\t\t\t) }\n\t\t</Page>\n\t);\n}\n"],
5
- "mappings": "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",
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({ postType, postId, closeModal }) {
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
- const allFields = [
74
- {
75
- id: "featured_media",
76
- layout: {
77
- type: "regular",
78
- labelPosition: "none"
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
- layout: {
116
- type: "panel"
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
- ) : allFields
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( { postType, postId, closeModal } ) {\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\tconst allFields = [\n\t\t\t{\n\t\t\t\tid: 'featured_media',\n\t\t\t\tlayout: {\n\t\t\t\t\ttype: 'regular',\n\t\t\t\t\tlabelPosition: 'none',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'post-content-info',\n\t\t\t\tlayout: { type: 'regular', labelPosition: 'none' },\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'status',\n\t\t\t\tlabel: __( 'Status' ),\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'status',\n\t\t\t\t\t\tlayout: { type: 'regular', labelPosition: 'none' },\n\t\t\t\t\t},\n\t\t\t\t\t'scheduled_date',\n\t\t\t\t\t'password',\n\t\t\t\t],\n\t\t\t},\n\t\t\t'author',\n\t\t\t'date',\n\t\t\t'slug',\n\t\t\t'parent',\n\t\t\t{\n\t\t\t\tid: 'discussion',\n\t\t\t\tlabel: __( 'Discussion' ),\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'comment_status',\n\t\t\t\t\t\tlayout: { type: 'regular', labelPosition: 'none' },\n\t\t\t\t\t},\n\t\t\t\t\t'ping_status',\n\t\t\t\t],\n\t\t\t},\n\t\t\t'template',\n\t\t];\n\n\t\treturn {\n\t\t\tlayout: {\n\t\t\t\ttype: 'panel',\n\t\t\t},\n\t\t\tfields: isBulk\n\t\t\t\t? allFields.filter( ( field ) =>\n\t\t\t\t\t\tfieldsWithBulkEditSupport.includes(\n\t\t\t\t\t\t\ttypeof field === 'string' ? field : field.id\n\t\t\t\t\t\t)\n\t\t\t\t )\n\t\t\t\t: allFields,\n\t\t};\n\t}, [ isBulk ] );\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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",
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 { useSelect } from "@wordpress/data";
5
- import { store as coreStore } from "@wordpress/core-data";
6
- import { useMemo } from "@wordpress/element";
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 DataViewItem from "./dataview-item.mjs";
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
- function DataViewsSidebarContent({ postType }) {
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 postTypeObject = useSelect(
17
- (select) => {
18
- const { getPostType } = select(coreStore);
19
- return getPostType(postType);
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: defaultViews.map((dataview) => {
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
- DataViewItem,
51
+ SidebarNavigationItem,
33
52
  {
34
- slug: dataview.slug,
35
- title: dataview.title,
36
- icon: dataview.icon,
37
- type: dataview.view.type,
38
- isActive: dataview.slug === activeView
53
+ icon,
54
+ to: addQueryArgs(path, {
55
+ activeView: slug
56
+ }),
57
+ "aria-current": isActive ? "true" : void 0,
58
+ children: view.title
39
59
  },
40
- dataview.slug
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 { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport DataViewItem from './dataview-item';\nimport { getDefaultViews } from '../post-list/view-utils';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function DataViewsSidebarContent( { postType } ) {\n\tconst {\n\t\tquery: { activeView = 'all' },\n\t} = useLocation();\n\tconst postTypeObject = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType } = select( coreStore );\n\t\t\treturn getPostType( postType );\n\t\t},\n\t\t[ postType ]\n\t);\n\tconst defaultViews = useMemo(\n\t\t() => getDefaultViews( postTypeObject ),\n\t\t[ postTypeObject ]\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{ defaultViews.map( ( dataview ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\t\tslug={ dataview.slug }\n\t\t\t\t\t\t\ttitle={ dataview.title }\n\t\t\t\t\t\t\ticon={ dataview.icon }\n\t\t\t\t\t\t\ttype={ dataview.view.type }\n\t\t\t\t\t\t\tisActive={ dataview.slug === activeView }\n\t\t\t\t\t\t/>\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,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AACnC,SAAS,eAAe;AAKxB,SAAS,cAAc;AACvB,OAAO,kBAAkB;AACzB,SAAS,uBAAuB;AAwB9B,mBAII,WAJJ;AAtBF,IAAM,EAAE,YAAY,IAAI,OAAQ,iBAAkB;AAEnC,SAAR,wBAA0C,EAAE,SAAS,GAAI;AAC/D,QAAM;AAAA,IACL,OAAO,EAAE,aAAa,MAAM;AAAA,EAC7B,IAAI,YAAY;AAChB,QAAM,iBAAiB;AAAA,IACtB,CAAE,WAAY;AACb,YAAM,EAAE,YAAY,IAAI,OAAQ,SAAU;AAC1C,aAAO,YAAa,QAAS;AAAA,IAC9B;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,eAAe;AAAA,IACpB,MAAM,gBAAiB,cAAe;AAAA,IACtC,CAAE,cAAe;AAAA,EAClB;AACA,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAEA,SACC,gCACC,8BAAC,aAAU,WAAU,+BAClB,uBAAa,IAAK,CAAE,aAAc;AACnC,WACC;AAAA,MAAC;AAAA;AAAA,QAEA,MAAO,SAAS;AAAA,QAChB,OAAQ,SAAS;AAAA,QACjB,MAAO,SAAS;AAAA,QAChB,MAAO,SAAS,KAAK;AAAA,QACrB,UAAW,SAAS,SAAS;AAAA;AAAA,MALvB,SAAS;AAAA,IAMhB;AAAA,EAEF,CAAE,GACH,GACD;AAEF;",
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
- templatePartAreas,
25
- patternCategories,
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: Object.values(templatePartAreas).map(({ templateParts }) => templateParts?.length || 0).reduce((acc, val) => acc + val, 0),
35
- icon: getTemplatePartIcon(),
36
- label: __("All template parts"),
37
- id: TEMPLATE_PART_ALL_AREAS_CATEGORY,
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 === TEMPLATE_PART_ALL_AREAS_CATEGORY && currentType === TEMPLATE_PART_POST_TYPE
44
+ isActive: currentCategory === view.slug && currentType === TEMPLATE_PART_POST_TYPE
40
45
  },
41
- "all"
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
- allPatterns && /* @__PURE__ */ jsx(
49
+ patternViews?.map((view) => /* @__PURE__ */ jsx(
59
50
  CategoryItem,
60
51
  {
61
- count: allPatterns.count,
62
- label: allPatterns.label,
52
+ count: patternCounts[view.slug],
53
+ label: view.title,
63
54
  icon: file,
64
- id: allPatterns.name,
55
+ id: view.slug,
65
56
  type: PATTERN_TYPES.user,
66
- isActive: currentCategory === `${allPatterns.name}` && currentType === PATTERN_TYPES.user
57
+ isActive: currentCategory === `${view.slug}` && currentType === PATTERN_TYPES.user
67
58
  },
68
- allPatterns.name
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 { templatePartAreas, hasTemplateParts, isLoading } = useTemplatePartAreas();
90
- const { patternCategories, hasPatterns } = usePatternCategories();
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
- templatePartAreas,
108
- patternCategories,
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\ttemplatePartAreas,\n\tpatternCategories,\n\tcurrentCategory,\n\tcurrentType,\n} ) {\n\tconst [ allPatterns, ...otherPatterns ] = patternCategories;\n\n\treturn (\n\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t<CategoryItem\n\t\t\t\tkey=\"all\"\n\t\t\t\tcount={ Object.values( templatePartAreas )\n\t\t\t\t\t.map( ( { templateParts } ) => templateParts?.length || 0 )\n\t\t\t\t\t.reduce( ( acc, val ) => acc + val, 0 ) }\n\t\t\t\ticon={ getTemplatePartIcon() } /* no name, so it provides the fallback icon */\n\t\t\t\tlabel={ __( 'All template parts' ) }\n\t\t\t\tid={ TEMPLATE_PART_ALL_AREAS_CATEGORY }\n\t\t\t\ttype={ TEMPLATE_PART_POST_TYPE }\n\t\t\t\tisActive={\n\t\t\t\t\tcurrentCategory === TEMPLATE_PART_ALL_AREAS_CATEGORY &&\n\t\t\t\t\tcurrentType === TEMPLATE_PART_POST_TYPE\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ Object.entries( templatePartAreas ).map(\n\t\t\t\t( [ area, { label, templateParts, icon } ] ) => (\n\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\tkey={ area }\n\t\t\t\t\t\tcount={ templateParts?.length }\n\t\t\t\t\t\ticon={ getTemplatePartIcon( icon ) }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tid={ area }\n\t\t\t\t\t\ttype={ TEMPLATE_PART_POST_TYPE }\n\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\tcurrentCategory === area &&\n\t\t\t\t\t\t\tcurrentType === TEMPLATE_PART_POST_TYPE\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\t<div className=\"edit-site-sidebar-navigation-screen-patterns__divider\" />\n\t\t\t{ allPatterns && (\n\t\t\t\t<CategoryItem\n\t\t\t\t\tkey={ allPatterns.name }\n\t\t\t\t\tcount={ allPatterns.count }\n\t\t\t\t\tlabel={ allPatterns.label }\n\t\t\t\t\ticon={ file }\n\t\t\t\t\tid={ allPatterns.name }\n\t\t\t\t\ttype={ PATTERN_TYPES.user }\n\t\t\t\t\tisActive={\n\t\t\t\t\t\tcurrentCategory === `${ allPatterns.name }` &&\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\t{ otherPatterns.map( ( category ) => (\n\t\t\t\t<CategoryItem\n\t\t\t\t\tkey={ category.name }\n\t\t\t\t\tcount={ category.count }\n\t\t\t\t\tlabel={ category.label }\n\t\t\t\t\ticon={ file }\n\t\t\t\t\tid={ category.name }\n\t\t\t\t\ttype={ PATTERN_TYPES.user }\n\t\t\t\t\tisActive={\n\t\t\t\t\t\tcurrentCategory === `${ category.name }` &&\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 { templatePartAreas, hasTemplateParts, isLoading } =\n\t\tuseTemplatePartAreas();\n\tconst { patternCategories, hasPatterns } = usePatternCategories();\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\ttemplatePartAreas={ templatePartAreas }\n\t\t\t\t\t\t\t\tpatternCategories={ patternCategories }\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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",
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
  }