@payloadcms/ui 3.49.0-canary.8 → 3.49.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 (158) hide show
  1. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  2. package/dist/elements/DeleteDocument/index.js +65 -47
  3. package/dist/elements/DeleteDocument/index.js.map +1 -1
  4. package/dist/elements/DeleteDocument/index.scss +10 -0
  5. package/dist/elements/DeleteMany/index.d.ts +6 -2
  6. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  7. package/dist/elements/DeleteMany/index.js +153 -51
  8. package/dist/elements/DeleteMany/index.js.map +1 -1
  9. package/dist/elements/DeleteMany/index.scss +13 -0
  10. package/dist/elements/DocumentControls/index.d.ts +3 -0
  11. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  12. package/dist/elements/DocumentControls/index.js +24 -5
  13. package/dist/elements/DocumentControls/index.js.map +1 -1
  14. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  15. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -2
  16. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  17. package/dist/elements/DocumentDrawer/Provider.d.ts +4 -0
  18. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  19. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  20. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  21. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  22. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  23. package/dist/elements/DocumentFields/index.d.ts +1 -0
  24. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentFields/index.js +3 -1
  26. package/dist/elements/DocumentFields/index.js.map +1 -1
  27. package/dist/elements/FolderView/Cell/index.client.d.ts +3 -2
  28. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  29. package/dist/elements/FolderView/Cell/index.client.js +3 -1
  30. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  31. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
  32. package/dist/elements/FolderView/Cell/index.server.js +2 -1
  33. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  34. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts +7 -0
  35. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -0
  36. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +164 -0
  37. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -0
  38. package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
  39. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  40. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  41. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  42. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +10 -0
  43. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +1 -0
  44. package/dist/elements/ListHeaderTabs/ByFolderPill.js +70 -0
  45. package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +1 -0
  46. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +9 -0
  47. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +1 -0
  48. package/dist/elements/ListHeaderTabs/DefaultListPill.js +68 -0
  49. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -0
  50. package/dist/elements/ListHeaderTabs/TrashPill.d.ts +6 -0
  51. package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +1 -0
  52. package/dist/elements/ListHeaderTabs/TrashPill.js +53 -0
  53. package/dist/elements/ListHeaderTabs/TrashPill.js.map +1 -0
  54. package/dist/elements/{ListFolderPills → ListHeaderTabs}/index.scss +1 -2
  55. package/dist/elements/ListSelection/index.scss +1 -1
  56. package/dist/elements/PermanentlyDeleteButton/index.d.ts +14 -0
  57. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -0
  58. package/dist/elements/PermanentlyDeleteButton/index.js +147 -0
  59. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -0
  60. package/dist/elements/RestoreButton/index.d.ts +15 -0
  61. package/dist/elements/RestoreButton/index.d.ts.map +1 -0
  62. package/dist/elements/RestoreButton/index.js +171 -0
  63. package/dist/elements/RestoreButton/index.js.map +1 -0
  64. package/dist/elements/RestoreButton/index.scss +25 -0
  65. package/dist/elements/RestoreMany/index.d.ts +9 -0
  66. package/dist/elements/RestoreMany/index.d.ts.map +1 -0
  67. package/dist/elements/RestoreMany/index.js +193 -0
  68. package/dist/elements/RestoreMany/index.js.map +1 -0
  69. package/dist/elements/RestoreMany/index.scss +25 -0
  70. package/dist/elements/Status/index.d.ts.map +1 -1
  71. package/dist/elements/Status/index.js +6 -4
  72. package/dist/elements/Status/index.js.map +1 -1
  73. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  74. package/dist/elements/Table/DefaultCell/index.js +10 -8
  75. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  76. package/dist/elements/TrashBanner/index.d.ts +4 -0
  77. package/dist/elements/TrashBanner/index.d.ts.map +1 -0
  78. package/dist/elements/TrashBanner/index.js +37 -0
  79. package/dist/elements/TrashBanner/index.js.map +1 -0
  80. package/dist/elements/TrashBanner/index.scss +20 -0
  81. package/dist/exports/client/index.js +24 -22
  82. package/dist/exports/client/index.js.map +4 -4
  83. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  84. package/dist/fields/Checkbox/Input.js +2 -0
  85. package/dist/fields/Checkbox/Input.js.map +1 -1
  86. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  87. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  88. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +7 -0
  89. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  90. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  91. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  92. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  93. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  94. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  95. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  96. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  97. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  98. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  99. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  100. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  101. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  102. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  103. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  104. package/dist/icons/Trash/index.d.ts +6 -0
  105. package/dist/icons/Trash/index.d.ts.map +1 -0
  106. package/dist/icons/Trash/index.js +22 -0
  107. package/dist/icons/Trash/index.js.map +1 -0
  108. package/dist/icons/Trash/index.scss +6 -0
  109. package/dist/providers/DocumentInfo/types.d.ts +2 -0
  110. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  111. package/dist/providers/DocumentInfo/types.js.map +1 -1
  112. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  113. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  114. package/dist/providers/ServerFunctions/index.js.map +1 -1
  115. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  116. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  117. package/dist/providers/TableColumns/buildColumnState/index.js +4 -2
  118. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  119. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  120. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  121. package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -2
  122. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  123. package/dist/styles.css +1 -1
  124. package/dist/utilities/buildFormState.d.ts.map +1 -1
  125. package/dist/utilities/buildFormState.js +2 -0
  126. package/dist/utilities/buildFormState.js.map +1 -1
  127. package/dist/utilities/renderTable.d.ts +3 -2
  128. package/dist/utilities/renderTable.d.ts.map +1 -1
  129. package/dist/utilities/renderTable.js +4 -2
  130. package/dist/utilities/renderTable.js.map +1 -1
  131. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  132. package/dist/views/CollectionFolder/index.js +15 -5
  133. package/dist/views/CollectionFolder/index.js.map +1 -1
  134. package/dist/views/Edit/Auth/index.js +5 -4
  135. package/dist/views/Edit/Auth/index.js.map +1 -1
  136. package/dist/views/Edit/SetDocumentStepNav/index.d.ts +1 -0
  137. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  138. package/dist/views/Edit/SetDocumentStepNav/index.js +26 -15
  139. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  140. package/dist/views/Edit/index.d.ts.map +1 -1
  141. package/dist/views/Edit/index.js +11 -3
  142. package/dist/views/Edit/index.js.map +1 -1
  143. package/dist/views/List/ListHeader/index.d.ts +4 -2
  144. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  145. package/dist/views/List/ListHeader/index.js +24 -9
  146. package/dist/views/List/ListHeader/index.js.map +1 -1
  147. package/dist/views/List/ListSelection/index.d.ts +2 -1
  148. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  149. package/dist/views/List/ListSelection/index.js +26 -17
  150. package/dist/views/List/ListSelection/index.js.map +1 -1
  151. package/dist/views/List/index.d.ts.map +1 -1
  152. package/dist/views/List/index.js +28 -9
  153. package/dist/views/List/index.js.map +1 -1
  154. package/package.json +5 -5
  155. package/dist/elements/ListFolderPills/index.d.ts +0 -10
  156. package/dist/elements/ListFolderPills/index.d.ts.map +0 -1
  157. package/dist/elements/ListFolderPills/index.js +0 -97
  158. package/dist/elements/ListFolderPills/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","DeleteMany","props","$","collection","t0","modalPrefix","t1","undefined","slug","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","t2","ids","None","t3","replace","stringify","page","addQueryPrefix","t4","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","where","t","config","routes","api","serverURL","code","locale","i18n","openModal","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","deleteManyResponse","limit","headers","language","plural","singular","labels","json","deletedDocs","docs","successLabel","status","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","body","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n where={parseSearchParams(searchParams)?.where as Where}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint = where\n } else {\n whereConstraint = {\n id: {\n not_equals: '',\n },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n id: {\n in: ids,\n },\n }\n }\n\n const deleteManyResponse = await requests.delete(\n `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:deletedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [selections, afterDelete, collections, locale, search, serverURL, api, i18n, where, t])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={t('general:aboutToDeleteCount', {\n count: labelCount,\n label: labelString,\n })}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","t1","undefined","slug","trash","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","t2","ids","None","t3","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t4","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","limit","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .delete-documents__checkbox {
5
+ padding: calc(var(--base) * 0.5) 0;
6
+
7
+ .checkbox-input {
8
+ label {
9
+ padding-bottom: 0;
10
+ }
11
+ }
12
+ }
13
+ }
@@ -21,15 +21,18 @@ export declare const DocumentControls: React.FC<{
21
21
  readonly isAccountView?: boolean;
22
22
  readonly isEditing?: boolean;
23
23
  readonly isInDrawer?: boolean;
24
+ readonly isTrashed?: boolean;
24
25
  readonly onDelete?: DocumentDrawerContextType['onDelete'];
25
26
  readonly onDrawerCreateNew?: () => void;
26
27
  readonly onDuplicate?: DocumentDrawerContextType['onDuplicate'];
28
+ readonly onRestore?: DocumentDrawerContextType['onRestore'];
27
29
  readonly onSave?: DocumentDrawerContextType['onSave'];
28
30
  readonly onTakeOver?: () => void;
29
31
  readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission;
30
32
  readonly readOnlyForIncomingUser?: boolean;
31
33
  readonly redirectAfterDelete?: boolean;
32
34
  readonly redirectAfterDuplicate?: boolean;
35
+ readonly redirectAfterRestore?: boolean;
33
36
  readonly slug: SanitizedCollectionConfig['slug'];
34
37
  readonly user?: ClientUser;
35
38
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAwB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAoSA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAwB9E,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAgUA,CAAA"}
@@ -20,14 +20,16 @@ import { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js';
20
20
  import { Gutter } from '../Gutter/index.js';
21
21
  import { LivePreviewToggler } from '../LivePreview/Toggler/index.js';
22
22
  import { Locked } from '../Locked/index.js';
23
+ import { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js';
23
24
  import { Popup, PopupList } from '../Popup/index.js';
24
25
  import { PreviewButton } from '../PreviewButton/index.js';
25
26
  import { PublishButton } from '../PublishButton/index.js';
26
27
  import { RenderCustomComponent } from '../RenderCustomComponent/index.js';
28
+ import { RestoreButton } from '../RestoreButton/index.js';
27
29
  import { SaveButton } from '../SaveButton/index.js';
30
+ import './index.scss';
28
31
  import { SaveDraftButton } from '../SaveDraftButton/index.js';
29
32
  import { Status } from '../Status/index.js';
30
- import './index.scss';
31
33
  const baseClass = 'doc-controls';
32
34
  export const DocumentControls = props => {
33
35
  const $ = _c(15);
@@ -44,14 +46,17 @@ export const DocumentControls = props => {
44
46
  isAccountView,
45
47
  isEditing,
46
48
  isInDrawer,
49
+ isTrashed,
47
50
  onDelete,
48
51
  onDrawerCreateNew,
49
52
  onDuplicate,
53
+ onRestore,
50
54
  onTakeOver,
51
55
  permissions,
52
56
  readOnlyForIncomingUser,
53
57
  redirectAfterDelete,
54
58
  redirectAfterDuplicate,
59
+ redirectAfterRestore,
55
60
  user
56
61
  } = props;
57
62
  let t1;
@@ -182,7 +187,7 @@ export const DocumentControls = props => {
182
187
  children: [showLockedMetaIcon && _jsx(Locked, {
183
188
  className: `${baseClass}__locked-controls`,
184
189
  user
185
- }), showFolderMetaIcon && config.folders && _jsx(MoveDocToFolder, {
190
+ }), showFolderMetaIcon && config.folders && !isTrashed && _jsx(MoveDocToFolder, {
186
191
  folderCollectionSlug: config.folders.slug,
187
192
  folderFieldName: config.folders.fieldName
188
193
  })]
@@ -200,7 +205,7 @@ export const DocumentControls = props => {
200
205
  children: [(globalConfig || collectionConfig && isEditing) && _jsx("li", {
201
206
  className: [`${baseClass}__status`, `${baseClass}__list-item`].filter(Boolean).join(" "),
202
207
  children: _jsx(Status, {})
203
- }), hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && _jsx("li", {
208
+ }), hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && !isTrashed && _jsx("li", {
204
209
  className: `${baseClass}__list-item`,
205
210
  children: _jsx(Autosave, {
206
211
  collection: collectionConfig,
@@ -215,7 +220,7 @@ export const DocumentControls = props => {
215
220
  title: data?.updatedAt ? updatedAt : "",
216
221
  children: [_jsxs("p", {
217
222
  className: `${baseClass}__label`,
218
- children: [i18n.t("general:lastModified"), ":\xA0"]
223
+ children: [i18n.t(isTrashed ? "general:deleted" : "general:lastModified"), ":\xA0"]
219
224
  }), data?.updatedAt && _jsx("p", {
220
225
  className: `${baseClass}__value`,
221
226
  children: updatedAt
@@ -240,7 +245,7 @@ export const DocumentControls = props => {
240
245
  children: [BeforeDocumentControls, t6, (collectionConfig?.admin.preview || globalConfig?.admin.preview) && _jsx(RenderCustomComponent, {
241
246
  CustomComponent: CustomPreviewButton,
242
247
  Fallback: _jsx(PreviewButton, {})
243
- }), hasSavePermission && _jsx(Fragment, {
248
+ }), hasSavePermission && !isTrashed && _jsx(Fragment, {
244
249
  children: collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? _jsxs(Fragment, {
245
250
  children: [(unsavedDraftWithValidations || !autosaveEnabled || autosaveEnabled && showSaveDraftButton) && _jsx(RenderCustomComponent, {
246
251
  CustomComponent: CustomSaveDraftButton,
@@ -253,6 +258,20 @@ export const DocumentControls = props => {
253
258
  CustomComponent: CustomSaveButton,
254
259
  Fallback: _jsx(SaveButton, {})
255
260
  })
261
+ }), hasDeletePermission && isTrashed && _jsx(PermanentlyDeleteButton, {
262
+ buttonId: "action-permanently-delete",
263
+ collectionSlug: collectionConfig?.slug,
264
+ id: id.toString(),
265
+ onDelete,
266
+ redirectAfterDelete,
267
+ singularLabel: collectionConfig?.labels?.singular
268
+ }), hasSavePermission && isTrashed && _jsx(RestoreButton, {
269
+ buttonId: "action-restore",
270
+ collectionSlug: collectionConfig?.slug,
271
+ id: id.toString(),
272
+ onRestore,
273
+ redirectAfterRestore,
274
+ singularLabel: collectionConfig?.labels?.singular
256
275
  }), t7]
257
276
  }), showDotMenu && !readOnlyForIncomingUser && _jsx(Popup, {
258
277
  button: _jsxs("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","collectionConfigDrafts","globalConfigDrafts","autosaveEnabled","autosave","collectionAutosaveEnabled","globalAutosaveEnabled","showSaveDraftButton","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","t6","_jsx","t7","buttonStyle","onClick","size","type","children","_jsxs","className","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const collectionConfigDrafts = collectionConfig?.versions?.drafts\n const globalConfigDrafts = globalConfig?.versions?.drafts\n\n const autosaveEnabled =\n (collectionConfigDrafts && collectionConfigDrafts?.autosave) ||\n (globalConfigDrafts && globalConfigDrafts?.autosave)\n\n const collectionAutosaveEnabled = collectionConfigDrafts && collectionConfigDrafts?.autosave\n const globalAutosaveEnabled = globalConfigDrafts && globalConfigDrafts?.autosave\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfigDrafts.autosave !== false &&\n collectionConfigDrafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfigDrafts.autosave !== false &&\n globalConfigDrafts.autosave.showSaveDraftButton === true)\n\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","collectionConfigDrafts","globalConfigDrafts","autosaveEnabled","autosave","collectionAutosaveEnabled","globalAutosaveEnabled","showSaveDraftButton","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","t6","_jsx","t7","buttonStyle","onClick","size","type","children","_jsxs","className","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","buttonId","toString","singularLabel","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport './index.scss'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const collectionConfigDrafts = collectionConfig?.versions?.drafts\n const globalConfigDrafts = globalConfig?.versions?.drafts\n\n const autosaveEnabled =\n (collectionConfigDrafts && collectionConfigDrafts?.autosave) ||\n (globalConfigDrafts && globalConfigDrafts?.autosave)\n\n const collectionAutosaveEnabled = collectionConfigDrafts && collectionConfigDrafts?.autosave\n const globalAutosaveEnabled = globalConfigDrafts && globalConfigDrafts?.autosave\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfigDrafts.autosave !== false &&\n collectionConfigDrafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfigDrafts.autosave !== false &&\n globalConfigDrafts.autosave.showSaveDraftButton === true)\n\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && !isTrashed && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>\n {i18n.t(isTrashed ? 'general:deleted' : 'general:lastModified')}:&nbsp;\n </p>\n\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && !isTrashed && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {hasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmK/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsK/D,CAAA"}
@@ -23,7 +23,8 @@ export const DocumentDrawerContent = ({
23
23
  overrideEntityVisibility = true,
24
24
  redirectAfterCreate,
25
25
  redirectAfterDelete,
26
- redirectAfterDuplicate
26
+ redirectAfterDuplicate,
27
+ redirectAfterRestore
27
28
  }) => {
28
29
  const {
29
30
  getEntityConfig
@@ -63,6 +64,7 @@ export const DocumentDrawerContent = ({
63
64
  redirectAfterCreate,
64
65
  redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,
65
66
  redirectAfterDuplicate: redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,
67
+ redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,
66
68
  signal: controller.signal
67
69
  });
68
70
  if (result?.Document) {
@@ -77,7 +79,7 @@ export const DocumentDrawerContent = ({
77
79
  abortGetDocumentViewRef.current = null;
78
80
  };
79
81
  void fetchDocumentView();
80
- }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, renderDocument, redirectAfterCreate, closeModal, overrideEntityVisibility, t, locale]);
82
+ }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, redirectAfterRestore, renderDocument, redirectAfterCreate, closeModal, overrideEntityVisibility, t, locale]);
81
83
  const onSave = useCallback(args => {
82
84
  getDocumentView(args.doc.id);
83
85
  if (typeof onSaveFromProps === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","docID","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string, showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(existingDocID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","docID","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string, showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(existingDocID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,10 @@ export type DocumentDrawerContextProps = {
10
10
  collectionConfig?: ClientCollectionConfig;
11
11
  doc: TypeWithID;
12
12
  }) => Promise<void> | void;
13
+ readonly onRestore?: (args: {
14
+ collectionConfig?: ClientCollectionConfig;
15
+ id: string;
16
+ }) => Promise<void> | void;
13
17
  readonly onSave?: (args: {
14
18
  collectionConfig?: ClientCollectionConfig;
15
19
  doc: TypeWithID;
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIlF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC9B,MAAM,EAAE,IAAI,CAAA;KACb,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,CAAA;AAElE,eAAO,MAAM,8BAA8B,qDAAiD,CAAA;AAE5F,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAClD;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,GAAG,0BAA0B,CAG/B,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,yBAQ3C,CAAA"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIlF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC9B,MAAM,EAAE,IAAI,CAAA;KACb,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,CAAA;AAElE,eAAO,MAAM,8BAA8B,qDAAiD,CAAA;AAE5F,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAClD;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,GAAG,0BAA0B,CAG/B,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,yBAQ3C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["createContext","use","DocumentDrawerCallbacksContext","DocumentDrawerContextProvider","children","rest","_jsx","value","useDocumentDrawerContext","context","Error"],"sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"sourcesContent":["import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload'\n\nimport { createContext, use } from 'react'\n\nexport type DocumentDrawerContextProps = {\n readonly clearDoc?: () => void\n readonly drawerSlug: string\n readonly onDelete?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n /* only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n }) => Promise<void> | void\n readonly onSave?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n operation: 'create' | 'update'\n result: Data\n }) => Promise<FormState | void> | void\n}\n\nexport type DocumentDrawerContextType = DocumentDrawerContextProps\n\nexport const DocumentDrawerCallbacksContext = createContext({} as DocumentDrawerContextType)\n\nexport const DocumentDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentDrawerContextProps\n> = ({ children, ...rest }) => {\n return <DocumentDrawerCallbacksContext value={rest}>{children}</DocumentDrawerCallbacksContext>\n}\n\nexport const useDocumentDrawerContext = (): DocumentDrawerContextType => {\n const context = use(DocumentDrawerCallbacksContext)\n\n if (!context) {\n throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AAwBnC,OAAO,MAAMC,8BAAA,gBAAiCF,aAAA,CAAc,CAAC;AAE7D,OAAO,MAAMG,6BAAA,GAITA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBAAOC,IAAA,CAACJ,8BAAA;IAA+BK,KAAA,EAAOF,IAAA;cAAOD;;AACvD;AAEA,OAAO,MAAMI,wBAAA,GAA2BA,CAAA;EACtC,MAAMC,OAAA,GAAUR,GAAA,CAAIC,8BAAA;EAEpB,IAAI,CAACO,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"Provider.js","names":["createContext","use","DocumentDrawerCallbacksContext","DocumentDrawerContextProvider","children","rest","_jsx","value","useDocumentDrawerContext","context","Error"],"sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"sourcesContent":["import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload'\n\nimport { createContext, use } from 'react'\n\nexport type DocumentDrawerContextProps = {\n readonly clearDoc?: () => void\n readonly drawerSlug: string\n readonly onDelete?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n /* only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n }) => Promise<void> | void\n readonly onRestore?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n readonly onSave?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n operation: 'create' | 'update'\n result: Data\n }) => Promise<FormState | void> | void\n}\n\nexport type DocumentDrawerContextType = DocumentDrawerContextProps\n\nexport const DocumentDrawerCallbacksContext = createContext({} as DocumentDrawerContextType)\n\nexport const DocumentDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentDrawerContextProps\n> = ({ children, ...rest }) => {\n return <DocumentDrawerCallbacksContext value={rest}>{children}</DocumentDrawerCallbacksContext>\n}\n\nexport const useDocumentDrawerContext = (): DocumentDrawerContextType => {\n const context = use(DocumentDrawerCallbacksContext)\n\n if (!context) {\n throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AA4BnC,OAAO,MAAMC,8BAAA,gBAAiCF,aAAA,CAAc,CAAC;AAE7D,OAAO,MAAMG,6BAAA,GAITA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBAAOC,IAAA,CAACJ,8BAAA;IAA+BK,KAAA,EAAOF,IAAA;cAAOD;;AACvD;AAEA,OAAO,MAAMI,wBAAA,GAA2BA,CAAA;EACtC,MAAMC,OAAA,GAAUR,GAAA,CAAIC,8BAAA;EAEpB,IAAI,CAACO,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}
@@ -18,6 +18,7 @@ export type DocumentDrawerProps = {
18
18
  readonly redirectAfterCreate?: boolean;
19
19
  readonly redirectAfterDelete?: boolean;
20
20
  readonly redirectAfterDuplicate?: boolean;
21
+ readonly redirectAfterRestore?: boolean;
21
22
  } & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> & Pick<DrawerProps, 'Header'>;
22
23
  export type DocumentTogglerProps = {
23
24
  readonly children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAC1C,GAAG,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC,GACzE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE7B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAC9B,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE/C,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,KAAK;IACJ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7D;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACxC,GAAG,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC,GACzE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE7B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAC9B,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE/C,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,KAAK;IACJ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7D;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, FormState } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n readonly id?: null | number | string\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly id?: string\n readonly onClick?: () => void\n} & Readonly<HTMLAttributes<HTMLButtonElement>>\n\nexport type UseDocumentDrawer = (args: {\n collectionSlug: string\n id?: number | string\n overrideEntityVisibility?: boolean\n}) => [\n React.FC<Omit<DocumentDrawerProps, 'collectionSlug' | 'id'>>, // drawer\n React.FC<Omit<DocumentTogglerProps, 'collectionSlug' | 'id'>>, // toggler\n {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n },\n]\n"],"mappings":"AAmCA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, FormState } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n readonly id?: null | number | string\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly id?: string\n readonly onClick?: () => void\n} & Readonly<HTMLAttributes<HTMLButtonElement>>\n\nexport type UseDocumentDrawer = (args: {\n collectionSlug: string\n id?: number | string\n overrideEntityVisibility?: boolean\n}) => [\n React.FC<Omit<DocumentDrawerProps, 'collectionSlug' | 'id'>>, // drawer\n React.FC<Omit<DocumentTogglerProps, 'collectionSlug' | 'id'>>, // toggler\n {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n },\n]\n"],"mappings":"AAoCA","ignoreList":[]}
@@ -8,6 +8,7 @@ type Args = {
8
8
  readonly docPermissions: SanitizedDocumentPermissions;
9
9
  readonly fields: ClientField[];
10
10
  readonly forceSidebarWrap?: boolean;
11
+ readonly isTrashed?: boolean;
11
12
  readonly readOnly?: boolean;
12
13
  readonly schemaPathSegments: string[];
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAGxE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAItC,OAAO,cAAc,CAAA;AAIrB,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAiFzC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAGxE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAKtC,OAAO,cAAc,CAAA;AAIrB,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAmFzC,CAAA"}
@@ -5,6 +5,7 @@ import { fieldIsSidebar } from 'payload/shared';
5
5
  import React, { useMemo } from 'react';
6
6
  import { RenderFields } from '../../forms/RenderFields/index.js';
7
7
  import { Gutter } from '../Gutter/index.js';
8
+ import { TrashBanner } from '../TrashBanner/index.js';
8
9
  import './index.scss';
9
10
  const baseClass = 'document-fields';
10
11
  export const DocumentFields = ({
@@ -14,6 +15,7 @@ export const DocumentFields = ({
14
15
  docPermissions,
15
16
  fields,
16
17
  forceSidebarWrap,
18
+ isTrashed = false,
17
19
  readOnly,
18
20
  schemaPathSegments
19
21
  }) => {
@@ -44,7 +46,7 @@ export const DocumentFields = ({
44
46
  className: `${baseClass}__main`,
45
47
  children: /*#__PURE__*/_jsxs(Gutter, {
46
48
  className: `${baseClass}__edit`,
47
- children: [Description ? /*#__PURE__*/_jsx("header", {
49
+ children: [isTrashed && /*#__PURE__*/_jsx(TrashBanner, {}), Description ? /*#__PURE__*/_jsx("header", {
48
50
  className: `${baseClass}__header`,
49
51
  children: /*#__PURE__*/_jsx("div", {
50
52
  className: `${baseClass}__sub-header`,