@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
@@ -11,11 +11,12 @@ import { useDocumentTitle } from '../../../providers/DocumentTitle/index.js';
11
11
  import { useEntityVisibility } from '../../../providers/EntityVisibility/index.js';
12
12
  import { useTranslation } from '../../../providers/Translation/index.js';
13
13
  export const SetDocumentStepNav = props => {
14
- const $ = _c(20);
14
+ const $ = _c(21);
15
15
  const {
16
16
  id,
17
17
  collectionSlug,
18
18
  globalSlug,
19
+ isTrashed,
19
20
  pluralLabel,
20
21
  useAsTitle
21
22
  } = props;
@@ -62,7 +63,7 @@ export const SetDocumentStepNav = props => {
62
63
  } = t2;
63
64
  let t3;
64
65
  let t4;
65
- if ($[4] !== adminRoute || $[5] !== collectionSlug || $[6] !== globalSlug || $[7] !== i18n || $[8] !== id || $[9] !== isEditing || $[10] !== isInitializing || $[11] !== isVisible || $[12] !== pluralLabel || $[13] !== setStepNav || $[14] !== t || $[15] !== title || $[16] !== useAsTitle || $[17] !== view) {
66
+ if ($[4] !== adminRoute || $[5] !== collectionSlug || $[6] !== globalSlug || $[7] !== i18n || $[8] !== id || $[9] !== isEditing || $[10] !== isInitializing || $[11] !== isTrashed || $[12] !== isVisible || $[13] !== pluralLabel || $[14] !== setStepNav || $[15] !== t || $[16] !== title || $[17] !== useAsTitle || $[18] !== view) {
66
67
  t3 = () => {
67
68
  const nav = [];
68
69
  if (!isInitializing) {
@@ -74,12 +75,21 @@ export const SetDocumentStepNav = props => {
74
75
  path: `/collections/${collectionSlug}`
75
76
  }) : undefined
76
77
  });
78
+ if (isTrashed) {
79
+ nav.push({
80
+ label: t("general:trash"),
81
+ url: isVisible ? formatAdminURL({
82
+ adminRoute,
83
+ path: `/collections/${collectionSlug}/trash`
84
+ }) : undefined
85
+ });
86
+ }
77
87
  if (isEditing) {
78
88
  nav.push({
79
89
  label: useAsTitle && useAsTitle !== "id" && title || `${id}`,
80
90
  url: isVisible ? formatAdminURL({
81
91
  adminRoute,
82
- path: `/collections/${collectionSlug}/${id}`
92
+ path: isTrashed ? `/collections/${collectionSlug}/trash/${id}` : `/collections/${collectionSlug}/${id}`
83
93
  }) : undefined
84
94
  });
85
95
  } else {
@@ -106,7 +116,7 @@ export const SetDocumentStepNav = props => {
106
116
  setStepNav(nav);
107
117
  }
108
118
  };
109
- t4 = [setStepNav, isInitializing, isEditing, pluralLabel, id, useAsTitle, adminRoute, t, i18n, title, collectionSlug, globalSlug, view, isVisible];
119
+ t4 = [setStepNav, isInitializing, isEditing, pluralLabel, id, isTrashed, useAsTitle, adminRoute, t, i18n, title, collectionSlug, globalSlug, view, isVisible];
110
120
  $[4] = adminRoute;
111
121
  $[5] = collectionSlug;
112
122
  $[6] = globalSlug;
@@ -114,18 +124,19 @@ export const SetDocumentStepNav = props => {
114
124
  $[8] = id;
115
125
  $[9] = isEditing;
116
126
  $[10] = isInitializing;
117
- $[11] = isVisible;
118
- $[12] = pluralLabel;
119
- $[13] = setStepNav;
120
- $[14] = t;
121
- $[15] = title;
122
- $[16] = useAsTitle;
123
- $[17] = view;
124
- $[18] = t3;
125
- $[19] = t4;
127
+ $[11] = isTrashed;
128
+ $[12] = isVisible;
129
+ $[13] = pluralLabel;
130
+ $[14] = setStepNav;
131
+ $[15] = t;
132
+ $[16] = title;
133
+ $[17] = useAsTitle;
134
+ $[18] = view;
135
+ $[19] = t3;
136
+ $[20] = t4;
126
137
  } else {
127
- t3 = $[18];
128
- t4 = $[19];
138
+ t3 = $[19];
139
+ t4 = $[20];
129
140
  }
130
141
  useEffect(t3, t4);
131
142
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","useEffect","useStepNav","useConfig","useDocumentInfo","useDocumentTitle","useEntityVisibility","useTranslation","SetDocumentStepNav","props","$","id","collectionSlug","globalSlug","pluralLabel","useAsTitle","view","undefined","isEditing","isInitializing","title","isEntityVisible","t0","isVisible","setStepNav","i18n","t","config","t1","routes","t2","admin","adminRoute","t3","t4","nav","push","label","url","path"],"sources":["../../../../src/views/Edit/SetDocumentStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport { useEffect } from 'react'\n\nimport type { StepNavItem } from '../../../elements/StepNav/index.js'\n\nimport { useStepNav } from '../../../elements/StepNav/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useEntityVisibility } from '../../../providers/EntityVisibility/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport const SetDocumentStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, isInitializing } = useDocumentInfo()\n const { title } = useDocumentTitle()\n\n const { isEntityVisible } = useEntityVisibility()\n const isVisible = isEntityVisible({ collectionSlug, globalSlug })\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (!isInitializing) {\n if (collectionSlug) {\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n })\n : undefined,\n })\n\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${id}`,\n })\n : undefined,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n : undefined,\n })\n }\n\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n setStepNav(nav)\n }\n }, [\n setStepNav,\n isInitializing,\n isEditing,\n pluralLabel,\n id,\n useAsTitle,\n adminRoute,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n isVisible,\n ])\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","useEffect","useStepNav","useConfig","useDocumentInfo","useDocumentTitle","useEntityVisibility","useTranslation","SetDocumentStepNav","props","$","id","collectionSlug","globalSlug","isTrashed","pluralLabel","useAsTitle","view","undefined","isEditing","isInitializing","title","isEntityVisible","t0","isVisible","setStepNav","i18n","t","config","t1","routes","t2","admin","adminRoute","t3","t4","nav","push","label","url","path"],"sources":["../../../../src/views/Edit/SetDocumentStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport { useEffect } from 'react'\n\nimport type { StepNavItem } from '../../../elements/StepNav/index.js'\n\nimport { useStepNav } from '../../../elements/StepNav/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useEntityVisibility } from '../../../providers/EntityVisibility/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport const SetDocumentStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n isTrashed?: boolean\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, isTrashed, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, isInitializing } = useDocumentInfo()\n const { title } = useDocumentTitle()\n\n const { isEntityVisible } = useEntityVisibility()\n const isVisible = isEntityVisible({ collectionSlug, globalSlug })\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (!isInitializing) {\n if (collectionSlug) {\n // Collection label\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n })\n : undefined,\n })\n\n // Trash breadcrumb (if in trash view)\n if (isTrashed) {\n nav.push({\n label: t('general:trash'),\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/trash`,\n })\n : undefined,\n })\n }\n\n // Document label\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: isTrashed\n ? `/collections/${collectionSlug}/trash/${id}`\n : `/collections/${collectionSlug}/${id}`,\n })\n : undefined,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n : undefined,\n })\n }\n\n // Fallback view (used for versions, previews, etc.)\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n setStepNav(nav)\n }\n }, [\n setStepNav,\n isInitializing,\n isEditing,\n pluralLabel,\n id,\n isTrashed,\n useAsTitle,\n adminRoute,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n isVisible,\n ])\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AAiC1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,EACpB,cAAc,GACf,EAAE,uBAAuB,qBAmlBzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AAiC1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,EACpB,cAAc,GACf,EAAE,uBAAuB,qBA2lBzB"}
@@ -72,10 +72,12 @@ export function DefaultEditView({
72
72
  initialState,
73
73
  isEditing,
74
74
  isInitializing,
75
+ isTrashed,
75
76
  lastUpdateTime,
76
77
  redirectAfterCreate,
77
78
  redirectAfterDelete,
78
79
  redirectAfterDuplicate,
80
+ redirectAfterRestore,
79
81
  savedDocumentData,
80
82
  setCurrentEditor,
81
83
  setDocumentIsLocked,
@@ -88,6 +90,7 @@ export function DefaultEditView({
88
90
  drawerSlug,
89
91
  onDelete,
90
92
  onDuplicate,
93
+ onRestore,
91
94
  onSave: onSaveFromContext
92
95
  } = useDocumentDrawerContext();
93
96
  const isInDrawer = Boolean(drawerSlug);
@@ -333,7 +336,7 @@ export function DefaultEditView({
333
336
  children: /*#__PURE__*/_jsxs(Form, {
334
337
  action: action,
335
338
  className: `${baseClass}__form`,
336
- disabled: isReadOnlyForIncomingUser || isInitializing || !hasSavePermission,
339
+ disabled: isReadOnlyForIncomingUser || isInitializing || !hasSavePermission || isTrashed,
337
340
  disableValidationOnSubmit: !validateBeforeSubmit,
338
341
  initialState: !isInitializing && initialState,
339
342
  isDocumentForm: true,
@@ -375,6 +378,7 @@ export function DefaultEditView({
375
378
  collectionSlug: collectionConfig?.slug,
376
379
  globalSlug: globalConfig?.slug,
377
380
  id: id,
381
+ isTrashed: isTrashed,
378
382
  pluralLabel: collectionConfig?.labels?.plural,
379
383
  useAsTitle: collectionConfig?.admin?.useAsTitle
380
384
  }), /*#__PURE__*/_jsx(SetDocumentTitle, {
@@ -392,7 +396,7 @@ export function DefaultEditView({
392
396
  SaveDraftButton
393
397
  },
394
398
  data: savedDocumentData,
395
- disableActions: disableActions || isFolderCollection,
399
+ disableActions: disableActions || isFolderCollection || isTrashed,
396
400
  disableCreate: disableCreate,
397
401
  EditMenuItems: EditMenuItems,
398
402
  hasPublishPermission: hasPublishPermission,
@@ -400,15 +404,18 @@ export function DefaultEditView({
400
404
  id: id,
401
405
  isEditing: isEditing,
402
406
  isInDrawer: isInDrawer,
407
+ isTrashed: isTrashed,
403
408
  onDelete: onDelete,
404
409
  onDrawerCreateNew: clearDoc,
405
410
  onDuplicate: onDuplicate,
411
+ onRestore: onRestore,
406
412
  onSave: onSave,
407
413
  onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockState, isLockingEnabled, setIsReadOnlyForIncomingUser),
408
414
  permissions: docPermissions,
409
415
  readOnlyForIncomingUser: isReadOnlyForIncomingUser,
410
416
  redirectAfterDelete: redirectAfterDelete,
411
417
  redirectAfterDuplicate: redirectAfterDuplicate,
418
+ redirectAfterRestore: redirectAfterRestore,
412
419
  slug: collectionConfig?.slug || globalConfig?.slug,
413
420
  user: currentEditor
414
421
  }), /*#__PURE__*/_jsxs("div", {
@@ -446,7 +453,8 @@ export function DefaultEditView({
446
453
  docPermissions: docPermissions,
447
454
  fields: docConfig.fields,
448
455
  forceSidebarWrap: isLivePreviewing,
449
- readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
456
+ isTrashed: isTrashed,
457
+ readOnly: isReadOnlyForIncomingUser || !hasSavePermission || isTrashed,
450
458
  schemaPathSegments: schemaPathSegments
451
459
  }), AfterDocument]
452
460
  }), isLivePreviewEnabled && !isInDrawer && /*#__PURE__*/_jsx(LivePreviewWindow, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","LivePreviewWindow","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useLivePreviewContext","OperationProvider","useRouteTransition","useServerFunctions","UploadControlsProvider","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","BeforeDocumentControls","Description","EditMenuItems","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","UploadControls","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","documentLockState","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","isLivePreviewEnabled","isLivePreviewing","previewWindowType","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","nextHrefRef","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","hasShownLockedModal","isLocked","handlePrevent","nextHref","handleLeaveConfirm","lockUser","isLockOwnedByCurrentUser","nextPath","URL","pathname","isInternalView","some","path","includes","err","console","error","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","push","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","isFolderCollection","folders","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","showDocumentID","isActive","onReadOnly","onTakeOver","onConfirm","onPrevent","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields","forceSidebarWrap"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["/* eslint-disable react-compiler/react-compiler -- TODO: fix */\n'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { LivePreviewWindow } from '../../elements/LivePreview/Window/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n EditMenuItems,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n UploadControls,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n documentLockState,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { isLivePreviewEnabled, isLivePreviewing, previewWindowType } = useLivePreviewContext()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const nextHrefRef = React.useRef<null | string>(null)\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockState.current?.user === 'object'\n ? documentLockState.current?.user?.id\n : documentLockState.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockState.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockState.current.hasShownLockedModal = true\n }\n\n documentLockState.current = {\n hasShownLockedModal: documentLockState.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [documentLockState, setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const handlePrevent = useCallback((nextHref: null | string) => {\n nextHrefRef.current = nextHref\n }, [])\n\n const handleLeaveConfirm = useCallback(async () => {\n const lockUser = documentLockState.current?.user\n\n const isLockOwnedByCurrentUser =\n typeof lockUser === 'object' ? lockUser?.id === user?.id : lockUser === user?.id\n\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Check where user is trying to go\n const nextPath = nextHrefRef.current ? new URL(nextHrefRef.current).pathname : ''\n const isInternalView = ['/preview', '/api', '/versions'].some((path) =>\n nextPath.includes(path),\n )\n\n // Only retain the lock if the user is still viewing the document\n if (!isInternalView) {\n if (isLockOwnedByCurrentUser) {\n try {\n await unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n } catch (err) {\n console.error('Failed to unlock before leave', err)\n }\n }\n }\n }\n }, [\n collectionSlug,\n documentIsLocked,\n documentLockState,\n globalSlug,\n id,\n isLockingEnabled,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n user?.id,\n ])\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n redirectAfterCreate,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const result = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n skipValidation: !submitted,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (!result) {\n return\n }\n\n const { lockedState, state } = result\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n setShowTakeOverModal(false)\n }\n }, [])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockState.current?.hasShownLockedModal &&\n !isLockExpired\n\n const isFolderCollection = config.folders && collectionSlug === config.folders?.slug\n\n return (\n <main\n className={[\n baseClass,\n (id || globalSlug) && `${baseClass}--is-editing`,\n globalSlug && `global-edit--${globalSlug}`,\n collectionSlug && `collection-edit--${collectionSlug}`,\n isLivePreviewing && previewWindowType === 'iframe' && `${baseClass}--is-live-previewing`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && (\n <DocumentDrawerHeader drawerSlug={drawerSlug} showDocumentID={!isFolderCollection} />\n )}\n {isLockingEnabled && shouldShowDocumentLockedModal && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockState,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && (\n <LeaveWithoutSaving onConfirm={handleLeaveConfirm} onPrevent={handlePrevent} />\n )}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions || isFolderCollection}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n isInDrawer={isInDrawer}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockState,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[\n `${baseClass}__main-wrapper`,\n previewWindowType === 'popup' && `${baseClass}--detached`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <UploadControlsProvider>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n UploadControls={UploadControls}\n />\n )}\n </UploadControlsProvider>\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n forceSidebarWrap={isLivePreviewing}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </div>\n {isLivePreviewEnabled && !isInDrawer && (\n <LivePreviewWindow collectionSlug={collectionSlug} globalSlug={globalSlug} />\n )}\n </div>\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","LivePreviewWindow","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useLivePreviewContext","OperationProvider","useRouteTransition","useServerFunctions","UploadControlsProvider","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","BeforeDocumentControls","Description","EditMenuItems","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","UploadControls","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","documentLockState","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","isTrashed","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onRestore","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","isLivePreviewEnabled","isLivePreviewing","previewWindowType","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","nextHrefRef","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","hasShownLockedModal","isLocked","handlePrevent","nextHref","handleLeaveConfirm","lockUser","isLockOwnedByCurrentUser","nextPath","URL","pathname","isInternalView","some","path","includes","err","console","error","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","push","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","isFolderCollection","folders","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","showDocumentID","isActive","onReadOnly","onTakeOver","onConfirm","onPrevent","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields","forceSidebarWrap"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["/* eslint-disable react-compiler/react-compiler -- TODO: fix */\n'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { LivePreviewWindow } from '../../elements/LivePreview/Window/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n EditMenuItems,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n UploadControls,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n documentLockState,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n isTrashed,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onRestore,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { isLivePreviewEnabled, isLivePreviewing, previewWindowType } = useLivePreviewContext()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const nextHrefRef = React.useRef<null | string>(null)\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockState.current?.user === 'object'\n ? documentLockState.current?.user?.id\n : documentLockState.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockState.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockState.current.hasShownLockedModal = true\n }\n\n documentLockState.current = {\n hasShownLockedModal: documentLockState.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [documentLockState, setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const handlePrevent = useCallback((nextHref: null | string) => {\n nextHrefRef.current = nextHref\n }, [])\n\n const handleLeaveConfirm = useCallback(async () => {\n const lockUser = documentLockState.current?.user\n\n const isLockOwnedByCurrentUser =\n typeof lockUser === 'object' ? lockUser?.id === user?.id : lockUser === user?.id\n\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Check where user is trying to go\n const nextPath = nextHrefRef.current ? new URL(nextHrefRef.current).pathname : ''\n const isInternalView = ['/preview', '/api', '/versions'].some((path) =>\n nextPath.includes(path),\n )\n\n // Only retain the lock if the user is still viewing the document\n if (!isInternalView) {\n if (isLockOwnedByCurrentUser) {\n try {\n await unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n } catch (err) {\n console.error('Failed to unlock before leave', err)\n }\n }\n }\n }\n }, [\n collectionSlug,\n documentIsLocked,\n documentLockState,\n globalSlug,\n id,\n isLockingEnabled,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n user?.id,\n ])\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n redirectAfterCreate,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const result = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n skipValidation: !submitted,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (!result) {\n return\n }\n\n const { lockedState, state } = result\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n setShowTakeOverModal(false)\n }\n }, [])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockState.current?.hasShownLockedModal &&\n !isLockExpired\n\n const isFolderCollection = config.folders && collectionSlug === config.folders?.slug\n\n return (\n <main\n className={[\n baseClass,\n (id || globalSlug) && `${baseClass}--is-editing`,\n globalSlug && `global-edit--${globalSlug}`,\n collectionSlug && `collection-edit--${collectionSlug}`,\n isLivePreviewing && previewWindowType === 'iframe' && `${baseClass}--is-live-previewing`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission || isTrashed}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && (\n <DocumentDrawerHeader drawerSlug={drawerSlug} showDocumentID={!isFolderCollection} />\n )}\n {isLockingEnabled && shouldShowDocumentLockedModal && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockState,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && (\n <LeaveWithoutSaving onConfirm={handleLeaveConfirm} onPrevent={handlePrevent} />\n )}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions || isFolderCollection || isTrashed}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n isInDrawer={isInDrawer}\n isTrashed={isTrashed}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onRestore={onRestore}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockState,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[\n `${baseClass}__main-wrapper`,\n previewWindowType === 'popup' && `${baseClass}--detached`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <UploadControlsProvider>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n UploadControls={UploadControls}\n />\n )}\n </UploadControlsProvider>\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n forceSidebarWrap={isLivePreviewing}\n isTrashed={isTrashed}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission || isTrashed}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </div>\n {isLivePreviewEnabled && !isInDrawer && (\n <LivePreviewWindow collectionSlug={collectionSlug} globalSlug={globalSlug} />\n )}\n </div>\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { I18nClient, TFunction } from '@payloadcms/translations';
2
- import type { ClientCollectionConfig } from 'payload';
2
+ import type { ClientCollectionConfig, ViewTypes } from 'payload';
3
3
  import React from 'react';
4
4
  import './index.scss';
5
5
  export type ListHeaderProps = {
@@ -10,8 +10,10 @@ export type ListHeaderProps = {
10
10
  disableBulkDelete?: boolean;
11
11
  disableBulkEdit?: boolean;
12
12
  hasCreatePermission: boolean;
13
+ hasDeletePermission?: boolean;
13
14
  i18n: I18nClient;
14
15
  isBulkUploadEnabled: boolean;
16
+ isTrashEnabled?: boolean;
15
17
  newDocumentURL: string;
16
18
  onBulkUploadSuccess?: () => void;
17
19
  /** @deprecated This prop will be removed in the next major version.
@@ -25,7 +27,7 @@ export type ListHeaderProps = {
25
27
  /** @deprecated This prop will be removed in the next major version. */
26
28
  t?: TFunction;
27
29
  TitleActions?: React.ReactNode[];
28
- viewType?: 'folders' | 'list';
30
+ viewType?: ViewTypes;
29
31
  };
30
32
  export declare const CollectionListHeader: React.FC<ListHeaderProps>;
31
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,uEAAuE;IACvE,CAAC,CAAC,EAAE,SAAS,CAAA;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiG1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,cAAc,CAAA;AAQrB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,uEAAuE;IACvE,CAAC,CAAC,EAAE,SAAS,CAAA;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0H1D,CAAA"}
@@ -3,15 +3,17 @@ import { getTranslation } from '@payloadcms/translations';
3
3
  import React from 'react';
4
4
  import { CloseModalButton } from '../../../elements/CloseModalButton/index.js';
5
5
  import { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js';
6
- import { ListFolderPills } from '../../../elements/ListFolderPills/index.js';
7
6
  import { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js';
8
7
  import { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js';
9
8
  import { ListHeader } from '../../../elements/ListHeader/index.js';
10
- import { ListBulkUploadButton, ListCreateNewButton } from '../../../elements/ListHeader/TitleActions/index.js';
9
+ import { ListBulkUploadButton, ListCreateNewButton, ListEmptyTrashButton } from '../../../elements/ListHeader/TitleActions/index.js';
10
+ import { ByFolderPill } from '../../../elements/ListHeaderTabs/ByFolderPill.js';
11
+ import { DefaultListPill } from '../../../elements/ListHeaderTabs/DefaultListPill.js';
12
+ import './index.scss';
13
+ import { TrashPill } from '../../../elements/ListHeaderTabs/TrashPill.js';
11
14
  import { useConfig } from '../../../providers/Config/index.js';
12
15
  import { useListQuery } from '../../../providers/ListQuery/index.js';
13
16
  import { ListSelection } from '../ListSelection/index.js';
14
- import './index.scss';
15
17
  const drawerBaseClass = 'list-drawer';
16
18
  export const CollectionListHeader = ({
17
19
  className,
@@ -20,8 +22,10 @@ export const CollectionListHeader = ({
20
22
  disableBulkDelete,
21
23
  disableBulkEdit,
22
24
  hasCreatePermission,
25
+ hasDeletePermission,
23
26
  i18n,
24
27
  isBulkUploadEnabled,
28
+ isTrashEnabled,
25
29
  newDocumentURL,
26
30
  onBulkUploadSuccess,
27
31
  openBulkUpload,
@@ -37,6 +41,7 @@ export const CollectionListHeader = ({
37
41
  isInDrawer,
38
42
  selectedOption
39
43
  } = useListDrawerContext();
44
+ const isTrashRoute = viewType === 'trash';
40
45
  const {
41
46
  isGroupingBy
42
47
  } = useListQuery();
@@ -64,26 +69,36 @@ export const CollectionListHeader = ({
64
69
  disableBulkDelete: disableBulkDelete,
65
70
  disableBulkEdit: disableBulkEdit,
66
71
  label: getTranslation(collectionConfig?.labels?.plural, i18n),
67
- showSelectAllAcrossPages: !isGroupingBy
68
- }, "list-selection"), collectionConfig.folders && config.folders && /*#__PURE__*/_jsx(ListFolderPills, {
72
+ showSelectAllAcrossPages: !isGroupingBy,
73
+ viewType: viewType
74
+ }, "list-selection"), (collectionConfig.folders && config.folders || isTrashEnabled) && /*#__PURE__*/_jsx(DefaultListPill, {
75
+ collectionConfig: collectionConfig,
76
+ viewType: viewType
77
+ }, "list-header-default-button"), collectionConfig.folders && config.folders && /*#__PURE__*/_jsx(ByFolderPill, {
69
78
  collectionConfig: collectionConfig,
70
79
  folderCollectionSlug: config.folders.slug,
71
80
  viewType: viewType
72
- }, "list-header-buttons")].filter(Boolean),
81
+ }, "list-header-by-folder-button"), isTrashEnabled && /*#__PURE__*/_jsx(TrashPill, {
82
+ collectionConfig: collectionConfig,
83
+ viewType: viewType
84
+ }, "list-header-trash-button")].filter(Boolean),
73
85
  AfterListHeaderContent: Description,
74
86
  className: className,
75
87
  title: getTranslation(collectionConfig?.labels?.plural, i18n),
76
- TitleActions: [hasCreatePermission && /*#__PURE__*/_jsx(ListCreateNewButton, {
88
+ TitleActions: [hasCreatePermission && !isTrashRoute && /*#__PURE__*/_jsx(ListCreateNewButton, {
77
89
  collectionConfig: collectionConfig,
78
90
  hasCreatePermission: hasCreatePermission,
79
91
  newDocumentURL: newDocumentURL
80
- }, "list-header-create-new-doc"), hasCreatePermission && isBulkUploadEnabled && /*#__PURE__*/_jsx(ListBulkUploadButton, {
92
+ }, "list-header-create-new-doc"), hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && /*#__PURE__*/_jsx(ListBulkUploadButton, {
81
93
  collectionSlug: collectionConfig.slug,
82
94
  hasCreatePermission: hasCreatePermission,
83
95
  isBulkUploadEnabled: isBulkUploadEnabled,
84
96
  onBulkUploadSuccess: onBulkUploadSuccess,
85
97
  openBulkUpload: openBulkUpload
86
- }, "list-header-bulk-upload")].filter(Boolean)
98
+ }, "list-header-bulk-upload"), hasDeletePermission && isTrashEnabled && viewType === 'trash' && /*#__PURE__*/_jsx(ListEmptyTrashButton, {
99
+ collectionConfig: collectionConfig,
100
+ hasDeletePermission: hasDeletePermission
101
+ }, "list-header-empty-trash")].filter(Boolean)
87
102
  });
88
103
  };
89
104
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","useListDrawerContext","ListFolderPills","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListCreateNewButton","useConfig","useListQuery","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","onBulkUploadSuccess","openBulkUpload","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","isGroupingBy","_jsx","Actions","slug","AfterListHeaderContent","_jsxs","_Fragment","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","showSelectAllAcrossPages","folders","folderCollectionSlug"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { ListFolderPills } from '../../../elements/ListFolderPills/index.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n /** @deprecated This prop will be removed in the next major version.\n *\n * Opening of the bulk upload modal is handled internally.\n *\n * Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.\n */\n openBulkUpload: () => void\n smallBreak: boolean\n /** @deprecated This prop will be removed in the next major version. */\n t?: TFunction\n TitleActions?: React.ReactNode[]\n viewType?: 'folders' | 'list'\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n i18n,\n isBulkUploadEnabled,\n newDocumentURL,\n onBulkUploadSuccess,\n openBulkUpload,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n const { isGroupingBy } = useListQuery()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[\n <CloseModalButton\n className={`${drawerBaseClass}__header-close`}\n key=\"close-button\"\n slug={drawerSlug}\n />,\n ]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && !isGroupingBy && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n showSelectAllAcrossPages={!isGroupingBy}\n />\n ),\n collectionConfig.folders && config.folders && (\n <ListFolderPills\n collectionConfig={collectionConfig}\n folderCollectionSlug={config.folders.slug}\n key=\"list-header-buttons\"\n viewType={viewType}\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && (\n <ListCreateNewButton\n collectionConfig={collectionConfig}\n hasCreatePermission={hasCreatePermission}\n key=\"list-header-create-new-doc\"\n newDocumentURL={newDocumentURL}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n openBulkUpload={openBulkUpload}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","useListDrawerContext","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListCreateNewButton","ListEmptyTrashButton","ByFolderPill","DefaultListPill","TrashPill","useConfig","useListQuery","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","hasDeletePermission","i18n","isBulkUploadEnabled","isTrashEnabled","newDocumentURL","onBulkUploadSuccess","openBulkUpload","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","isTrashRoute","isGroupingBy","_jsx","Actions","slug","AfterListHeaderContent","_jsxs","_Fragment","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","showSelectAllAcrossPages","folders","folderCollectionSlug"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewButton,\n ListEmptyTrashButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { ByFolderPill } from '../../../elements/ListHeaderTabs/ByFolderPill.js'\nimport { DefaultListPill } from '../../../elements/ListHeaderTabs/DefaultListPill.js'\nimport './index.scss'\nimport { TrashPill } from '../../../elements/ListHeaderTabs/TrashPill.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n hasDeletePermission?: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n isTrashEnabled?: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n /** @deprecated This prop will be removed in the next major version.\n *\n * Opening of the bulk upload modal is handled internally.\n *\n * Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.\n */\n openBulkUpload: () => void\n smallBreak: boolean\n /** @deprecated This prop will be removed in the next major version. */\n t?: TFunction\n TitleActions?: React.ReactNode[]\n viewType?: ViewTypes\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n hasDeletePermission,\n i18n,\n isBulkUploadEnabled,\n isTrashEnabled,\n newDocumentURL,\n onBulkUploadSuccess,\n openBulkUpload,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n const isTrashRoute = viewType === 'trash'\n const { isGroupingBy } = useListQuery()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[\n <CloseModalButton\n className={`${drawerBaseClass}__header-close`}\n key=\"close-button\"\n slug={drawerSlug}\n />,\n ]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && !isGroupingBy && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n showSelectAllAcrossPages={!isGroupingBy}\n viewType={viewType}\n />\n ),\n ((collectionConfig.folders && config.folders) || isTrashEnabled) && (\n <DefaultListPill\n collectionConfig={collectionConfig}\n key=\"list-header-default-button\"\n viewType={viewType}\n />\n ),\n collectionConfig.folders && config.folders && (\n <ByFolderPill\n collectionConfig={collectionConfig}\n folderCollectionSlug={config.folders.slug}\n key=\"list-header-by-folder-button\"\n viewType={viewType}\n />\n ),\n isTrashEnabled && (\n <TrashPill\n collectionConfig={collectionConfig}\n key=\"list-header-trash-button\"\n viewType={viewType}\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && !isTrashRoute && (\n <ListCreateNewButton\n collectionConfig={collectionConfig}\n hasCreatePermission={hasCreatePermission}\n key=\"list-header-create-new-doc\"\n newDocumentURL={newDocumentURL}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n openBulkUpload={openBulkUpload}\n />\n ),\n hasDeletePermission && isTrashEnabled && viewType === 'trash' && (\n <ListEmptyTrashButton\n collectionConfig={collectionConfig}\n hasDeletePermission={hasDeletePermission}\n key=\"list-header-empty-trash\"\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ClientCollectionConfig, Where } from 'payload';
1
+ import type { ClientCollectionConfig, ViewTypes, Where } from 'payload';
2
2
  import React from 'react';
3
3
  export type ListSelectionProps = {
4
4
  collectionConfig?: ClientCollectionConfig;
@@ -7,6 +7,7 @@ export type ListSelectionProps = {
7
7
  label: string;
8
8
  modalPrefix?: string;
9
9
  showSelectAllAcrossPages?: boolean;
10
+ viewType?: ViewTypes;
10
11
  where?: Where;
11
12
  };
12
13
  export declare const ListSelection: React.FC<ListSelectionProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListSelection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAgC,MAAM,OAAO,CAAA;AAUpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyEtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListSelection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoFtD,CAAA"}