@payloadcms/ui 3.49.0-canary.7 → 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 (288) hide show
  1. package/dist/elements/ColumnSelector/index.js +1 -1
  2. package/dist/elements/ColumnSelector/index.js.map +1 -1
  3. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  4. package/dist/elements/DeleteDocument/index.js +65 -47
  5. package/dist/elements/DeleteDocument/index.js.map +1 -1
  6. package/dist/elements/DeleteDocument/index.scss +10 -0
  7. package/dist/elements/DeleteMany/index.d.ts +17 -2
  8. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  9. package/dist/elements/DeleteMany/index.js +162 -49
  10. package/dist/elements/DeleteMany/index.js.map +1 -1
  11. package/dist/elements/DeleteMany/index.scss +13 -0
  12. package/dist/elements/DocumentControls/index.d.ts +3 -0
  13. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  14. package/dist/elements/DocumentControls/index.js +24 -5
  15. package/dist/elements/DocumentControls/index.js.map +1 -1
  16. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -2
  18. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  19. package/dist/elements/DocumentDrawer/Provider.d.ts +4 -0
  20. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  21. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  22. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  23. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  24. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  25. package/dist/elements/DocumentFields/index.d.ts +1 -0
  26. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentFields/index.js +3 -1
  28. package/dist/elements/DocumentFields/index.js.map +1 -1
  29. package/dist/elements/EditMany/DrawerContent.d.ts +2 -0
  30. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  31. package/dist/elements/EditMany/DrawerContent.js +7 -3
  32. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  33. package/dist/elements/EditMany/index.d.ts +7 -2
  34. package/dist/elements/EditMany/index.d.ts.map +1 -1
  35. package/dist/elements/EditMany/index.js +39 -34
  36. package/dist/elements/EditMany/index.js.map +1 -1
  37. package/dist/elements/FolderView/Cell/index.client.d.ts +3 -2
  38. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Cell/index.client.js +3 -1
  40. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  41. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
  42. package/dist/elements/FolderView/Cell/index.server.js +2 -1
  43. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  44. package/dist/elements/GroupByBuilder/index.d.ts +9 -0
  45. package/dist/elements/GroupByBuilder/index.d.ts.map +1 -0
  46. package/dist/elements/GroupByBuilder/index.js +112 -0
  47. package/dist/elements/GroupByBuilder/index.js.map +1 -0
  48. package/dist/elements/GroupByBuilder/index.scss +39 -0
  49. package/dist/elements/LeaveWithoutSaving/index.d.ts +6 -1
  50. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  51. package/dist/elements/LeaveWithoutSaving/index.js +69 -49
  52. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +28 -4
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/ListControls/index.scss +4 -2
  57. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  58. package/dist/elements/ListDrawer/DrawerContent.js +34 -15
  59. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  60. package/dist/elements/ListDrawer/Provider.d.ts +9 -3
  61. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  62. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  63. package/dist/elements/ListDrawer/index.d.ts +19 -0
  64. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  65. package/dist/elements/ListDrawer/index.js +19 -0
  66. package/dist/elements/ListDrawer/index.js.map +1 -1
  67. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts +7 -0
  68. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -0
  69. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +164 -0
  70. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -0
  71. package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
  72. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  73. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  74. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  75. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +10 -0
  76. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +1 -0
  77. package/dist/elements/ListHeaderTabs/ByFolderPill.js +70 -0
  78. package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +1 -0
  79. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +9 -0
  80. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +1 -0
  81. package/dist/elements/ListHeaderTabs/DefaultListPill.js +68 -0
  82. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -0
  83. package/dist/elements/ListHeaderTabs/TrashPill.d.ts +6 -0
  84. package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +1 -0
  85. package/dist/elements/ListHeaderTabs/TrashPill.js +53 -0
  86. package/dist/elements/ListHeaderTabs/TrashPill.js.map +1 -0
  87. package/dist/elements/{ListFolderPills → ListHeaderTabs}/index.scss +1 -2
  88. package/dist/elements/ListSelection/index.scss +1 -1
  89. package/dist/elements/PageControls/GroupByPageControls.d.ts +16 -0
  90. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -0
  91. package/dist/elements/PageControls/GroupByPageControls.js +83 -0
  92. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -0
  93. package/dist/elements/PageControls/index.d.ts +17 -0
  94. package/dist/elements/PageControls/index.d.ts.map +1 -0
  95. package/dist/elements/PageControls/index.js +70 -0
  96. package/dist/elements/PageControls/index.js.map +1 -0
  97. package/dist/elements/PageControls/index.scss +40 -0
  98. package/dist/elements/Pagination/ClickableArrow/index.scss +3 -3
  99. package/dist/elements/Pagination/index.js +1 -1
  100. package/dist/elements/Pagination/index.js.map +1 -1
  101. package/dist/elements/Pagination/index.scss +4 -4
  102. package/dist/elements/PermanentlyDeleteButton/index.d.ts +14 -0
  103. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -0
  104. package/dist/elements/PermanentlyDeleteButton/index.js +147 -0
  105. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -0
  106. package/dist/elements/PublishMany/DrawerContent.d.ts +2 -0
  107. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  108. package/dist/elements/PublishMany/DrawerContent.js +7 -3
  109. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  110. package/dist/elements/PublishMany/index.d.ts +6 -1
  111. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  112. package/dist/elements/PublishMany/index.js +38 -33
  113. package/dist/elements/PublishMany/index.js.map +1 -1
  114. package/dist/elements/ReactSelect/types.d.ts +1 -0
  115. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  116. package/dist/elements/ReactSelect/types.js.map +1 -1
  117. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  118. package/dist/elements/RelationshipTable/index.js +16 -11
  119. package/dist/elements/RelationshipTable/index.js.map +1 -1
  120. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  121. package/dist/elements/RenderTitle/index.js +1 -0
  122. package/dist/elements/RenderTitle/index.js.map +1 -1
  123. package/dist/elements/RestoreButton/index.d.ts +15 -0
  124. package/dist/elements/RestoreButton/index.d.ts.map +1 -0
  125. package/dist/elements/RestoreButton/index.js +171 -0
  126. package/dist/elements/RestoreButton/index.js.map +1 -0
  127. package/dist/elements/RestoreButton/index.scss +25 -0
  128. package/dist/elements/RestoreMany/index.d.ts +9 -0
  129. package/dist/elements/RestoreMany/index.d.ts.map +1 -0
  130. package/dist/elements/RestoreMany/index.js +193 -0
  131. package/dist/elements/RestoreMany/index.js.map +1 -0
  132. package/dist/elements/RestoreMany/index.scss +25 -0
  133. package/dist/elements/Status/index.d.ts.map +1 -1
  134. package/dist/elements/Status/index.js +6 -4
  135. package/dist/elements/Status/index.js.map +1 -1
  136. package/dist/elements/StickyToolbar/index.d.ts +6 -0
  137. package/dist/elements/StickyToolbar/index.d.ts.map +1 -0
  138. package/dist/elements/StickyToolbar/index.js +11 -0
  139. package/dist/elements/StickyToolbar/index.js.map +1 -0
  140. package/dist/elements/StickyToolbar/index.scss +27 -0
  141. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  142. package/dist/elements/Table/DefaultCell/index.js +10 -8
  143. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  144. package/dist/elements/Table/OrderableTable.d.ts +2 -0
  145. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  146. package/dist/elements/Table/OrderableTable.js +4 -3
  147. package/dist/elements/Table/OrderableTable.js.map +1 -1
  148. package/dist/elements/Table/index.d.ts +1 -0
  149. package/dist/elements/Table/index.d.ts.map +1 -1
  150. package/dist/elements/Table/index.js +5 -4
  151. package/dist/elements/Table/index.js.map +1 -1
  152. package/dist/elements/TrashBanner/index.d.ts +4 -0
  153. package/dist/elements/TrashBanner/index.d.ts.map +1 -0
  154. package/dist/elements/TrashBanner/index.js +37 -0
  155. package/dist/elements/TrashBanner/index.js.map +1 -0
  156. package/dist/elements/TrashBanner/index.scss +20 -0
  157. package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -0
  158. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  159. package/dist/elements/UnpublishMany/DrawerContent.js +6 -2
  160. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  161. package/dist/elements/UnpublishMany/index.d.ts +6 -1
  162. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  163. package/dist/elements/UnpublishMany/index.js +38 -33
  164. package/dist/elements/UnpublishMany/index.js.map +1 -1
  165. package/dist/elements/WhereBuilder/index.js +3 -3
  166. package/dist/elements/WhereBuilder/index.js.map +1 -1
  167. package/dist/exports/client/index.d.ts +2 -0
  168. package/dist/exports/client/index.d.ts.map +1 -1
  169. package/dist/exports/client/index.js +24 -22
  170. package/dist/exports/client/index.js.map +4 -4
  171. package/dist/fields/Blocks/index.d.ts.map +1 -1
  172. package/dist/fields/Blocks/index.js +1 -0
  173. package/dist/fields/Blocks/index.js.map +1 -1
  174. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  175. package/dist/fields/Checkbox/Input.js +2 -0
  176. package/dist/fields/Checkbox/Input.js.map +1 -1
  177. package/dist/fields/Select/Input.d.ts +1 -0
  178. package/dist/fields/Select/Input.d.ts.map +1 -1
  179. package/dist/fields/Select/Input.js +48 -45
  180. package/dist/fields/Select/Input.js.map +1 -1
  181. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  182. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  183. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +7 -0
  184. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  185. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  186. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  187. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  188. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  189. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  190. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  191. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  192. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  193. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  194. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  195. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  196. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  197. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  198. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  199. package/dist/icons/Trash/index.d.ts +6 -0
  200. package/dist/icons/Trash/index.d.ts.map +1 -0
  201. package/dist/icons/Trash/index.js +22 -0
  202. package/dist/icons/Trash/index.js.map +1 -0
  203. package/dist/icons/Trash/index.scss +6 -0
  204. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  205. package/dist/providers/DocumentInfo/index.js +6 -0
  206. package/dist/providers/DocumentInfo/index.js.map +1 -1
  207. package/dist/providers/DocumentInfo/types.d.ts +7 -0
  208. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  209. package/dist/providers/DocumentInfo/types.js.map +1 -1
  210. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  211. package/dist/providers/ListQuery/index.js +24 -13
  212. package/dist/providers/ListQuery/index.js.map +1 -1
  213. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  214. package/dist/providers/ListQuery/mergeQuery.js +15 -1
  215. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  216. package/dist/providers/ListQuery/types.d.ts +7 -3
  217. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  218. package/dist/providers/ListQuery/types.js.map +1 -1
  219. package/dist/providers/Selection/index.d.ts +6 -2
  220. package/dist/providers/Selection/index.d.ts.map +1 -1
  221. package/dist/providers/Selection/index.js +37 -19
  222. package/dist/providers/Selection/index.js.map +1 -1
  223. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  224. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  225. package/dist/providers/ServerFunctions/index.js.map +1 -1
  226. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  227. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  228. package/dist/providers/TableColumns/buildColumnState/index.js +4 -2
  229. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  230. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  231. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  232. package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -2
  233. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  234. package/dist/styles.css +1 -1
  235. package/dist/utilities/buildFormState.d.ts.map +1 -1
  236. package/dist/utilities/buildFormState.js +2 -0
  237. package/dist/utilities/buildFormState.js.map +1 -1
  238. package/dist/utilities/buildTableState.js +5 -7
  239. package/dist/utilities/buildTableState.js.map +1 -1
  240. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  241. package/dist/utilities/copyDataFromLocale.js +29 -19
  242. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  243. package/dist/{elements/WhereBuilder/reduceFields.d.ts → utilities/reduceFieldsToOptions.d.ts} +3 -3
  244. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -0
  245. package/dist/{elements/WhereBuilder/reduceFields.js → utilities/reduceFieldsToOptions.js} +11 -11
  246. package/dist/utilities/reduceFieldsToOptions.js.map +1 -0
  247. package/dist/utilities/renderTable.d.ts +9 -3
  248. package/dist/utilities/renderTable.d.ts.map +1 -1
  249. package/dist/utilities/renderTable.js +63 -22
  250. package/dist/utilities/renderTable.js.map +1 -1
  251. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  252. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  253. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  254. package/dist/views/CollectionFolder/index.js +15 -5
  255. package/dist/views/CollectionFolder/index.js.map +1 -1
  256. package/dist/views/Edit/Auth/index.js +5 -4
  257. package/dist/views/Edit/Auth/index.js.map +1 -1
  258. package/dist/views/Edit/SetDocumentStepNav/index.d.ts +1 -0
  259. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  260. package/dist/views/Edit/SetDocumentStepNav/index.js +26 -15
  261. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  262. package/dist/views/Edit/index.d.ts.map +1 -1
  263. package/dist/views/Edit/index.js +59 -35
  264. package/dist/views/Edit/index.js.map +1 -1
  265. package/dist/views/List/GroupByHeader/index.d.ts +10 -0
  266. package/dist/views/List/GroupByHeader/index.d.ts.map +1 -0
  267. package/dist/views/List/GroupByHeader/index.js +29 -0
  268. package/dist/views/List/GroupByHeader/index.js.map +1 -0
  269. package/dist/views/List/GroupByHeader/index.scss +17 -0
  270. package/dist/views/List/ListHeader/index.d.ts +4 -2
  271. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  272. package/dist/views/List/ListHeader/index.js +30 -10
  273. package/dist/views/List/ListHeader/index.js.map +1 -1
  274. package/dist/views/List/ListSelection/index.d.ts +5 -1
  275. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  276. package/dist/views/List/ListSelection/index.js +53 -30
  277. package/dist/views/List/ListSelection/index.js.map +1 -1
  278. package/dist/views/List/index.d.ts.map +1 -1
  279. package/dist/views/List/index.js +122 -170
  280. package/dist/views/List/index.js.map +1 -1
  281. package/dist/views/List/index.scss +12 -35
  282. package/package.json +5 -5
  283. package/dist/elements/ListFolderPills/index.d.ts +0 -10
  284. package/dist/elements/ListFolderPills/index.d.ts.map +0 -1
  285. package/dist/elements/ListFolderPills/index.js +0 -97
  286. package/dist/elements/ListFolderPills/index.js.map +0 -1
  287. package/dist/elements/WhereBuilder/reduceFields.d.ts.map +0 -1
  288. package/dist/elements/WhereBuilder/reduceFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getFieldPermissions","React","Fragment","useCallback","useEffect","useMemo","useState","toast","Button","EmailAndUsernameFields","CheckboxField","ConfirmPasswordField","PasswordField","useFormFields","useFormModified","useAuth","useConfig","useDocumentInfo","useTranslation","APIKey","baseClass","Auth","props","$","className","collectionSlug","disableLocalStrategy","email","loginWithUsername","operation","readOnly","requirePassword","setValidateBeforeSubmit","useAPIKey","username","verify","permissions","changingPassword","setChangingPassword","enableAPIKey","_temp","dispatchFields","_temp2","modified","i18n","t","docPermissions","isEditing","isInitializing","config","t0","routes","t1","serverURL","api","showPasswordFields","showUnlock","hasPasswordFieldOverride","fields","hasLoginFieldOverride","passwordPermissions","field","name","type","parentName","create","update","hasEmailAndUsernameFields","requireEmail","allowEmailLogin","emailPermission","usernamePermission","enableFields","disabled","apiKeyPermissions","apiKeyReadOnly","enableAPIKeyReadOnly","canReadApiKey","read","t2","bb0","collection","collections","Boolean","unlock","undefined","hasPermissionToUnlock","t3","changingPassword_0","errorMessage","path","valid","handleChangePassword","t4","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","t5","t6","t7","filter","t8","value","_jsx","children","_jsxs","admin","label","schemaPath","enabled","t9","join","autoComplete","required","indexPath","parentPath","parentSchemaPath","buttonStyle","onClick","size","id","reducer"],"sources":["../../../../src/views/Edit/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { getFieldPermissions } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js'\nimport { CheckboxField } from '../../../fields/Checkbox/index.js'\nimport { ConfirmPasswordField } from '../../../fields/ConfirmPassword/index.js'\nimport { PasswordField } from '../../../fields/Password/index.js'\nimport { useFormFields, useFormModified } from '../../../forms/Form/context.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n loginWithUsername,\n operation,\n readOnly,\n requirePassword,\n setValidateBeforeSubmit,\n useAPIKey,\n username,\n verify,\n } = props\n\n const { permissions } = useAuth()\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => (fields && fields?.enableAPIKey) || null)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { docPermissions, isEditing, isInitializing } = useDocumentInfo()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n let showPasswordFields = true\n let showUnlock = true\n const hasPasswordFieldOverride =\n typeof docPermissions.fields === 'object' && 'password' in docPermissions.fields\n const hasLoginFieldOverride =\n typeof docPermissions.fields === 'object' &&\n ('username' in docPermissions.fields || 'email' in docPermissions.fields)\n\n if (hasPasswordFieldOverride) {\n const { permissions: passwordPermissions } = getFieldPermissions({\n field: { name: 'password', type: 'text' },\n operation,\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (operation === 'create') {\n showPasswordFields =\n passwordPermissions === true ||\n (typeof passwordPermissions === 'object' && passwordPermissions.create)\n } else {\n showPasswordFields =\n passwordPermissions === true ||\n (typeof passwordPermissions === 'object' && passwordPermissions.update)\n }\n }\n\n if (hasLoginFieldOverride) {\n const hasEmailAndUsernameFields =\n loginWithUsername && (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin)\n\n const { operation: emailPermission } = getFieldPermissions({\n field: { name: 'email', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n const { operation: usernamePermission } = getFieldPermissions({\n field: { name: 'username', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (hasEmailAndUsernameFields) {\n showUnlock = usernamePermission || emailPermission\n } else if (loginWithUsername && !hasEmailAndUsernameFields) {\n showUnlock = usernamePermission\n } else {\n showUnlock = emailPermission\n }\n }\n\n const enableFields =\n (!disableLocalStrategy ||\n (typeof disableLocalStrategy === 'object' && disableLocalStrategy.enableFields === true)) &&\n (showUnlock || showPasswordFields)\n\n const disabled = readOnly || isInitializing\n\n const apiKeyPermissions =\n docPermissions?.fields === true ? true : docPermissions?.fields?.enableAPIKey\n\n const apiKeyReadOnly =\n readOnly ||\n apiKeyPermissions === true ||\n (apiKeyPermissions && typeof apiKeyPermissions === 'object' && !apiKeyPermissions?.update)\n\n const enableAPIKeyReadOnly =\n readOnly || (apiKeyPermissions !== true && !apiKeyPermissions?.update)\n\n const canReadApiKey = apiKeyPermissions === true || apiKeyPermissions?.read\n\n const hasPermissionToUnlock: boolean = useMemo(() => {\n const collection = permissions?.collections?.[collectionSlug]\n\n if (collection) {\n return Boolean('unlock' in collection ? collection.unlock : undefined)\n }\n\n return false\n }, [permissions, collectionSlug])\n\n const handleChangePassword = useCallback(\n (changingPassword: boolean) => {\n if (changingPassword) {\n setValidateBeforeSubmit(true)\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'password',\n valid: false,\n })\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'confirm-password',\n valid: false,\n })\n } else {\n setValidateBeforeSubmit(false)\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(changingPassword)\n },\n [dispatchFields, t, setValidateBeforeSubmit],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body:\n loginWithUsername && username ? JSON.stringify({ username }) : JSON.stringify({ email }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'))\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, username, t, loginWithUsername])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !enableFields && !useAPIKey) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {enableFields && (\n <React.Fragment>\n <EmailAndUsernameFields\n loginWithUsername={loginWithUsername}\n operation={operation}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n t={t}\n />\n {(changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && (\n <div className={`${baseClass}__changing-password`}>\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path=\"password\"\n schemaPath=\"password\"\n />\n <ConfirmPasswordField disabled={readOnly} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => handleChangePassword(false)}\n size=\"medium\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword &&\n !requirePassword &&\n !disableLocalStrategy &&\n showPasswordFields && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"medium\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && hasPermissionToUnlock && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled || !showUnlock}\n onClick={() => void unlock()}\n size=\"medium\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n {canReadApiKey && (\n <Fragment>\n <CheckboxField\n field={{\n name: 'enableAPIKey',\n admin: { disabled, readOnly: enableAPIKeyReadOnly },\n label: t('authentication:enableAPIKey'),\n }}\n path=\"enableAPIKey\"\n schemaPath={`${collectionSlug}.enableAPIKey`}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={apiKeyReadOnly} />\n </Fragment>\n )}\n </div>\n )}\n {verify && isEditing && (\n <CheckboxField\n field={{\n name: '_verified',\n admin: { disabled, readOnly },\n label: t('authentication:verified'),\n }}\n path=\"_verified\"\n schemaPath={`${collectionSlug}._verified`}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getFieldPermissions","React","Fragment","useCallback","useEffect","useMemo","useState","toast","Button","EmailAndUsernameFields","CheckboxField","ConfirmPasswordField","PasswordField","useFormFields","useFormModified","useAuth","useConfig","useDocumentInfo","useTranslation","APIKey","baseClass","Auth","props","$","className","collectionSlug","disableLocalStrategy","email","loginWithUsername","operation","readOnly","requirePassword","setValidateBeforeSubmit","useAPIKey","username","verify","permissions","changingPassword","setChangingPassword","enableAPIKey","_temp","dispatchFields","_temp2","modified","i18n","t","docPermissions","isEditing","isInitializing","isTrashed","config","t0","routes","t1","serverURL","api","showPasswordFields","showUnlock","hasPasswordFieldOverride","fields","hasLoginFieldOverride","passwordPermissions","field","name","type","parentName","create","update","hasEmailAndUsernameFields","requireEmail","allowEmailLogin","emailPermission","usernamePermission","enableFields","disabled","apiKeyPermissions","apiKeyReadOnly","enableAPIKeyReadOnly","canReadApiKey","read","t2","bb0","collection","collections","Boolean","unlock","undefined","hasPermissionToUnlock","t3","changingPassword_0","errorMessage","path","valid","handleChangePassword","t4","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","t5","t6","t7","filter","t8","value","_jsx","children","_jsxs","admin","label","schemaPath","enabled","t9","join","autoComplete","required","indexPath","parentPath","parentSchemaPath","buttonStyle","onClick","size","id","reducer"],"sources":["../../../../src/views/Edit/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { getFieldPermissions } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js'\nimport { CheckboxField } from '../../../fields/Checkbox/index.js'\nimport { ConfirmPasswordField } from '../../../fields/ConfirmPassword/index.js'\nimport { PasswordField } from '../../../fields/Password/index.js'\nimport { useFormFields, useFormModified } from '../../../forms/Form/context.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n loginWithUsername,\n operation,\n readOnly,\n requirePassword,\n setValidateBeforeSubmit,\n useAPIKey,\n username,\n verify,\n } = props\n\n const { permissions } = useAuth()\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => (fields && fields?.enableAPIKey) || null)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { docPermissions, isEditing, isInitializing, isTrashed } = useDocumentInfo()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n let showPasswordFields = true\n let showUnlock = true\n const hasPasswordFieldOverride =\n typeof docPermissions.fields === 'object' && 'password' in docPermissions.fields\n const hasLoginFieldOverride =\n typeof docPermissions.fields === 'object' &&\n ('username' in docPermissions.fields || 'email' in docPermissions.fields)\n\n if (hasPasswordFieldOverride) {\n const { permissions: passwordPermissions } = getFieldPermissions({\n field: { name: 'password', type: 'text' },\n operation,\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (operation === 'create') {\n showPasswordFields =\n passwordPermissions === true ||\n (typeof passwordPermissions === 'object' && passwordPermissions.create)\n } else {\n showPasswordFields =\n passwordPermissions === true ||\n (typeof passwordPermissions === 'object' && passwordPermissions.update)\n }\n }\n\n if (hasLoginFieldOverride) {\n const hasEmailAndUsernameFields =\n loginWithUsername && (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin)\n\n const { operation: emailPermission } = getFieldPermissions({\n field: { name: 'email', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n const { operation: usernamePermission } = getFieldPermissions({\n field: { name: 'username', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (hasEmailAndUsernameFields) {\n showUnlock = usernamePermission || emailPermission\n } else if (loginWithUsername && !hasEmailAndUsernameFields) {\n showUnlock = usernamePermission\n } else {\n showUnlock = emailPermission\n }\n }\n\n const enableFields =\n (!disableLocalStrategy ||\n (typeof disableLocalStrategy === 'object' && disableLocalStrategy.enableFields === true)) &&\n (showUnlock || showPasswordFields)\n\n const disabled = readOnly || isInitializing || isTrashed\n\n const apiKeyPermissions =\n docPermissions?.fields === true ? true : docPermissions?.fields?.enableAPIKey\n\n const apiKeyReadOnly =\n readOnly ||\n apiKeyPermissions === true ||\n (apiKeyPermissions && typeof apiKeyPermissions === 'object' && !apiKeyPermissions?.update)\n\n const enableAPIKeyReadOnly =\n readOnly || (apiKeyPermissions !== true && !apiKeyPermissions?.update)\n\n const canReadApiKey = apiKeyPermissions === true || apiKeyPermissions?.read\n\n const hasPermissionToUnlock: boolean = useMemo(() => {\n const collection = permissions?.collections?.[collectionSlug]\n\n if (collection) {\n return Boolean('unlock' in collection ? collection.unlock : undefined)\n }\n\n return false\n }, [permissions, collectionSlug])\n\n const handleChangePassword = useCallback(\n (changingPassword: boolean) => {\n if (changingPassword) {\n setValidateBeforeSubmit(true)\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'password',\n valid: false,\n })\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'confirm-password',\n valid: false,\n })\n } else {\n setValidateBeforeSubmit(false)\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(changingPassword)\n },\n [dispatchFields, t, setValidateBeforeSubmit],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body:\n loginWithUsername && username ? JSON.stringify({ username }) : JSON.stringify({ email }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'))\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, username, t, loginWithUsername])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !enableFields && !useAPIKey) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {enableFields && (\n <React.Fragment>\n <EmailAndUsernameFields\n loginWithUsername={loginWithUsername}\n operation={operation}\n permissions={docPermissions?.fields}\n readOnly={readOnly || isTrashed}\n t={t}\n />\n {(changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && (\n <div className={`${baseClass}__changing-password`}>\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path=\"password\"\n schemaPath=\"password\"\n />\n <ConfirmPasswordField disabled={readOnly || isTrashed} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => handleChangePassword(false)}\n size=\"medium\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword &&\n !requirePassword &&\n !disableLocalStrategy &&\n showPasswordFields && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"medium\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && hasPermissionToUnlock && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled || !showUnlock}\n onClick={() => void unlock()}\n size=\"medium\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n {canReadApiKey && (\n <Fragment>\n <CheckboxField\n field={{\n name: 'enableAPIKey',\n admin: { disabled, readOnly: enableAPIKeyReadOnly },\n label: t('authentication:enableAPIKey'),\n }}\n path=\"enableAPIKey\"\n schemaPath={`${collectionSlug}.enableAPIKey`}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={apiKeyReadOnly} />\n </Fragment>\n )}\n </div>\n )}\n {verify && isEditing && (\n <CheckboxField\n field={{\n name: '_verified',\n admin: { disabled, readOnly },\n label: t('authentication:verified'),\n }}\n path=\"_verified\"\n schemaPath={`${collectionSlug}._verified`}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ export declare const SetDocumentStepNav: React.FC<{
4
4
  globalLabel?: SanitizedGlobalConfig['label'];
5
5
  globalSlug?: SanitizedGlobalConfig['slug'];
6
6
  id?: number | string;
7
+ isTrashed?: boolean;
7
8
  pluralLabel?: SanitizedCollectionConfig['labels']['plural'];
8
9
  useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle'];
9
10
  view?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/SetDocumentStepNav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAe/E,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAyFA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/SetDocumentStepNav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAe/E,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CA4GA,CAAA"}
@@ -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,qBAokBzB"}
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"}
@@ -62,6 +62,7 @@ export function DefaultEditView({
62
62
  disableLeaveWithoutSaving,
63
63
  docPermissions,
64
64
  documentIsLocked,
65
+ documentLockState,
65
66
  getDocPermissions,
66
67
  getDocPreferences,
67
68
  globalSlug,
@@ -71,10 +72,12 @@ export function DefaultEditView({
71
72
  initialState,
72
73
  isEditing,
73
74
  isInitializing,
75
+ isTrashed,
74
76
  lastUpdateTime,
75
77
  redirectAfterCreate,
76
78
  redirectAfterDelete,
77
79
  redirectAfterDuplicate,
80
+ redirectAfterRestore,
78
81
  savedDocumentData,
79
82
  setCurrentEditor,
80
83
  setDocumentIsLocked,
@@ -87,6 +90,7 @@ export function DefaultEditView({
87
90
  drawerSlug,
88
91
  onDelete,
89
92
  onDuplicate,
93
+ onRestore,
90
94
  onSave: onSaveFromContext
91
95
  } = useDocumentDrawerContext();
92
96
  const isInDrawer = Boolean(drawerSlug);
@@ -153,11 +157,6 @@ export function DefaultEditView({
153
157
  const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
154
158
  const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
155
159
  const isLockExpired = Date.now() > lockExpiryTime;
156
- const documentLockStateRef = useRef({
157
- hasShownLockedModal: false,
158
- isLocked: false,
159
- user: null
160
- });
161
160
  const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug]);
162
161
  const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {
163
162
  if (operation === 'create' && auth && !auth.disableLocalStrategy) {
@@ -165,25 +164,50 @@ export function DefaultEditView({
165
164
  }
166
165
  return false;
167
166
  });
167
+ const nextHrefRef = React.useRef(null);
168
168
  const handleDocumentLocking = useCallback(lockedState => {
169
169
  setDocumentIsLocked(true);
170
- const previousOwnerID = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
170
+ const previousOwnerID = typeof documentLockState.current?.user === 'object' ? documentLockState.current?.user?.id : documentLockState.current?.user;
171
171
  if (lockedState) {
172
172
  const lockedUserID = typeof lockedState.user === 'string' || typeof lockedState.user === 'number' ? lockedState.user : lockedState.user.id;
173
- if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {
173
+ if (!documentLockState.current || lockedUserID !== previousOwnerID) {
174
174
  if (previousOwnerID === user.id && lockedUserID !== user.id) {
175
175
  setShowTakeOverModal(true);
176
- documentLockStateRef.current.hasShownLockedModal = true;
176
+ documentLockState.current.hasShownLockedModal = true;
177
177
  }
178
- documentLockStateRef.current = {
179
- hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,
178
+ documentLockState.current = {
179
+ hasShownLockedModal: documentLockState.current?.hasShownLockedModal || false,
180
180
  isLocked: true,
181
181
  user: lockedState.user
182
182
  };
183
183
  setCurrentEditor(lockedState.user);
184
184
  }
185
185
  }
186
- }, [setCurrentEditor, setDocumentIsLocked, user?.id]);
186
+ }, [documentLockState, setCurrentEditor, setDocumentIsLocked, user?.id]);
187
+ const handlePrevent = useCallback(nextHref => {
188
+ nextHrefRef.current = nextHref;
189
+ }, []);
190
+ const handleLeaveConfirm = useCallback(async () => {
191
+ const lockUser = documentLockState.current?.user;
192
+ const isLockOwnedByCurrentUser = typeof lockUser === 'object' ? lockUser?.id === user?.id : lockUser === user?.id;
193
+ if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {
194
+ // Check where user is trying to go
195
+ const nextPath = nextHrefRef.current ? new URL(nextHrefRef.current).pathname : '';
196
+ const isInternalView = ['/preview', '/api', '/versions'].some(path => nextPath.includes(path));
197
+ // Only retain the lock if the user is still viewing the document
198
+ if (!isInternalView) {
199
+ if (isLockOwnedByCurrentUser) {
200
+ try {
201
+ await unlockDocument(id, collectionSlug ?? globalSlug);
202
+ setDocumentIsLocked(false);
203
+ setCurrentEditor(null);
204
+ } catch (err) {
205
+ console.error('Failed to unlock before leave', err);
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }, [collectionSlug, documentIsLocked, documentLockState, globalSlug, id, isLockingEnabled, setCurrentEditor, setDocumentIsLocked, unlockDocument, user?.id]);
187
211
  const onSave = useCallback(async json => {
188
212
  const controller = handleAbortRef(abortOnSaveRef);
189
213
  const document = json?.doc || json?.result;
@@ -259,10 +283,7 @@ export function DefaultEditView({
259
283
  setEditSessionStartTime(currentTime);
260
284
  }
261
285
  const docPreferences_0 = await getDocPreferences();
262
- const {
263
- lockedState: lockedState_0,
264
- state: state_0
265
- } = await getFormState({
286
+ const result = await getFormState({
266
287
  id,
267
288
  collectionSlug,
268
289
  docPermissions,
@@ -279,6 +300,13 @@ export function DefaultEditView({
279
300
  signal: controller_0.signal,
280
301
  updateLastEdited
281
302
  });
303
+ if (!result) {
304
+ return;
305
+ }
306
+ const {
307
+ lockedState: lockedState_0,
308
+ state: state_0
309
+ } = result;
282
310
  if (isLockingEnabled) {
283
311
  handleDocumentLocking(lockedState_0);
284
312
  }
@@ -288,21 +316,9 @@ export function DefaultEditView({
288
316
  // Clean up when the component unmounts or when the document is unlocked
289
317
  useEffect(() => {
290
318
  return () => {
291
- if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {
292
- // Only retain the lock if the user is still viewing the document
293
- const shouldUnlockDocument = !['preview', 'api', 'versions'].some(path => window.location.pathname.includes(path));
294
- if (shouldUnlockDocument) {
295
- // Check if this user is still the current editor
296
- if (typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id === user?.id : documentLockStateRef.current?.user === user?.id) {
297
- void unlockDocument(id, collectionSlug ?? globalSlug);
298
- setDocumentIsLocked(false);
299
- setCurrentEditor(null);
300
- }
301
- }
302
- }
303
319
  setShowTakeOverModal(false);
304
320
  };
305
- }, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
321
+ }, []);
306
322
  useEffect(() => {
307
323
  const abortOnChange = abortOnChangeRef.current;
308
324
  const abortOnSave = abortOnSaveRef.current;
@@ -311,7 +327,7 @@ export function DefaultEditView({
311
327
  abortAndIgnore(abortOnSave);
312
328
  };
313
329
  }, []);
314
- const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal && !documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
330
+ const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal && !documentLockState.current?.hasShownLockedModal && !isLockExpired;
315
331
  const isFolderCollection = config.folders && collectionSlug === config.folders?.slug;
316
332
  return /*#__PURE__*/_jsx("main", {
317
333
  className: [baseClass, (id || globalSlug) && `${baseClass}--is-editing`, globalSlug && `global-edit--${globalSlug}`, collectionSlug && `collection-edit--${collectionSlug}`, isLivePreviewing && previewWindowType === 'iframe' && `${baseClass}--is-live-previewing`].filter(Boolean).join(' '),
@@ -320,7 +336,7 @@ export function DefaultEditView({
320
336
  children: /*#__PURE__*/_jsxs(Form, {
321
337
  action: action,
322
338
  className: `${baseClass}__form`,
323
- disabled: isReadOnlyForIncomingUser || isInitializing || !hasSavePermission,
339
+ disabled: isReadOnlyForIncomingUser || isInitializing || !hasSavePermission || isTrashed,
324
340
  disableValidationOnSubmit: !validateBeforeSubmit,
325
341
  initialState: !isInitializing && initialState,
326
342
  isDocumentForm: true,
@@ -342,7 +358,7 @@ export function DefaultEditView({
342
358
  setIsReadOnlyForIncomingUser(true);
343
359
  setShowTakeOverModal(false);
344
360
  },
345
- onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled),
361
+ onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockState, isLockingEnabled),
346
362
  updatedAt: lastUpdateTime,
347
363
  user: currentEditor
348
364
  }), isLockingEnabled && showTakeOverModal && /*#__PURE__*/_jsx(DocumentTakeOver, {
@@ -355,10 +371,14 @@ export function DefaultEditView({
355
371
  setIsReadOnlyForIncomingUser(true);
356
372
  setShowTakeOverModal(false);
357
373
  }
358
- }), !isReadOnlyForIncomingUser && preventLeaveWithoutSaving && /*#__PURE__*/_jsx(LeaveWithoutSaving, {}), !isInDrawer && /*#__PURE__*/_jsx(SetDocumentStepNav, {
374
+ }), !isReadOnlyForIncomingUser && preventLeaveWithoutSaving && /*#__PURE__*/_jsx(LeaveWithoutSaving, {
375
+ onConfirm: handleLeaveConfirm,
376
+ onPrevent: handlePrevent
377
+ }), !isInDrawer && /*#__PURE__*/_jsx(SetDocumentStepNav, {
359
378
  collectionSlug: collectionConfig?.slug,
360
379
  globalSlug: globalConfig?.slug,
361
380
  id: id,
381
+ isTrashed: isTrashed,
362
382
  pluralLabel: collectionConfig?.labels?.plural,
363
383
  useAsTitle: collectionConfig?.admin?.useAsTitle
364
384
  }), /*#__PURE__*/_jsx(SetDocumentTitle, {
@@ -376,7 +396,7 @@ export function DefaultEditView({
376
396
  SaveDraftButton
377
397
  },
378
398
  data: savedDocumentData,
379
- disableActions: disableActions || isFolderCollection,
399
+ disableActions: disableActions || isFolderCollection || isTrashed,
380
400
  disableCreate: disableCreate,
381
401
  EditMenuItems: EditMenuItems,
382
402
  hasPublishPermission: hasPublishPermission,
@@ -384,15 +404,18 @@ export function DefaultEditView({
384
404
  id: id,
385
405
  isEditing: isEditing,
386
406
  isInDrawer: isInDrawer,
407
+ isTrashed: isTrashed,
387
408
  onDelete: onDelete,
388
409
  onDrawerCreateNew: clearDoc,
389
410
  onDuplicate: onDuplicate,
411
+ onRestore: onRestore,
390
412
  onSave: onSave,
391
- onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled, setIsReadOnlyForIncomingUser),
413
+ onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockState, isLockingEnabled, setIsReadOnlyForIncomingUser),
392
414
  permissions: docPermissions,
393
415
  readOnlyForIncomingUser: isReadOnlyForIncomingUser,
394
416
  redirectAfterDelete: redirectAfterDelete,
395
417
  redirectAfterDuplicate: redirectAfterDuplicate,
418
+ redirectAfterRestore: redirectAfterRestore,
396
419
  slug: collectionConfig?.slug || globalConfig?.slug,
397
420
  user: currentEditor
398
421
  }), /*#__PURE__*/_jsxs("div", {
@@ -430,7 +453,8 @@ export function DefaultEditView({
430
453
  docPermissions: docPermissions,
431
454
  fields: docConfig.fields,
432
455
  forceSidebarWrap: isLivePreviewing,
433
- readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
456
+ isTrashed: isTrashed,
457
+ readOnly: isReadOnlyForIncomingUser || !hasSavePermission || isTrashed,
434
458
  schemaPathSegments: schemaPathSegments
435
459
  }), AfterDocument]
436
460
  }), isLivePreviewEnabled && !isInDrawer && /*#__PURE__*/_jsx(LivePreviewWindow, {