@strapi/content-manager 5.43.0 → 5.45.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 (104) hide show
  1. package/dist/admin/components/Widgets.js +1 -1
  2. package/dist/admin/components/Widgets.js.map +1 -1
  3. package/dist/admin/components/Widgets.mjs +1 -1
  4. package/dist/admin/components/Widgets.mjs.map +1 -1
  5. package/dist/admin/hooks/useDocument.js +3 -2
  6. package/dist/admin/hooks/useDocument.js.map +1 -1
  7. package/dist/admin/hooks/useDocument.mjs +3 -2
  8. package/dist/admin/hooks/useDocument.mjs.map +1 -1
  9. package/dist/admin/hooks/useDocumentLayout.js +2 -2
  10. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  11. package/dist/admin/hooks/useDocumentLayout.mjs +2 -2
  12. package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -1
  13. package/dist/admin/hooks/usePersistentQueryParams.js +11 -5
  14. package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
  15. package/dist/admin/hooks/usePersistentQueryParams.mjs +12 -6
  16. package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -1
  17. package/dist/admin/index.js.map +1 -1
  18. package/dist/admin/index.mjs.map +1 -1
  19. package/dist/admin/pages/EditView/EditViewPage.js +5 -3
  20. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  21. package/dist/admin/pages/EditView/EditViewPage.mjs +5 -3
  22. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +1 -0
  24. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +1 -0
  26. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +1 -0
  28. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +1 -0
  30. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +2 -0
  32. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +2 -0
  34. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/utils/data.js +8 -0
  36. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  37. package/dist/admin/pages/EditView/utils/data.mjs +8 -0
  38. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  39. package/dist/admin/pages/ListView/ListViewPage.js +22 -5
  40. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  41. package/dist/admin/pages/ListView/ListViewPage.mjs +22 -5
  42. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  43. package/dist/admin/src/hooks/useDocument.d.ts +1 -1
  44. package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +3 -1
  45. package/dist/admin/src/index.d.ts +2 -1
  46. package/dist/admin/translations/cs.json.js +242 -8
  47. package/dist/admin/translations/cs.json.js.map +1 -1
  48. package/dist/admin/translations/cs.json.mjs +242 -9
  49. package/dist/admin/translations/cs.json.mjs.map +1 -1
  50. package/dist/server/controllers/collection-types.js +78 -1
  51. package/dist/server/controllers/collection-types.js.map +1 -1
  52. package/dist/server/controllers/collection-types.mjs +78 -1
  53. package/dist/server/controllers/collection-types.mjs.map +1 -1
  54. package/dist/server/controllers/validation/dimensions.js +17 -18
  55. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  56. package/dist/server/controllers/validation/dimensions.mjs +18 -19
  57. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  58. package/dist/server/controllers/validation/index.js +25 -23
  59. package/dist/server/controllers/validation/index.js.map +1 -1
  60. package/dist/server/controllers/validation/index.mjs +26 -24
  61. package/dist/server/controllers/validation/index.mjs.map +1 -1
  62. package/dist/server/controllers/validation/relations.js +21 -24
  63. package/dist/server/controllers/validation/relations.js.map +1 -1
  64. package/dist/server/controllers/validation/relations.mjs +22 -25
  65. package/dist/server/controllers/validation/relations.mjs.map +1 -1
  66. package/dist/server/history/controllers/validation/history-version.js +4 -24
  67. package/dist/server/history/controllers/validation/history-version.js.map +1 -1
  68. package/dist/server/history/controllers/validation/history-version.mjs +5 -6
  69. package/dist/server/history/controllers/validation/history-version.mjs.map +1 -1
  70. package/dist/server/history/services/lifecycles.js +1 -1
  71. package/dist/server/history/services/lifecycles.js.map +1 -1
  72. package/dist/server/history/services/lifecycles.mjs +1 -1
  73. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  74. package/dist/server/homepage/controllers/homepage.js +6 -26
  75. package/dist/server/homepage/controllers/homepage.js.map +1 -1
  76. package/dist/server/homepage/controllers/homepage.mjs +7 -8
  77. package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
  78. package/dist/server/preview/controllers/validation/preview.js +6 -26
  79. package/dist/server/preview/controllers/validation/preview.js.map +1 -1
  80. package/dist/server/preview/controllers/validation/preview.mjs +7 -8
  81. package/dist/server/preview/controllers/validation/preview.mjs.map +1 -1
  82. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  83. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  84. package/dist/server/src/controllers/validation/index.d.ts +16 -15
  85. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  86. package/dist/server/src/controllers/validation/relations.d.ts +17 -2
  87. package/dist/server/src/controllers/validation/relations.d.ts.map +1 -1
  88. package/dist/server/src/history/controllers/validation/history-version.d.ts +3 -1
  89. package/dist/server/src/history/controllers/validation/history-version.d.ts.map +1 -1
  90. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  91. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  92. package/dist/server/src/validation/policies/hasPermissions.d.ts +4 -1
  93. package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
  94. package/dist/server/src/validation/zod.d.ts +34 -0
  95. package/dist/server/src/validation/zod.d.ts.map +1 -0
  96. package/dist/server/validation/policies/hasPermissions.js +4 -4
  97. package/dist/server/validation/policies/hasPermissions.js.map +1 -1
  98. package/dist/server/validation/policies/hasPermissions.mjs +5 -5
  99. package/dist/server/validation/policies/hasPermissions.mjs.map +1 -1
  100. package/dist/server/validation/zod.js +60 -0
  101. package/dist/server/validation/zod.js.map +1 -0
  102. package/dist/server/validation/zod.mjs +56 -0
  103. package/dist/server/validation/zod.mjs.map +1 -0
  104. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ListViewPage.js","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useScopedPersistentState,\n useRBAC,\n Layouts,\n useTable,\n useIsMobile,\n useIsDesktop,\n useClipboard,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n IconButton,\n} from '@strapi/design-system';\nimport { Duplicate, Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport {\n type PersistentQueryConfig,\n usePersistentPartialQueryParams,\n} from '../../hooks/usePersistentQueryParams';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { listViewFilters as Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const isMobile = useIsMobile();\n const isDesktop = useIsDesktop();\n\n const handleCopyDocumentId = React.useCallback(\n async (e: React.MouseEvent, documentId: string | undefined) => {\n e.stopPropagation();\n if (!documentId) return;\n const didCopy = await copy(documentId);\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.actions.copy-documentId.success',\n defaultMessage: 'Document ID copied to clipboard',\n }),\n });\n }\n },\n [copy, formatMessage, toggleNotification]\n );\n\n const { collectionType, model, schema } = useDoc();\n const { list, listViewConversionContext } = useDocumentLayout(model);\n\n const persistentQueryConfigs: PersistentQueryConfig = React.useMemo(\n () => ({\n [`STRAPI_LIST_VIEW_SETTINGS:${model}`]: {\n paths: ['sort', 'filters', 'pageSize'],\n scoped: true,\n },\n STRAPI_LOCALE: {\n paths: ['plugins.i18n.locale'],\n scoped: false,\n },\n }),\n [model]\n );\n usePersistentPartialQueryParams(persistentQueryConfigs);\n\n const [displayedHeaderNames, setDisplayedHeaderNames] = useScopedPersistentState<string[] | null>(\n `STRAPI_LIST_VIEW_DISPLAYED_HEADERS:${model}`,\n null\n );\n\n const mapDisplayedHeaders = (headers: ListFieldLayout[]) => headers.map((header) => header.name);\n\n const displayedHeaders: ListFieldLayout[] = React.useMemo(() => {\n if (\n !displayedHeaderNames ||\n !list.metadatas ||\n Object.keys(list.metadatas).length <= 0 ||\n !schema?.attributes ||\n !listViewConversionContext\n )\n return [];\n\n return convertListLayoutToFieldLayouts(\n displayedHeaderNames,\n schema.attributes,\n list.metadatas,\n {\n configurations: listViewConversionContext.componentConfigurations,\n schemas: listViewConversionContext.componentSchemas,\n },\n listViewConversionContext.contentTypeSchemas\n );\n }, [displayedHeaderNames, schema, list, listViewConversionContext]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaderNames(headers);\n };\n\n const handleResetHeaders = () => {\n setDisplayedHeaderNames(mapDisplayedHeaders(list.layout));\n };\n\n /**\n * If the persistent displayedHeaders are not yet initialized, set them to list.layout\n */\n React.useEffect(() => {\n // wait for list.layout to be loaded\n if (list.layout.length === 0) {\n return;\n }\n\n if (!displayedHeaderNames) {\n handleResetHeaders();\n }\n }, [list.layout]);\n\n React.useEffect(() => {\n if (!schema?.attributes) return;\n if (!displayedHeaderNames || displayedHeaderNames.length === 0) return;\n if (schema.uid !== model) return;\n\n const allowedDisplayHeaders = displayedHeaderNames.filter((header) =>\n Object.keys(schema?.attributes).includes(header)\n );\n\n if (allowedDisplayHeaders.length !== displayedHeaderNames.length) {\n handleSetHeaders(allowedDisplayHeaders);\n }\n }, [displayedHeaderNames]);\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasAppliedFilters = Boolean((query as any)?.filters?.$and?.length);\n\n const { data, error, isLoading, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n const isEmptyState = !isFetching && results.length === 0;\n\n const endActions = (\n <>\n {isMobile && list.settings.filterable && schema && <Filters.Trigger />}\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={handleResetHeaders}\n headers={displayedHeaderNames ?? []}\n />\n </>\n );\n\n const searchInput = (\n <>\n {list.settings.searchable && (\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n </>\n );\n\n const startActions = (\n <>\n {searchInput}\n {!isMobile && list.settings.filterable && schema && (\n <>\n <Filters.Trigger />\n <Filters.List />\n </>\n )}\n </>\n );\n\n const actions =\n list.settings.filterable && schema ? (\n <Filters.Root schema={schema}>\n <Layouts.Action\n endActions={endActions}\n startActions={startActions}\n bottomActions={isMobile && hasAppliedFilters ? <Filters.List /> : null}\n />\n <Filters.Popover />\n </Filters.Root>\n ) : (\n <Layouts.Action endActions={endActions} startActions={startActions} />\n );\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n {actions}\n <Layouts.Content>\n {isEmptyState ? (\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={\n canCreate && (\n <Box>\n <CreateButton variant=\"secondary\" />\n </Box>\n )\n }\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n ) : (\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (header.name === 'documentId') {\n return (\n <Table.Cell key={header.name}>\n <Flex gap={2} alignItems=\"center\" width=\"100%\" minWidth={0}>\n <Typography textColor=\"neutral800\" maxWidth=\"30rem\" ellipsis>\n {row.documentId || '-'}\n </Typography>\n {row.documentId && (\n <IconButton\n variant=\"ghost\"\n size=\"S\"\n label={formatMessage({\n id: 'content-manager.actions.copy-documentId.label',\n defaultMessage: 'Copy',\n })}\n onClick={(e) => handleCopyDocumentId(e, row.documentId)}\n >\n <Duplicate />\n </IconButton>\n )}\n </Flex>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n )}\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n fullWidth\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage key={slug} />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","copy","useClipboard","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","isMobile","useIsMobile","useIsDesktop","handleCopyDocumentId","React","useCallback","e","documentId","stopPropagation","didCopy","type","message","id","defaultMessage","collectionType","model","schema","useDoc","list","listViewConversionContext","useDocumentLayout","persistentQueryConfigs","useMemo","paths","scoped","STRAPI_LOCALE","usePersistentPartialQueryParams","displayedHeaderNames","setDisplayedHeaderNames","useScopedPersistentState","mapDisplayedHeaders","headers","map","header","name","displayedHeaders","metadatas","Object","keys","length","attributes","convertListLayoutToFieldLayouts","configurations","componentConfigurations","schemas","componentSchemas","contentTypeSchemas","handleSetHeaders","handleResetHeaders","layout","useEffect","uid","allowedDisplayHeaders","filter","includes","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","buildValidParams","hasAppliedFilters","Boolean","filters","$and","data","error","isLoading","isFetching","useGetAllDocumentsQuery","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","translation","label","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","isEmptyState","endActions","_jsxs","_Fragment","filterable","Filters","Trigger","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","searchInput","SearchInput","target","placeholder","trackedEvent","startActions","List","actions","Root","Action","bottomActions","Popover","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","rows","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","split","Typography","textColor","getDisplayName","minWidth","ellipsis","IconButton","size","Duplicate","CellContent","rowId","ActionsCell","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","usePrev","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","fullWidth","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"ListViewPage.js","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useScopedPersistentState,\n useRBAC,\n Layouts,\n useTable,\n useIsMobile,\n useIsDesktop,\n useClipboard,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n IconButton,\n} from '@strapi/design-system';\nimport { Duplicate, Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport {\n type PersistentQueryConfig,\n usePersistentPartialQueryParams,\n} from '../../hooks/usePersistentQueryParams';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { listViewFilters as Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const isMobile = useIsMobile();\n const isDesktop = useIsDesktop();\n\n const handleCopyDocumentId = React.useCallback(\n async (e: React.MouseEvent, documentId: string | undefined) => {\n e.stopPropagation();\n if (!documentId) return;\n const didCopy = await copy(documentId);\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.actions.copy-documentId.success',\n defaultMessage: 'Document ID copied to clipboard',\n }),\n });\n }\n },\n [copy, formatMessage, toggleNotification]\n );\n\n const { collectionType, model, schema } = useDoc();\n const { list, listViewConversionContext, isLoading: isLoadingLayout } = useDocumentLayout(model);\n\n const persistentQueryConfigs: PersistentQueryConfig = React.useMemo(\n () => ({\n [`STRAPI_LIST_VIEW_SETTINGS:${model}`]: {\n paths: ['sort', 'filters', 'pageSize'],\n scoped: true,\n },\n STRAPI_LOCALE: {\n paths: ['plugins.i18n.locale'],\n scoped: false,\n },\n }),\n [model]\n );\n const { isHydrated } = usePersistentPartialQueryParams(persistentQueryConfigs);\n\n const [displayedHeaderNames, setDisplayedHeaderNames] = useScopedPersistentState<string[] | null>(\n `STRAPI_LIST_VIEW_DISPLAYED_HEADERS:${model}`,\n null\n );\n\n const mapDisplayedHeaders = (headers: ListFieldLayout[]) => headers.map((header) => header.name);\n\n const displayedHeaders: ListFieldLayout[] = React.useMemo(() => {\n if (\n !displayedHeaderNames ||\n !list.metadatas ||\n Object.keys(list.metadatas).length <= 0 ||\n !schema?.attributes ||\n !listViewConversionContext\n )\n return [];\n\n return convertListLayoutToFieldLayouts(\n displayedHeaderNames,\n schema.attributes,\n list.metadatas,\n {\n configurations: listViewConversionContext.componentConfigurations,\n schemas: listViewConversionContext.componentSchemas,\n },\n listViewConversionContext.contentTypeSchemas\n );\n }, [displayedHeaderNames, schema, list, listViewConversionContext]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaderNames(headers);\n };\n\n const handleResetHeaders = () => {\n setDisplayedHeaderNames(mapDisplayedHeaders(list.layout));\n };\n\n /**\n * If the persistent displayedHeaders are not yet initialized, set them to list.layout\n */\n React.useEffect(() => {\n // wait for list.layout to be loaded\n if (list.layout.length === 0) {\n return;\n }\n\n if (!displayedHeaderNames) {\n handleResetHeaders();\n }\n }, [list.layout]);\n\n React.useEffect(() => {\n if (!schema?.attributes) return;\n if (!displayedHeaderNames || displayedHeaderNames.length === 0) return;\n if (schema.uid !== model) return;\n\n const allowedDisplayHeaders = displayedHeaderNames.filter((header) =>\n Object.keys(schema?.attributes).includes(header)\n );\n\n if (allowedDisplayHeaders.length !== displayedHeaderNames.length) {\n handleSetHeaders(allowedDisplayHeaders);\n }\n }, [displayedHeaderNames]);\n\n const [{ query }, setQuery] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasAppliedFilters = Boolean((query as any)?.filters?.$and?.length);\n const hasStatusFilter = Boolean(\n (query as any)?.filters?.$and?.some((f: any) => f?.__status?.$eq != null)\n );\n\n // If a __status filter becomes active while sort=status:* is in the URL, strip the status sort.\n React.useEffect(() => {\n if (\n hasStatusFilter &&\n typeof query.sort === 'string' &&\n /(?:^|,)\\s*status:/i.test(query.sort)\n ) {\n const cleaned = query.sort\n .split(',')\n .map((s) => s.trim())\n .filter((s) => !/^status:(ASC|DESC)$/i.test(s))\n .join(',');\n setQuery({ sort: cleaned || undefined }, 'push', true);\n }\n }, [hasStatusFilter, query.sort, setQuery]);\n\n const { data, error, isLoading, isFetching } = useGetAllDocumentsQuery(\n {\n model,\n params,\n },\n { skip: isLoadingLayout || !isHydrated }\n );\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: !hasStatusFilter,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n hasStatusFilter,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isLoadingLayout || !isHydrated || isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n const isEmptyState = !isFetching && results.length === 0;\n\n const endActions = (\n <>\n {isMobile && list.settings.filterable && schema && <Filters.Trigger />}\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={handleResetHeaders}\n headers={displayedHeaderNames ?? []}\n />\n </>\n );\n\n const searchInput = (\n <>\n {list.settings.searchable && (\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n </>\n );\n\n const startActions = (\n <>\n {searchInput}\n {!isMobile && list.settings.filterable && schema && (\n <>\n <Filters.Trigger />\n <Filters.List />\n </>\n )}\n </>\n );\n\n const actions =\n list.settings.filterable && schema ? (\n <Filters.Root schema={schema}>\n <Layouts.Action\n endActions={endActions}\n startActions={startActions}\n bottomActions={isMobile && hasAppliedFilters ? <Filters.List /> : null}\n />\n <Filters.Popover />\n </Filters.Root>\n ) : (\n <Layouts.Action endActions={endActions} startActions={startActions} />\n );\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n {actions}\n <Layouts.Content>\n {isEmptyState ? (\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={\n canCreate && (\n <Box>\n <CreateButton variant=\"secondary\" />\n </Box>\n )\n }\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n ) : (\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (header.name === 'documentId') {\n return (\n <Table.Cell key={header.name}>\n <Flex gap={2} alignItems=\"center\" width=\"100%\" minWidth={0}>\n <Typography textColor=\"neutral800\" maxWidth=\"30rem\" ellipsis>\n {row.documentId || '-'}\n </Typography>\n {row.documentId && (\n <IconButton\n variant=\"ghost\"\n size=\"S\"\n label={formatMessage({\n id: 'content-manager.actions.copy-documentId.label',\n defaultMessage: 'Copy',\n })}\n onClick={(e) => handleCopyDocumentId(e, row.documentId)}\n >\n <Duplicate />\n </IconButton>\n )}\n </Flex>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n )}\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n fullWidth\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage key={slug} />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","copy","useClipboard","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","isMobile","useIsMobile","useIsDesktop","handleCopyDocumentId","React","useCallback","e","documentId","stopPropagation","didCopy","type","message","id","defaultMessage","collectionType","model","schema","useDoc","list","listViewConversionContext","isLoading","isLoadingLayout","useDocumentLayout","persistentQueryConfigs","useMemo","paths","scoped","STRAPI_LOCALE","isHydrated","usePersistentPartialQueryParams","displayedHeaderNames","setDisplayedHeaderNames","useScopedPersistentState","mapDisplayedHeaders","headers","map","header","name","displayedHeaders","metadatas","Object","keys","length","attributes","convertListLayoutToFieldLayouts","configurations","componentConfigurations","schemas","componentSchemas","contentTypeSchemas","handleSetHeaders","handleResetHeaders","layout","useEffect","uid","allowedDisplayHeaders","filter","includes","query","setQuery","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","buildValidParams","hasAppliedFilters","Boolean","filters","$and","hasStatusFilter","some","f","__status","$eq","test","cleaned","split","s","trim","join","undefined","data","error","isFetching","useGetAllDocumentsQuery","skip","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","translation","label","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","isEmptyState","endActions","_jsxs","_Fragment","filterable","Filters","Trigger","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","searchInput","SearchInput","target","placeholder","trackedEvent","startActions","List","actions","Root","Action","bottomActions","Popover","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","rows","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","Typography","textColor","getDisplayName","minWidth","ellipsis","IconButton","size","Duplicate","CellContent","rowId","ActionsCell","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","usePrev","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","fullWidth","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -61,7 +61,7 @@ const ListViewPage = ()=>{
61
61
  toggleNotification
62
62
  ]);
63
63
  const { collectionType, model, schema } = useDoc();
64
- const { list, listViewConversionContext } = useDocumentLayout(model);
64
+ const { list, listViewConversionContext, isLoading: isLoadingLayout } = useDocumentLayout(model);
65
65
  const persistentQueryConfigs = React.useMemo(()=>({
66
66
  [`STRAPI_LIST_VIEW_SETTINGS:${model}`]: {
67
67
  paths: [
@@ -80,7 +80,7 @@ const ListViewPage = ()=>{
80
80
  }), [
81
81
  model
82
82
  ]);
83
- usePersistentPartialQueryParams(persistentQueryConfigs);
83
+ const { isHydrated } = usePersistentPartialQueryParams(persistentQueryConfigs);
84
84
  const [displayedHeaderNames, setDisplayedHeaderNames] = useScopedPersistentState(`STRAPI_LIST_VIEW_DISPLAYED_HEADERS:${model}`, null);
85
85
  const mapDisplayedHeaders = (headers)=>headers.map((header)=>header.name);
86
86
  const displayedHeaders = React.useMemo(()=>{
@@ -125,7 +125,7 @@ const ListViewPage = ()=>{
125
125
  }, [
126
126
  displayedHeaderNames
127
127
  ]);
128
- const [{ query }] = useQueryParams({
128
+ const [{ query }, setQuery] = useQueryParams({
129
129
  page: '1',
130
130
  pageSize: list.settings.pageSize.toString(),
131
131
  sort: list.settings.defaultSortBy ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}` : ''
@@ -134,9 +134,25 @@ const ListViewPage = ()=>{
134
134
  query
135
135
  ]);
136
136
  const hasAppliedFilters = Boolean(query?.filters?.$and?.length);
137
+ const hasStatusFilter = Boolean(query?.filters?.$and?.some((f)=>f?.__status?.$eq != null));
138
+ // If a __status filter becomes active while sort=status:* is in the URL, strip the status sort.
139
+ React.useEffect(()=>{
140
+ if (hasStatusFilter && typeof query.sort === 'string' && /(?:^|,)\s*status:/i.test(query.sort)) {
141
+ const cleaned = query.sort.split(',').map((s)=>s.trim()).filter((s)=>!/^status:(ASC|DESC)$/i.test(s)).join(',');
142
+ setQuery({
143
+ sort: cleaned || undefined
144
+ }, 'push', true);
145
+ }
146
+ }, [
147
+ hasStatusFilter,
148
+ query.sort,
149
+ setQuery
150
+ ]);
137
151
  const { data, error, isLoading, isFetching } = useGetAllDocumentsQuery({
138
152
  model,
139
153
  params
154
+ }, {
155
+ skip: isLoadingLayout || !isHydrated
140
156
  });
141
157
  /**
142
158
  * If the API returns an error, display a notification
@@ -208,19 +224,20 @@ const ListViewPage = ()=>{
208
224
  defaultMessage: 'status'
209
225
  }),
210
226
  searchable: false,
211
- sortable: false
227
+ sortable: !hasStatusFilter
212
228
  });
213
229
  }
214
230
  return formattedHeaders;
215
231
  }, [
216
232
  displayedHeaders,
217
233
  formatMessage,
234
+ hasStatusFilter,
218
235
  list,
219
236
  runHookWaterfall,
220
237
  schema?.options?.draftAndPublish,
221
238
  model
222
239
  ]);
223
- if (isLoading) {
240
+ if (isLoadingLayout || !isHydrated || isLoading) {
224
241
  return /*#__PURE__*/ jsx(Page.Loading, {});
225
242
  }
226
243
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ListViewPage.mjs","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useScopedPersistentState,\n useRBAC,\n Layouts,\n useTable,\n useIsMobile,\n useIsDesktop,\n useClipboard,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n IconButton,\n} from '@strapi/design-system';\nimport { Duplicate, Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport {\n type PersistentQueryConfig,\n usePersistentPartialQueryParams,\n} from '../../hooks/usePersistentQueryParams';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { listViewFilters as Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const isMobile = useIsMobile();\n const isDesktop = useIsDesktop();\n\n const handleCopyDocumentId = React.useCallback(\n async (e: React.MouseEvent, documentId: string | undefined) => {\n e.stopPropagation();\n if (!documentId) return;\n const didCopy = await copy(documentId);\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.actions.copy-documentId.success',\n defaultMessage: 'Document ID copied to clipboard',\n }),\n });\n }\n },\n [copy, formatMessage, toggleNotification]\n );\n\n const { collectionType, model, schema } = useDoc();\n const { list, listViewConversionContext } = useDocumentLayout(model);\n\n const persistentQueryConfigs: PersistentQueryConfig = React.useMemo(\n () => ({\n [`STRAPI_LIST_VIEW_SETTINGS:${model}`]: {\n paths: ['sort', 'filters', 'pageSize'],\n scoped: true,\n },\n STRAPI_LOCALE: {\n paths: ['plugins.i18n.locale'],\n scoped: false,\n },\n }),\n [model]\n );\n usePersistentPartialQueryParams(persistentQueryConfigs);\n\n const [displayedHeaderNames, setDisplayedHeaderNames] = useScopedPersistentState<string[] | null>(\n `STRAPI_LIST_VIEW_DISPLAYED_HEADERS:${model}`,\n null\n );\n\n const mapDisplayedHeaders = (headers: ListFieldLayout[]) => headers.map((header) => header.name);\n\n const displayedHeaders: ListFieldLayout[] = React.useMemo(() => {\n if (\n !displayedHeaderNames ||\n !list.metadatas ||\n Object.keys(list.metadatas).length <= 0 ||\n !schema?.attributes ||\n !listViewConversionContext\n )\n return [];\n\n return convertListLayoutToFieldLayouts(\n displayedHeaderNames,\n schema.attributes,\n list.metadatas,\n {\n configurations: listViewConversionContext.componentConfigurations,\n schemas: listViewConversionContext.componentSchemas,\n },\n listViewConversionContext.contentTypeSchemas\n );\n }, [displayedHeaderNames, schema, list, listViewConversionContext]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaderNames(headers);\n };\n\n const handleResetHeaders = () => {\n setDisplayedHeaderNames(mapDisplayedHeaders(list.layout));\n };\n\n /**\n * If the persistent displayedHeaders are not yet initialized, set them to list.layout\n */\n React.useEffect(() => {\n // wait for list.layout to be loaded\n if (list.layout.length === 0) {\n return;\n }\n\n if (!displayedHeaderNames) {\n handleResetHeaders();\n }\n }, [list.layout]);\n\n React.useEffect(() => {\n if (!schema?.attributes) return;\n if (!displayedHeaderNames || displayedHeaderNames.length === 0) return;\n if (schema.uid !== model) return;\n\n const allowedDisplayHeaders = displayedHeaderNames.filter((header) =>\n Object.keys(schema?.attributes).includes(header)\n );\n\n if (allowedDisplayHeaders.length !== displayedHeaderNames.length) {\n handleSetHeaders(allowedDisplayHeaders);\n }\n }, [displayedHeaderNames]);\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasAppliedFilters = Boolean((query as any)?.filters?.$and?.length);\n\n const { data, error, isLoading, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n const isEmptyState = !isFetching && results.length === 0;\n\n const endActions = (\n <>\n {isMobile && list.settings.filterable && schema && <Filters.Trigger />}\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={handleResetHeaders}\n headers={displayedHeaderNames ?? []}\n />\n </>\n );\n\n const searchInput = (\n <>\n {list.settings.searchable && (\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n </>\n );\n\n const startActions = (\n <>\n {searchInput}\n {!isMobile && list.settings.filterable && schema && (\n <>\n <Filters.Trigger />\n <Filters.List />\n </>\n )}\n </>\n );\n\n const actions =\n list.settings.filterable && schema ? (\n <Filters.Root schema={schema}>\n <Layouts.Action\n endActions={endActions}\n startActions={startActions}\n bottomActions={isMobile && hasAppliedFilters ? <Filters.List /> : null}\n />\n <Filters.Popover />\n </Filters.Root>\n ) : (\n <Layouts.Action endActions={endActions} startActions={startActions} />\n );\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n {actions}\n <Layouts.Content>\n {isEmptyState ? (\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={\n canCreate && (\n <Box>\n <CreateButton variant=\"secondary\" />\n </Box>\n )\n }\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n ) : (\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (header.name === 'documentId') {\n return (\n <Table.Cell key={header.name}>\n <Flex gap={2} alignItems=\"center\" width=\"100%\" minWidth={0}>\n <Typography textColor=\"neutral800\" maxWidth=\"30rem\" ellipsis>\n {row.documentId || '-'}\n </Typography>\n {row.documentId && (\n <IconButton\n variant=\"ghost\"\n size=\"S\"\n label={formatMessage({\n id: 'content-manager.actions.copy-documentId.label',\n defaultMessage: 'Copy',\n })}\n onClick={(e) => handleCopyDocumentId(e, row.documentId)}\n >\n <Duplicate />\n </IconButton>\n )}\n </Flex>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n )}\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n fullWidth\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage key={slug} />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","copy","useClipboard","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","isMobile","useIsMobile","useIsDesktop","handleCopyDocumentId","React","useCallback","e","documentId","stopPropagation","didCopy","type","message","id","defaultMessage","collectionType","model","schema","useDoc","list","listViewConversionContext","useDocumentLayout","persistentQueryConfigs","useMemo","paths","scoped","STRAPI_LOCALE","usePersistentPartialQueryParams","displayedHeaderNames","setDisplayedHeaderNames","useScopedPersistentState","mapDisplayedHeaders","headers","map","header","name","displayedHeaders","metadatas","Object","keys","length","attributes","convertListLayoutToFieldLayouts","configurations","componentConfigurations","schemas","componentSchemas","contentTypeSchemas","handleSetHeaders","handleResetHeaders","layout","useEffect","uid","allowedDisplayHeaders","filter","includes","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","buildValidParams","hasAppliedFilters","Boolean","filters","$and","data","error","isLoading","isFetching","useGetAllDocumentsQuery","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","translation","label","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","isEmptyState","endActions","_jsxs","_Fragment","filterable","Filters","Trigger","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","searchInput","SearchInput","target","placeholder","trackedEvent","startActions","List","actions","Root","Action","bottomActions","Popover","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","rows","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","split","Typography","textColor","getDisplayName","minWidth","ellipsis","IconButton","size","Duplicate","CellContent","rowId","ActionsCell","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","usePrev","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","fullWidth","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"ListViewPage.mjs","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useScopedPersistentState,\n useRBAC,\n Layouts,\n useTable,\n useIsMobile,\n useIsDesktop,\n useClipboard,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n IconButton,\n} from '@strapi/design-system';\nimport { Duplicate, Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport {\n type PersistentQueryConfig,\n usePersistentPartialQueryParams,\n} from '../../hooks/usePersistentQueryParams';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { listViewFilters as Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const isMobile = useIsMobile();\n const isDesktop = useIsDesktop();\n\n const handleCopyDocumentId = React.useCallback(\n async (e: React.MouseEvent, documentId: string | undefined) => {\n e.stopPropagation();\n if (!documentId) return;\n const didCopy = await copy(documentId);\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.actions.copy-documentId.success',\n defaultMessage: 'Document ID copied to clipboard',\n }),\n });\n }\n },\n [copy, formatMessage, toggleNotification]\n );\n\n const { collectionType, model, schema } = useDoc();\n const { list, listViewConversionContext, isLoading: isLoadingLayout } = useDocumentLayout(model);\n\n const persistentQueryConfigs: PersistentQueryConfig = React.useMemo(\n () => ({\n [`STRAPI_LIST_VIEW_SETTINGS:${model}`]: {\n paths: ['sort', 'filters', 'pageSize'],\n scoped: true,\n },\n STRAPI_LOCALE: {\n paths: ['plugins.i18n.locale'],\n scoped: false,\n },\n }),\n [model]\n );\n const { isHydrated } = usePersistentPartialQueryParams(persistentQueryConfigs);\n\n const [displayedHeaderNames, setDisplayedHeaderNames] = useScopedPersistentState<string[] | null>(\n `STRAPI_LIST_VIEW_DISPLAYED_HEADERS:${model}`,\n null\n );\n\n const mapDisplayedHeaders = (headers: ListFieldLayout[]) => headers.map((header) => header.name);\n\n const displayedHeaders: ListFieldLayout[] = React.useMemo(() => {\n if (\n !displayedHeaderNames ||\n !list.metadatas ||\n Object.keys(list.metadatas).length <= 0 ||\n !schema?.attributes ||\n !listViewConversionContext\n )\n return [];\n\n return convertListLayoutToFieldLayouts(\n displayedHeaderNames,\n schema.attributes,\n list.metadatas,\n {\n configurations: listViewConversionContext.componentConfigurations,\n schemas: listViewConversionContext.componentSchemas,\n },\n listViewConversionContext.contentTypeSchemas\n );\n }, [displayedHeaderNames, schema, list, listViewConversionContext]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaderNames(headers);\n };\n\n const handleResetHeaders = () => {\n setDisplayedHeaderNames(mapDisplayedHeaders(list.layout));\n };\n\n /**\n * If the persistent displayedHeaders are not yet initialized, set them to list.layout\n */\n React.useEffect(() => {\n // wait for list.layout to be loaded\n if (list.layout.length === 0) {\n return;\n }\n\n if (!displayedHeaderNames) {\n handleResetHeaders();\n }\n }, [list.layout]);\n\n React.useEffect(() => {\n if (!schema?.attributes) return;\n if (!displayedHeaderNames || displayedHeaderNames.length === 0) return;\n if (schema.uid !== model) return;\n\n const allowedDisplayHeaders = displayedHeaderNames.filter((header) =>\n Object.keys(schema?.attributes).includes(header)\n );\n\n if (allowedDisplayHeaders.length !== displayedHeaderNames.length) {\n handleSetHeaders(allowedDisplayHeaders);\n }\n }, [displayedHeaderNames]);\n\n const [{ query }, setQuery] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasAppliedFilters = Boolean((query as any)?.filters?.$and?.length);\n const hasStatusFilter = Boolean(\n (query as any)?.filters?.$and?.some((f: any) => f?.__status?.$eq != null)\n );\n\n // If a __status filter becomes active while sort=status:* is in the URL, strip the status sort.\n React.useEffect(() => {\n if (\n hasStatusFilter &&\n typeof query.sort === 'string' &&\n /(?:^|,)\\s*status:/i.test(query.sort)\n ) {\n const cleaned = query.sort\n .split(',')\n .map((s) => s.trim())\n .filter((s) => !/^status:(ASC|DESC)$/i.test(s))\n .join(',');\n setQuery({ sort: cleaned || undefined }, 'push', true);\n }\n }, [hasStatusFilter, query.sort, setQuery]);\n\n const { data, error, isLoading, isFetching } = useGetAllDocumentsQuery(\n {\n model,\n params,\n },\n { skip: isLoadingLayout || !isHydrated }\n );\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: !hasStatusFilter,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n hasStatusFilter,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isLoadingLayout || !isHydrated || isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n const isEmptyState = !isFetching && results.length === 0;\n\n const endActions = (\n <>\n {isMobile && list.settings.filterable && schema && <Filters.Trigger />}\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={handleResetHeaders}\n headers={displayedHeaderNames ?? []}\n />\n </>\n );\n\n const searchInput = (\n <>\n {list.settings.searchable && (\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n </>\n );\n\n const startActions = (\n <>\n {searchInput}\n {!isMobile && list.settings.filterable && schema && (\n <>\n <Filters.Trigger />\n <Filters.List />\n </>\n )}\n </>\n );\n\n const actions =\n list.settings.filterable && schema ? (\n <Filters.Root schema={schema}>\n <Layouts.Action\n endActions={endActions}\n startActions={startActions}\n bottomActions={isMobile && hasAppliedFilters ? <Filters.List /> : null}\n />\n <Filters.Popover />\n </Filters.Root>\n ) : (\n <Layouts.Action endActions={endActions} startActions={startActions} />\n );\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n {actions}\n <Layouts.Content>\n {isEmptyState ? (\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={\n canCreate && (\n <Box>\n <CreateButton variant=\"secondary\" />\n </Box>\n )\n }\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n ) : (\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (header.name === 'documentId') {\n return (\n <Table.Cell key={header.name}>\n <Flex gap={2} alignItems=\"center\" width=\"100%\" minWidth={0}>\n <Typography textColor=\"neutral800\" maxWidth=\"30rem\" ellipsis>\n {row.documentId || '-'}\n </Typography>\n {row.documentId && (\n <IconButton\n variant=\"ghost\"\n size=\"S\"\n label={formatMessage({\n id: 'content-manager.actions.copy-documentId.label',\n defaultMessage: 'Copy',\n })}\n onClick={(e) => handleCopyDocumentId(e, row.documentId)}\n >\n <Duplicate />\n </IconButton>\n )}\n </Flex>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n )}\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n fullWidth\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage key={slug} />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","copy","useClipboard","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","isMobile","useIsMobile","useIsDesktop","handleCopyDocumentId","React","useCallback","e","documentId","stopPropagation","didCopy","type","message","id","defaultMessage","collectionType","model","schema","useDoc","list","listViewConversionContext","isLoading","isLoadingLayout","useDocumentLayout","persistentQueryConfigs","useMemo","paths","scoped","STRAPI_LOCALE","isHydrated","usePersistentPartialQueryParams","displayedHeaderNames","setDisplayedHeaderNames","useScopedPersistentState","mapDisplayedHeaders","headers","map","header","name","displayedHeaders","metadatas","Object","keys","length","attributes","convertListLayoutToFieldLayouts","configurations","componentConfigurations","schemas","componentSchemas","contentTypeSchemas","handleSetHeaders","handleResetHeaders","layout","useEffect","uid","allowedDisplayHeaders","filter","includes","query","setQuery","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","buildValidParams","hasAppliedFilters","Boolean","filters","$and","hasStatusFilter","some","f","__status","$eq","test","cleaned","split","s","trim","join","undefined","data","error","isFetching","useGetAllDocumentsQuery","skip","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","translation","label","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","isEmptyState","endActions","_jsxs","_Fragment","filterable","Filters","Trigger","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","searchInput","SearchInput","target","placeholder","trackedEvent","startActions","List","actions","Root","Action","bottomActions","Popover","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","rows","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","Typography","textColor","getDisplayName","minWidth","ellipsis","IconButton","size","Duplicate","CellContent","rowId","ActionsCell","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","usePrev","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","fullWidth","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -76,7 +76,7 @@ declare const useDocument: UseDocument;
76
76
  * @internal this hook uses the router to extract the model, collection type & id from the url.
77
77
  * therefore, it shouldn't be used outside of the content-manager because it won't work as intended.
78
78
  */
79
- declare const useDoc: () => {
79
+ declare const useDoc: (opts?: UseDocumentOpts) => {
80
80
  /**
81
81
  * These are the schemas of the components used in the content type, organised
82
82
  * by their uid.
@@ -6,5 +6,7 @@ interface PersistentQueryConfigEntry {
6
6
  scoped?: boolean;
7
7
  }
8
8
  export type PersistentQueryConfig = Record<string, PersistentQueryConfigEntry>;
9
- export declare const usePersistentPartialQueryParams: (config: PersistentQueryConfig) => void;
9
+ export declare const usePersistentPartialQueryParams: (config: PersistentQueryConfig) => {
10
+ isHydrated: boolean;
11
+ };
10
12
  export {};
@@ -1,7 +1,8 @@
1
+ import type { StrapiApp } from '@strapi/admin/strapi-admin';
1
2
  import 'prismjs';
2
3
  declare const _default: {
3
4
  register(app: any): void;
4
- bootstrap(app: any): void;
5
+ bootstrap(app: StrapiApp): void;
5
6
  registerTrads({ locales }: {
6
7
  locales: string[];
7
8
  }): Promise<({