@payloadcms/ui 4.0.0-canary.6 → 4.0.0-canary.8

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 (189) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/elements/AddNewRelation/index.css +28 -28
  3. package/dist/elements/AppHeader/index.d.ts +2 -1
  4. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  5. package/dist/elements/AppHeader/index.js +2 -0
  6. package/dist/elements/AppHeader/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.js +13 -0
  9. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  10. package/dist/elements/DocumentFields/index.css +8 -0
  11. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +38 -13
  12. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  13. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +37 -31
  14. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  15. package/dist/elements/Hierarchy/Tree/index.css +1 -1
  16. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  17. package/dist/elements/Hierarchy/Tree/index.js +18 -5
  18. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  19. package/dist/elements/RelationshipTable/index.css +1 -2
  20. package/dist/elements/RenderServerComponent/clientOnly.d.ts +8 -0
  21. package/dist/elements/RenderServerComponent/clientOnly.d.ts.map +1 -0
  22. package/dist/elements/RenderServerComponent/clientOnly.js +56 -0
  23. package/dist/elements/RenderServerComponent/clientOnly.js.map +1 -0
  24. package/dist/elements/SidebarRow/index.css +0 -2
  25. package/dist/elements/Table/index.css +7 -2
  26. package/dist/elements/UserMenu/index.d.ts +1 -0
  27. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  28. package/dist/elements/UserMenu/index.js +2 -1
  29. package/dist/elements/UserMenu/index.js.map +1 -1
  30. package/dist/exports/client/index.d.ts +1 -0
  31. package/dist/exports/client/index.d.ts.map +1 -1
  32. package/dist/exports/client/index.js +1 -86
  33. package/dist/exports/client/index.js.map +4 -4
  34. package/dist/exports/rsc/index.d.ts +2 -0
  35. package/dist/exports/rsc/index.d.ts.map +1 -1
  36. package/dist/exports/rsc/index.js +2 -0
  37. package/dist/exports/rsc/index.js.map +1 -1
  38. package/dist/exports/server.d.ts +3 -0
  39. package/dist/exports/server.d.ts.map +1 -0
  40. package/dist/exports/server.js +2 -0
  41. package/dist/exports/server.js.map +1 -0
  42. package/dist/exports/shared/index.js.map +2 -2
  43. package/dist/fields/Group/index.css +1 -7
  44. package/dist/forms/Form/types.d.ts +2 -2
  45. package/dist/forms/Form/types.d.ts.map +1 -1
  46. package/dist/forms/Form/types.js.map +1 -1
  47. package/dist/forms/RenderFields/index.css +4 -4
  48. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  49. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  50. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +9 -1
  51. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  52. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -2
  53. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  54. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  55. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -2
  56. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  57. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  58. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -2
  59. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  60. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  61. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  62. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  63. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  64. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  65. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  66. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  67. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  68. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  69. package/dist/providers/Auth/index.d.ts +2 -2
  70. package/dist/providers/Auth/index.d.ts.map +1 -1
  71. package/dist/providers/Auth/index.js.map +1 -1
  72. package/dist/providers/DocumentInfo/types.d.ts +2 -2
  73. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  74. package/dist/providers/DocumentInfo/types.js.map +1 -1
  75. package/dist/providers/Root/index.d.ts +2 -2
  76. package/dist/providers/Root/index.d.ts.map +1 -1
  77. package/dist/providers/Root/index.js.map +1 -1
  78. package/dist/styles.css +1369 -1
  79. package/dist/templates/Default/index.d.ts.map +1 -1
  80. package/dist/templates/Default/index.js +6 -0
  81. package/dist/templates/Default/index.js.map +1 -1
  82. package/dist/utilities/buildFormState.d.ts.map +1 -1
  83. package/dist/utilities/buildFormState.js +1 -0
  84. package/dist/utilities/buildFormState.js.map +1 -1
  85. package/dist/utilities/formatRelativeDate.d.ts +15 -0
  86. package/dist/utilities/formatRelativeDate.d.ts.map +1 -0
  87. package/dist/utilities/formatRelativeDate.js +62 -0
  88. package/dist/utilities/formatRelativeDate.js.map +1 -0
  89. package/dist/utilities/getDocPreferences.d.ts +2 -2
  90. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  91. package/dist/utilities/getDocPreferences.js.map +1 -1
  92. package/dist/utilities/getDocumentData.d.ts +2 -2
  93. package/dist/utilities/getDocumentData.d.ts.map +1 -1
  94. package/dist/utilities/getDocumentData.js.map +1 -1
  95. package/dist/utilities/getGlobalData.d.ts.map +1 -1
  96. package/dist/utilities/getGlobalData.js.map +1 -1
  97. package/dist/utilities/getHasScheduledPublish.d.ts +2 -2
  98. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  99. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  100. package/dist/utilities/getIsLocked.d.ts +2 -2
  101. package/dist/utilities/getIsLocked.d.ts.map +1 -1
  102. package/dist/utilities/getIsLocked.js.map +1 -1
  103. package/dist/utilities/getVersions.d.ts +2 -2
  104. package/dist/utilities/getVersions.d.ts.map +1 -1
  105. package/dist/utilities/getVersions.js.map +1 -1
  106. package/dist/utilities/handleAuthRedirect.d.ts +2 -2
  107. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  108. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  109. package/dist/utilities/handleFormStateLocking.d.ts +2 -2
  110. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  111. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  112. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  113. package/dist/utilities/recentlyViewed.d.ts +16 -0
  114. package/dist/utilities/recentlyViewed.d.ts.map +1 -0
  115. package/dist/utilities/recentlyViewed.js +21 -0
  116. package/dist/utilities/recentlyViewed.js.map +1 -0
  117. package/dist/utilities/recentlyViewed.spec.js +92 -0
  118. package/dist/utilities/recentlyViewed.spec.js.map +1 -0
  119. package/dist/utilities/serverFunctionRegistry.d.ts +13 -0
  120. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -0
  121. package/dist/utilities/serverFunctionRegistry.js +25 -0
  122. package/dist/utilities/serverFunctionRegistry.js.map +1 -0
  123. package/dist/views/Account/ResetPreferences/index.d.ts +2 -2
  124. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  125. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  126. package/dist/views/Account/Settings/index.d.ts +2 -2
  127. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  128. package/dist/views/Account/Settings/index.js.map +1 -1
  129. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts +2 -2
  130. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -1
  131. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  132. package/dist/views/Document/index.d.ts.map +1 -1
  133. package/dist/views/Document/index.js +16 -0
  134. package/dist/views/Document/index.js.map +1 -1
  135. package/dist/views/Document/recordRecentlyViewed.d.ts +12 -0
  136. package/dist/views/Document/recordRecentlyViewed.d.ts.map +1 -0
  137. package/dist/views/Document/recordRecentlyViewed.js +40 -0
  138. package/dist/views/Document/recordRecentlyViewed.js.map +1 -0
  139. package/dist/views/Logout/LogoutClient.d.ts +14 -0
  140. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  141. package/dist/views/Logout/LogoutClient.js +6 -4
  142. package/dist/views/Logout/LogoutClient.js.map +1 -1
  143. package/dist/views/Logout/index.d.ts.map +1 -1
  144. package/dist/views/Logout/index.js +7 -2
  145. package/dist/views/Logout/index.js.map +1 -1
  146. package/dist/views/Versions/fetchVersions.d.ts +4 -4
  147. package/dist/views/Versions/fetchVersions.d.ts.map +1 -1
  148. package/dist/views/Versions/fetchVersions.js.map +1 -1
  149. package/dist/views/Versions/types.d.ts +2 -2
  150. package/dist/views/Versions/types.d.ts.map +1 -1
  151. package/dist/views/Versions/types.js.map +1 -1
  152. package/dist/widgets/CollectionCards/getCollectionCardsData.d.ts +20 -0
  153. package/dist/widgets/CollectionCards/getCollectionCardsData.d.ts.map +1 -0
  154. package/dist/widgets/CollectionCards/getCollectionCardsData.js +29 -0
  155. package/dist/widgets/CollectionCards/getCollectionCardsData.js.map +1 -0
  156. package/dist/widgets/CollectionCards/index.client.d.ts +5 -0
  157. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -0
  158. package/dist/widgets/CollectionCards/index.client.js +139 -0
  159. package/dist/widgets/CollectionCards/index.client.js.map +1 -0
  160. package/dist/widgets/CollectionQuery/index.css +10 -152
  161. package/dist/widgets/CollectionQuery/index.d.ts +0 -1
  162. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
  163. package/dist/widgets/CollectionQuery/index.js +40 -111
  164. package/dist/widgets/CollectionQuery/index.js.map +1 -1
  165. package/dist/widgets/RecentlyViewed/CollectionsField/index.css +14 -0
  166. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +10 -0
  167. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -0
  168. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +76 -0
  169. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -0
  170. package/dist/widgets/RecentlyViewed/index.d.ts +10 -0
  171. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -0
  172. package/dist/widgets/RecentlyViewed/index.js +148 -0
  173. package/dist/widgets/RecentlyViewed/index.js.map +1 -0
  174. package/dist/widgets/WidgetCard/index.css +155 -0
  175. package/dist/widgets/WidgetCard/index.d.ts +19 -0
  176. package/dist/widgets/WidgetCard/index.d.ts.map +1 -0
  177. package/dist/widgets/WidgetCard/index.js +49 -0
  178. package/dist/widgets/WidgetCard/index.js.map +1 -0
  179. package/package.json +57 -7
  180. package/dist/exports/client/CodeEditor-T3624SG3.js +0 -14
  181. package/dist/exports/client/CodeEditor-T3624SG3.js.map +0 -7
  182. package/dist/exports/client/DatePicker-6KF52Z3G.js +0 -14
  183. package/dist/exports/client/DatePicker-6KF52Z3G.js.map +0 -7
  184. package/dist/exports/client/chunk-5LKBKI4T.js +0 -14
  185. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -7
  186. package/dist/exports/client/chunk-7T64ULOM.js +0 -29
  187. package/dist/exports/client/chunk-7T64ULOM.js.map +0 -7
  188. package/dist/exports/client/chunk-DMFYTMX6.js +0 -27
  189. package/dist/exports/client/chunk-DMFYTMX6.js.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isolateObjectProperty","logError","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","DocumentHeader","RenderServerComponent","DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","buildFormState","getDocPreferences","getDocumentData","getDocumentPermissions","getHasScheduledPublish","getIsLocked","getVersions","handleLivePreview","handlePreview","isEditing","getIsEditing","getPreferences","NotFoundView","UnauthorizedViewWithGutter","getDocumentView","renderDocumentSlots","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","server","redirect","Error","isTrashedDoc","Boolean","deletedAt","reqForPermissions","transactionID","reqForLockCheck","docPreferences","docPermissions","hasDeletePermission","hasPublishPermission","hasSavePermission","hasTrashPermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","hasScheduledPublish","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","validateDraftData","drafts","validate","create","depth","draft","documentSlots","Description","clientProps","isLivePreviewEnabled","livePreviewConfig","livePreviewURL","isPreviewEnabled","previewURL","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","typeofLivePreviewURL","url","AfterHeader","serverProps","DocumentView","props","RenderedDocument","error","message","err","notFound"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport { isolateObjectProperty, logError } from 'payload'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds */\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport { buildFormState } from '../../utilities/buildFormState.js'\nimport { getDocPreferences } from '../../utilities/getDocPreferences.js'\nimport { getDocumentData } from '../../utilities/getDocumentData.js'\nimport { getDocumentPermissions } from '../../utilities/getDocumentPermissions.js'\nimport { getHasScheduledPublish } from '../../utilities/getHasScheduledPublish.js'\nimport { getIsLocked } from '../../utilities/getIsLocked.js'\nimport { getVersions } from '../../utilities/getVersions.js'\nimport { handleLivePreview } from '../../utilities/handleLivePreview.js'\nimport { handlePreview } from '../../utilities/handlePreview.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { getPreferences } from '../../utilities/upsertPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport { getDocumentView } from './getDocumentView.js'\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n })\n req.server.redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = Boolean(doc && 'deletedAt' in doc && typeof doc?.deletedAt === 'string')\n\n // CRITICAL FIX FOR TRANSACTION RACE CONDITION:\n // When running parallel operations with Promise.all, if they share the same req object\n // and one operation calls initTransaction() which MUTATES req.transactionID, that mutation\n // is visible to all parallel operations. This causes:\n // 1. Operation A (e.g., getDocumentPermissions → docAccessOperation) calls initTransaction()\n // which sets req.transactionID = Promise, then resolves it to a UUID\n // 2. Operation B (e.g., getIsLocked) running in parallel receives the SAME req with the mutated transactionID\n // 3. Operation A (does not even know that Operation B even exists and is stil using the transactionID) commits/ends its transaction\n // 4. Operation B tries to use the now-expired session → MongoExpiredSessionError!\n //\n // Solution: Use isolateObjectProperty to create a Proxy that isolates the 'transactionID' property.\n // This allows each operation to have its own transactionID without affecting the parent req.\n // If parent req already has a transaction, preserve it (don't isolate), since this\n // issue only arises when one of the operations calls initTransaction() themselves -\n // because then, that operation will also try to commit/end the transaction itself.\n\n // If the transactionID is already set, the parallel operations will not try to\n // commit/end the transaction themselves, so we don't need to isolate the\n // transactionID property.\n const reqForPermissions = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n const reqForLockCheck = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n\n const [\n docPreferences,\n {\n docPermissions,\n hasDeletePermission,\n hasPublishPermission,\n hasSavePermission,\n hasTrashPermission,\n },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions - isolated transactionID prevents cross-contamination\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req: reqForPermissions,\n }),\n\n // Fetch document lock state - isolated transactionID prevents cross-contamination\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req: reqForLockCheck,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n hasScheduledPublish,\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc || isLocked,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n getHasScheduledPublish({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n hasPublishPermission,\n payload,\n user,\n }),\n ])\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n server: req.server,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = formatAdminURL({\n apiRoute,\n path: collectionSlug\n ? `/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `/${globalSlug}${apiQueryParams}`\n : '',\n })\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n\n if (View === UnauthorizedViewWithGutter) {\n showHeader = false\n }\n }\n\n if (!View) {\n View = NotFoundView as React.FC<AdminViewServerProps>\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave = hasSavePermission && hasAutosaveEnabled(collectionConfig || globalConfig)\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n })\n\n req.server.redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n id,\n collectionConfig,\n doc: doc as Record<string, unknown>,\n globalConfig,\n hasSavePermission,\n locale,\n permissions,\n req,\n })\n\n // Extract Description from documentSlots to pass to DocumentHeader\n const { Description } = documentSlots\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const { isLivePreviewEnabled, livePreviewConfig, livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n const { isPreviewEnabled, previewURL } = await handlePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasDeletePermission={hasDeletePermission}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n hasScheduledPublish={hasScheduledPublish}\n hasTrashPermission={hasTrashPermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={Boolean(\n entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL,\n )}\n isPreviewEnabled={Boolean(isPreviewEnabled)}\n previewURL={previewURL}\n typeofLivePreviewURL={typeof livePreviewConfig?.url as 'function' | 'string' | undefined}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n AfterHeader={Description}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function DocumentView(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n props.initPageResult.req.server.notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["isolateObjectProperty","logError","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","DocumentHeader","RenderServerComponent","DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","buildFormState","getDocPreferences","getDocumentData","getDocumentPermissions","getHasScheduledPublish","getIsLocked","getVersions","handleLivePreview","handlePreview","isEditing","getIsEditing","getPreferences","NotFoundView","UnauthorizedViewWithGutter","getDocumentView","recordRecentlyViewed","renderDocumentSlots","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","server","redirect","Error","isTrashedDoc","Boolean","deletedAt","reqForPermissions","transactionID","reqForLockCheck","docPreferences","docPermissions","hasDeletePermission","hasPublishPermission","hasSavePermission","hasTrashPermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","recentlyViewedPromise","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","hasScheduledPublish","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","validateDraftData","drafts","validate","create","depth","draft","documentSlots","Description","clientProps","isLivePreviewEnabled","livePreviewConfig","livePreviewURL","isPreviewEnabled","previewURL","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","typeofLivePreviewURL","url","AfterHeader","serverProps","DocumentView","props","RenderedDocument","error","message","startsWith","err","notFound"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport { isolateObjectProperty, logError } from 'payload'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds */\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport { buildFormState } from '../../utilities/buildFormState.js'\nimport { getDocPreferences } from '../../utilities/getDocPreferences.js'\nimport { getDocumentData } from '../../utilities/getDocumentData.js'\nimport { getDocumentPermissions } from '../../utilities/getDocumentPermissions.js'\nimport { getHasScheduledPublish } from '../../utilities/getHasScheduledPublish.js'\nimport { getIsLocked } from '../../utilities/getIsLocked.js'\nimport { getVersions } from '../../utilities/getVersions.js'\nimport { handleLivePreview } from '../../utilities/handleLivePreview.js'\nimport { handlePreview } from '../../utilities/handlePreview.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { getPreferences } from '../../utilities/upsertPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { recordRecentlyViewed } from './recordRecentlyViewed.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport { getDocumentView } from './getDocumentView.js'\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n })\n req.server.redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = Boolean(doc && 'deletedAt' in doc && typeof doc?.deletedAt === 'string')\n\n // CRITICAL FIX FOR TRANSACTION RACE CONDITION:\n // When running parallel operations with Promise.all, if they share the same req object\n // and one operation calls initTransaction() which MUTATES req.transactionID, that mutation\n // is visible to all parallel operations. This causes:\n // 1. Operation A (e.g., getDocumentPermissions → docAccessOperation) calls initTransaction()\n // which sets req.transactionID = Promise, then resolves it to a UUID\n // 2. Operation B (e.g., getIsLocked) running in parallel receives the SAME req with the mutated transactionID\n // 3. Operation A (does not even know that Operation B even exists and is stil using the transactionID) commits/ends its transaction\n // 4. Operation B tries to use the now-expired session → MongoExpiredSessionError!\n //\n // Solution: Use isolateObjectProperty to create a Proxy that isolates the 'transactionID' property.\n // This allows each operation to have its own transactionID without affecting the parent req.\n // If parent req already has a transaction, preserve it (don't isolate), since this\n // issue only arises when one of the operations calls initTransaction() themselves -\n // because then, that operation will also try to commit/end the transaction itself.\n\n // If the transactionID is already set, the parallel operations will not try to\n // commit/end the transaction themselves, so we don't need to isolate the\n // transactionID property.\n const reqForPermissions = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n const reqForLockCheck = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n\n const [\n docPreferences,\n {\n docPermissions,\n hasDeletePermission,\n hasPublishPermission,\n hasSavePermission,\n hasTrashPermission,\n },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions - isolated transactionID prevents cross-contamination\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req: reqForPermissions,\n }),\n\n // Fetch document lock state - isolated transactionID prevents cross-contamination\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req: reqForLockCheck,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n // Record the document as recently viewed (collections only, never on the create route or for\n // trashed docs). Runs concurrently with the work below and never throws.\n const recentlyViewedPromise =\n collectionSlug && idFromArgs && doc && !isTrashedDoc\n ? recordRecentlyViewed({ id: idFromArgs, collectionSlug, req })\n : undefined\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n hasScheduledPublish,\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc || isLocked,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n getHasScheduledPublish({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n hasPublishPermission,\n payload,\n user,\n }),\n ])\n\n await recentlyViewedPromise\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n server: req.server,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = formatAdminURL({\n apiRoute,\n path: collectionSlug\n ? `/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `/${globalSlug}${apiQueryParams}`\n : '',\n })\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n\n if (View === UnauthorizedViewWithGutter) {\n showHeader = false\n }\n }\n\n if (!View) {\n View = NotFoundView as React.FC<AdminViewServerProps>\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave = hasSavePermission && hasAutosaveEnabled(collectionConfig || globalConfig)\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n })\n\n req.server.redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n id,\n collectionConfig,\n doc: doc as Record<string, unknown>,\n globalConfig,\n hasSavePermission,\n locale,\n permissions,\n req,\n })\n\n // Extract Description from documentSlots to pass to DocumentHeader\n const { Description } = documentSlots\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const { isLivePreviewEnabled, livePreviewConfig, livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n const { isPreviewEnabled, previewURL } = await handlePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasDeletePermission={hasDeletePermission}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n hasScheduledPublish={hasScheduledPublish}\n hasTrashPermission={hasTrashPermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={Boolean(\n entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL,\n )}\n isPreviewEnabled={Boolean(isPreviewEnabled)}\n previewURL={previewURL}\n typeofLivePreviewURL={typeof livePreviewConfig?.url as 'function' | 'string' | undefined}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n AfterHeader={Description}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function DocumentView(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n // The TanStack adapter's `req.server.redirect()` throws `redirect:<url>` as a\n // control-flow signal — the target is already recorded on `req.server` and\n // honored upstream in `loadAdminPage`. It isn't a real error, so swallow it\n // without logging, mirroring the `NEXT_REDIRECT` guard above.\n if (error?.message?.startsWith('redirect:')) {\n return\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n props.initPageResult.req.server.notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import type { PayloadRequest } from 'payload';
2
+ /**
3
+ * Records that the current user viewed a collection document, persisting it to the
4
+ * `recently-viewed` preference. The document is loaded with access control before this runs, so
5
+ * reaching here means the user can read it. Never throws: a failed write must not break the view.
6
+ */
7
+ export declare const recordRecentlyViewed: ({ id, collectionSlug, req, }: {
8
+ collectionSlug: string;
9
+ id: number | string;
10
+ req: PayloadRequest;
11
+ }) => Promise<void>;
12
+ //# sourceMappingURL=recordRecentlyViewed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordRecentlyViewed.d.ts","sourceRoot":"","sources":["../../../src/views/Document/recordRecentlyViewed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6B,MAAM,SAAS,CAAA;AAOxE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAU,8BAIxC;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,IAAI,CAmBf,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { PREFERENCE_KEYS } from 'payload/shared';
2
+ import { addRecentlyViewedItem } from '../../utilities/recentlyViewed.js';
3
+ import { upsertPreferences } from '../../utilities/upsertPreferences.js';
4
+ /**
5
+ * Records that the current user viewed a collection document, persisting it to the
6
+ * `recently-viewed` preference. The document is loaded with access control before this runs, so
7
+ * reaching here means the user can read it. Never throws: a failed write must not break the view.
8
+ */
9
+ export const recordRecentlyViewed = async ({
10
+ id,
11
+ collectionSlug,
12
+ req
13
+ }) => {
14
+ if (!req.user) {
15
+ return;
16
+ }
17
+ try {
18
+ await upsertPreferences({
19
+ customMerge: (existingValue, incomingValue) => addRecentlyViewedItem({
20
+ existing: existingValue,
21
+ item: incomingValue.items[0]
22
+ }),
23
+ key: PREFERENCE_KEYS.RECENTLY_VIEWED,
24
+ req,
25
+ value: {
26
+ items: [{
27
+ id,
28
+ collectionSlug,
29
+ viewedAt: new Date().toISOString()
30
+ }]
31
+ }
32
+ });
33
+ } catch (err) {
34
+ req.payload.logger.error({
35
+ err,
36
+ msg: `Failed to record recently viewed document "${collectionSlug}/${id}"`
37
+ });
38
+ }
39
+ };
40
+ //# sourceMappingURL=recordRecentlyViewed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordRecentlyViewed.js","names":["PREFERENCE_KEYS","addRecentlyViewedItem","upsertPreferences","recordRecentlyViewed","id","collectionSlug","req","user","customMerge","existingValue","incomingValue","existing","item","items","key","RECENTLY_VIEWED","value","viewedAt","Date","toISOString","err","payload","logger","error","msg"],"sources":["../../../src/views/Document/recordRecentlyViewed.ts"],"sourcesContent":["import type { PayloadRequest, RecentlyViewedPreferences } from 'payload'\n\nimport { PREFERENCE_KEYS } from 'payload/shared'\n\nimport { addRecentlyViewedItem } from '../../utilities/recentlyViewed.js'\nimport { upsertPreferences } from '../../utilities/upsertPreferences.js'\n\n/**\n * Records that the current user viewed a collection document, persisting it to the\n * `recently-viewed` preference. The document is loaded with access control before this runs, so\n * reaching here means the user can read it. Never throws: a failed write must not break the view.\n */\nexport const recordRecentlyViewed = async ({\n id,\n collectionSlug,\n req,\n}: {\n collectionSlug: string\n id: number | string\n req: PayloadRequest\n}): Promise<void> => {\n if (!req.user) {\n return\n }\n\n try {\n await upsertPreferences<RecentlyViewedPreferences>({\n customMerge: (existingValue, incomingValue) =>\n addRecentlyViewedItem({ existing: existingValue, item: incomingValue.items[0] }),\n key: PREFERENCE_KEYS.RECENTLY_VIEWED,\n req,\n value: { items: [{ id, collectionSlug, viewedAt: new Date().toISOString() }] },\n })\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Failed to record recently viewed document \"${collectionSlug}/${id}\"`,\n })\n }\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ;AAEhC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAElC;;;;;AAKA,OAAO,MAAMC,oBAAA,GAAuB,MAAAA,CAAO;EACzCC,EAAE;EACFC,cAAc;EACdC;AAAG,CAKJ;EACC,IAAI,CAACA,GAAA,CAAIC,IAAI,EAAE;IACb;EACF;EAEA,IAAI;IACF,MAAML,iBAAA,CAA6C;MACjDM,WAAA,EAAaA,CAACC,aAAA,EAAeC,aAAA,KAC3BT,qBAAA,CAAsB;QAAEU,QAAA,EAAUF,aAAA;QAAeG,IAAA,EAAMF,aAAA,CAAcG,KAAK,CAAC;MAAG;MAChFC,GAAA,EAAKd,eAAA,CAAgBe,eAAe;MACpCT,GAAA;MACAU,KAAA,EAAO;QAAEH,KAAA,EAAO,CAAC;UAAET,EAAA;UAAIC,cAAA;UAAgBY,QAAA,EAAU,IAAIC,IAAA,GAAOC,WAAW;QAAG;MAAG;IAC/E;EACF,EAAE,OAAOC,GAAA,EAAK;IACZd,GAAA,CAAIe,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;MACvBH,GAAA;MACAI,GAAA,EAAK,8CAA8CnB,cAAA,IAAkBD,EAAA;IACvE;EACF;AACF","ignoreList":[]}
@@ -14,5 +14,19 @@ export declare const LogoutClient: React.FC<{
14
14
  adminRoute: string;
15
15
  inactivity?: boolean;
16
16
  redirect: string;
17
+ /**
18
+ * The server-resolved user for the logout request. This is the source of
19
+ * truth for *who* to log out: the client `useAuth().user` is unreliable here
20
+ * because the admin `AuthProvider` clears any user that isn't in the admin
21
+ * user collection (a non-admin/public user resolves to `null` via `/me`).
22
+ * On adapters that mount this view's tree after the layout's auth effects
23
+ * (e.g. TanStack Start, where the RSC payload streams in after hydration),
24
+ * that clear races ahead of this component and `useAuth().user` is already
25
+ * `null` at mount — so relying on it would skip the logout request entirely.
26
+ */
27
+ user?: {
28
+ collection?: string;
29
+ id?: number | string;
30
+ } | null;
17
31
  }>;
18
32
  //# sourceMappingURL=LogoutClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogoutClient.d.ts","sourceRoot":"","sources":["../../../src/views/Logout/LogoutClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AASxC,OAAO,aAAa,CAAA;AAIpB;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CA0DA,CAAA"}
1
+ {"version":3,"file":"LogoutClient.d.ts","sourceRoot":"","sources":["../../../src/views/Logout/LogoutClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AASxC,OAAO,aAAa,CAAA;AAIpB;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC5D,CA+DA,CAAA"}
@@ -28,17 +28,19 @@ export const LogoutClient = props => {
28
28
  const {
29
29
  adminRoute,
30
30
  inactivity,
31
- redirect
31
+ redirect,
32
+ user: serverUser
32
33
  } = props;
33
34
  const {
34
35
  logOut,
35
- user
36
+ user: clientUser
36
37
  } = useAuth();
38
+ const logoutUser = clientUser ?? serverUser;
37
39
  const {
38
40
  startRouteTransition
39
41
  } = useRouteTransition();
40
- user?.id;
41
- const isLoggedIn = Boolean(user?.id);
42
+ logoutUser?.id;
43
+ const isLoggedIn = Boolean(logoutUser?.id);
42
44
  const navigatingToLoginRef = React.useRef(false);
43
45
  let t0;
44
46
  if ($[0] !== adminRoute || $[1] !== inactivity || $[2] !== redirect) {
@@ -1 +1 @@
1
- {"version":3,"file":"LogoutClient.js","names":["c","_c","formatAdminURL","React","useEffect","toast","Button","LoadingOverlay","useAuth","useRouter","useRouteTransition","useTranslation","baseClass","LogoutClient","props","$","adminRoute","inactivity","redirect","logOut","user","startRouteTransition","id","isLoggedIn","Boolean","navigatingToLoginRef","useRef","t0","path","length","encodeURIComponent","loginRoute","useState","t","router","t1","current","push","handleLogOut","t2","t3","t4","_jsxs","className","children","_jsx","buttonStyle","el","size","url","animationDuration","loadingText"],"sources":["../../../src/views/Logout/LogoutClient.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.css'\n\nconst baseClass = 'logout'\n\n/**\n * This component should **just** be the inactivity route and do nothing with logging the user out.\n *\n * It currently handles too much, the auth provider should just log the user out and then\n * we could remove the useEffect in this file. So instead of the logout button\n * being an anchor link, it should be a button that calls `logOut` in the provider.\n *\n * This view is still useful if cookies attempt to refresh and fail, i.e. the user\n * is logged out due to inactivity.\n */\nexport const LogoutClient: React.FC<{\n adminRoute: string\n inactivity?: boolean\n redirect: string\n}> = (props) => {\n const { adminRoute, inactivity, redirect } = props\n\n const { logOut, user } = useAuth()\n\n const { startRouteTransition } = useRouteTransition()\n\n const isLoggedIn = React.useMemo(() => {\n return Boolean(user?.id)\n }, [user?.id])\n\n const navigatingToLoginRef = React.useRef(false)\n\n const [loginRoute] = React.useState(() =>\n formatAdminURL({\n adminRoute,\n path: `/login${\n inactivity && redirect && redirect.length > 0\n ? `?redirect=${encodeURIComponent(redirect)}`\n : ''\n }`,\n }),\n )\n\n const { t } = useTranslation()\n const router = useRouter()\n\n const handleLogOut = React.useCallback(async () => {\n if (!navigatingToLoginRef.current) {\n navigatingToLoginRef.current = true\n await logOut()\n toast(t('authentication:loggedOutSuccessfully'))\n startRouteTransition(() => router.push(loginRoute))\n return\n }\n }, [logOut, loginRoute, router, startRouteTransition, t])\n\n useEffect(() => {\n if (isLoggedIn && !inactivity) {\n void handleLogOut()\n } else if (!inactivity && !navigatingToLoginRef.current) {\n navigatingToLoginRef.current = true\n startRouteTransition(() => router.push(loginRoute))\n }\n }, [handleLogOut, isLoggedIn, loginRoute, router, startRouteTransition, inactivity])\n\n if (!isLoggedIn && inactivity) {\n return (\n <div className={`${baseClass}__wrap`}>\n <h2>{t('authentication:loggedOutInactivity')}</h2>\n <Button buttonStyle=\"primary\" el=\"link\" size=\"medium\" url={loginRoute}>\n {t('authentication:logBackIn')}\n </Button>\n </div>\n )\n }\n\n return <LoadingOverlay animationDuration={'0ms'} loadingText={t('authentication:loggingOut')} />\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,SAAS,QAAQ;AACjC,SAASC,KAAK,QAAQ;AAEtB,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB;;;;;;;;;;AAUA,OAAO,MAAMC,YAAA,GAIRC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EACH;IAAAe,UAAA;IAAAC,UAAA;IAAAC;EAAA,IAA6CJ,KAAA;EAE7C;IAAAK,MAAA;IAAAC;EAAA,IAAyBZ,OAAA;EAEzB;IAAAa;EAAA,IAAiCX,kBAAA;EAI7BU,IAAA,EAAAE,EAAA;EAFJ,MAAAC,UAAA,GACSC,OAAA,CAAQJ,IAAA,EAAAE,EAAM;EAGvB,MAAAG,oBAAA,GAA6BtB,KAAA,CAAAuB,MAAA,MAAa;EAAA,IAAAC,EAAA;EAAA,IAAAZ,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,QAAA;IAENS,EAAA,GAAAA,CAAA,KAClCzB,cAAA;MAAAc,UAAA;MAAAY,IAAA,EAEQ,SACJX,UAAA,IAAcC,QAAA,IAAYA,QAAA,CAAAW,MAAA,IAAkB,GACxC,aAAaC,kBAAA,CAAmBZ,QAAA,GAAW,GAC3C;IACJ,CACJ;IAAAH,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EARF,OAAAgB,UAAA,IAAqB5B,KAAA,CAAA6B,QAAA,CAAeL,EAQlC;EAGF;IAAAM;EAAA,IAActB,cAAA;EACd,MAAAuB,MAAA,GAAezB,SAAA;EAAA,IAAA0B,EAAA;EAAA,IAAApB,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAmB,MAAA,IAAAnB,CAAA,QAAAM,oBAAA,IAAAN,CAAA,QAAAkB,CAAA;IAEwBE,EAAA,SAAAA,CAAA;MAAA,KAChCV,oBAAA,CAAAW,OAAA;QACHX,oBAAA,CAAAW,OAAA;QAAA,MACMjB,MAAA;QACNd,KAAA,CAAM4B,CAAA,CAAE;QACRZ,oBAAA,OAA2Ba,MAAA,CAAAG,IAAA,CAAYN,UAAA;QAAA;MAAA;IAAA;IAG3ChB,CAAA,MAAAI,MAAA;IAAAJ,CAAA,MAAAgB,UAAA;IAAAhB,CAAA,MAAAmB,MAAA;IAAAnB,CAAA,MAAAM,oBAAA;IAAAN,CAAA,MAAAkB,CAAA;IAAAlB,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EARA,MAAAuB,YAAA,GAAqBH,EAQmC;EAAA,IAAAI,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAzB,CAAA,SAAAuB,YAAA,IAAAvB,CAAA,SAAAE,UAAA,IAAAF,CAAA,SAAAQ,UAAA,IAAAR,CAAA,SAAAgB,UAAA,IAAAhB,CAAA,SAAAmB,MAAA,IAAAnB,CAAA,SAAAM,oBAAA;IAE9CkB,EAAA,GAAAA,CAAA;MAAA,IACJhB,UAAA,KAAeN,UAAA;QACZqB,YAAA;MAAA;QAAA,IACI,CAACrB,UAAA,KAAeQ,oBAAA,CAAAW,OAA4B;UACrDX,oBAAA,CAAAW,OAAA;UACAf,oBAAA,OAA2Ba,MAAA,CAAAG,IAAA,CAAYN,UAAA;QAAA;MAAA;IAAA;IAExCS,EAAA,IAACF,YAAA,EAAcf,UAAA,EAAYQ,UAAA,EAAYG,MAAA,EAAQb,oBAAA,EAAsBJ,UAAA;IAAWF,CAAA,OAAAuB,YAAA;IAAAvB,CAAA,OAAAE,UAAA;IAAAF,CAAA,OAAAQ,UAAA;IAAAR,CAAA,OAAAgB,UAAA;IAAAhB,CAAA,OAAAmB,MAAA;IAAAnB,CAAA,OAAAM,oBAAA;IAAAN,CAAA,OAAAwB,EAAA;IAAAxB,CAAA,OAAAyB,EAAA;EAAA;IAAAD,EAAA,GAAAxB,CAAA;IAAAyB,EAAA,GAAAzB,CAAA;EAAA;EAPnFX,SAAA,CAAUmC,EAOV,EAAGC,EAAgF;EAAA,IAE/E,CAACjB,UAAA,IAAcN,UAAA;IAAA,IAAAwB,EAAA;IAAA,IAAA1B,CAAA,SAAAgB,UAAA,IAAAhB,CAAA,SAAAkB,CAAA;MAEfQ,EAAA,GAAAC,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAA/B,SAAA,QAAoB;QAAAgC,QAAA,GAClCC,IAAA,CAAC;UAAAD,QAAA,EAAIX,CAAA,CAAE;QAAA,C,GACPY,IAAA,CAAAvC,MAAA;UAAAwC,WAAA,EAAoB;UAAAC,EAAA,EAAa;UAAAC,IAAA,EAAY;UAAAC,GAAA,EAAclB,UAAA;UAAAa,QAAA,EACxDX,CAAA,CAAE;QAAA,C;;;;;;;;WAHPQ,E;;;;IASGA,EAAA,GAAAI,IAAA,CAAAtC,cAAA;MAAA2C,iBAAA,EAAmC;MAAAC,WAAA,EAAoBlB,CAAA,CAAE;IAAA,C;;;;;;SAAzDQ,E;CACT","ignoreList":[]}
1
+ {"version":3,"file":"LogoutClient.js","names":["c","_c","formatAdminURL","React","useEffect","toast","Button","LoadingOverlay","useAuth","useRouter","useRouteTransition","useTranslation","baseClass","LogoutClient","props","$","adminRoute","inactivity","redirect","user","serverUser","logOut","clientUser","logoutUser","startRouteTransition","id","isLoggedIn","Boolean","navigatingToLoginRef","useRef","t0","path","length","encodeURIComponent","loginRoute","useState","t","router","t1","current","push","handleLogOut","t2","t3","t4","_jsxs","className","children","_jsx","buttonStyle","el","size","url","animationDuration","loadingText"],"sources":["../../../src/views/Logout/LogoutClient.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.css'\n\nconst baseClass = 'logout'\n\n/**\n * This component should **just** be the inactivity route and do nothing with logging the user out.\n *\n * It currently handles too much, the auth provider should just log the user out and then\n * we could remove the useEffect in this file. So instead of the logout button\n * being an anchor link, it should be a button that calls `logOut` in the provider.\n *\n * This view is still useful if cookies attempt to refresh and fail, i.e. the user\n * is logged out due to inactivity.\n */\nexport const LogoutClient: React.FC<{\n adminRoute: string\n inactivity?: boolean\n redirect: string\n /**\n * The server-resolved user for the logout request. This is the source of\n * truth for *who* to log out: the client `useAuth().user` is unreliable here\n * because the admin `AuthProvider` clears any user that isn't in the admin\n * user collection (a non-admin/public user resolves to `null` via `/me`).\n * On adapters that mount this view's tree after the layout's auth effects\n * (e.g. TanStack Start, where the RSC payload streams in after hydration),\n * that clear races ahead of this component and `useAuth().user` is already\n * `null` at mount — so relying on it would skip the logout request entirely.\n */\n user?: { collection?: string; id?: number | string } | null\n}> = (props) => {\n const { adminRoute, inactivity, redirect, user: serverUser } = props\n\n const { logOut, user: clientUser } = useAuth()\n\n // Prefer the client user when present (covers token refresh / inactivity),\n // but fall back to the server-resolved user so the logout still fires when\n // the client auth state has already been cleared (see `user` prop above).\n const logoutUser = clientUser ?? serverUser\n\n const { startRouteTransition } = useRouteTransition()\n\n const isLoggedIn = React.useMemo(() => {\n return Boolean(logoutUser?.id)\n }, [logoutUser?.id])\n\n const navigatingToLoginRef = React.useRef(false)\n\n const [loginRoute] = React.useState(() =>\n formatAdminURL({\n adminRoute,\n path: `/login${\n inactivity && redirect && redirect.length > 0\n ? `?redirect=${encodeURIComponent(redirect)}`\n : ''\n }`,\n }),\n )\n\n const { t } = useTranslation()\n const router = useRouter()\n\n const handleLogOut = React.useCallback(async () => {\n if (!navigatingToLoginRef.current) {\n navigatingToLoginRef.current = true\n await logOut()\n toast(t('authentication:loggedOutSuccessfully'))\n startRouteTransition(() => router.push(loginRoute))\n return\n }\n }, [logOut, loginRoute, router, startRouteTransition, t])\n\n useEffect(() => {\n if (isLoggedIn && !inactivity) {\n void handleLogOut()\n } else if (!inactivity && !navigatingToLoginRef.current) {\n navigatingToLoginRef.current = true\n startRouteTransition(() => router.push(loginRoute))\n }\n }, [handleLogOut, isLoggedIn, loginRoute, router, startRouteTransition, inactivity])\n\n if (!isLoggedIn && inactivity) {\n return (\n <div className={`${baseClass}__wrap`}>\n <h2>{t('authentication:loggedOutInactivity')}</h2>\n <Button buttonStyle=\"primary\" el=\"link\" size=\"medium\" url={loginRoute}>\n {t('authentication:logBackIn')}\n </Button>\n </div>\n )\n }\n\n return <LoadingOverlay animationDuration={'0ms'} loadingText={t('authentication:loggingOut')} />\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Logout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAC/B;IACE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,oBAAoB,CAqBzB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Logout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAC/B;IACE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,oBAAoB,CAuBzB,CAAA"}
@@ -17,7 +17,8 @@ export const LogoutView = ({
17
17
  admin: adminRoute
18
18
  }
19
19
  }
20
- }
20
+ },
21
+ user
21
22
  }
22
23
  } = initPageResult;
23
24
  return /*#__PURE__*/_jsx("div", {
@@ -25,7 +26,11 @@ export const LogoutView = ({
25
26
  children: /*#__PURE__*/_jsx(LogoutClient, {
26
27
  adminRoute: adminRoute,
27
28
  inactivity: inactivity,
28
- redirect: searchParams.redirect
29
+ redirect: searchParams.redirect,
30
+ user: user ? {
31
+ id: user.id,
32
+ collection: user.collection
33
+ } : null
29
34
  })
30
35
  });
31
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","LogoutClient","baseClass","LogoutView","inactivity","initPageResult","searchParams","req","payload","config","routes","admin","adminRoute","_jsx","className","redirect"],"sources":["../../../src/views/Logout/index.tsx"],"sourcesContent":["import type { AdminViewServerProps } from 'payload'\n\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds\nimport { LogoutClient } from '../../exports/client/index.js'\nimport './index.css'\n\nconst baseClass = 'logout'\n\nexport const LogoutView: React.FC<\n {\n inactivity?: boolean\n } & AdminViewServerProps\n> = ({ inactivity, initPageResult, searchParams }) => {\n const {\n req: {\n payload: {\n config: {\n routes: { admin: adminRoute },\n },\n },\n },\n } = initPageResult\n\n return (\n <div className={`${baseClass}`}>\n <LogoutClient\n adminRoute={adminRoute}\n inactivity={inactivity}\n redirect={searchParams.redirect as string}\n />\n </div>\n )\n}\n"],"mappings":";AAEA,OAAOA,KAAA,MAAW;AAElB;AACA,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,GAITA,CAAC;EAAEC,UAAU;EAAEC,cAAc;EAAEC;AAAY,CAAE;EAC/C,MAAM;IACJC,GAAA,EAAK;MACHC,OAAA,EAAS;QACPC,MAAA,EAAQ;UACNC,MAAA,EAAQ;YAAEC,KAAA,EAAOC;UAAU;QAAE;MAC9B;IACF;EACF,CACF,GAAGP,cAAA;EAEJ,oBACEQ,IAAA,CAAC;IAAIC,SAAA,EAAW,GAAGZ,SAAA,EAAW;cAC5B,aAAAW,IAAA,CAACZ,YAAA;MACCW,UAAA,EAAYA,UAAA;MACZR,UAAA,EAAYA,UAAA;MACZW,QAAA,EAAUT,YAAA,CAAaS;;;AAI/B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","LogoutClient","baseClass","LogoutView","inactivity","initPageResult","searchParams","req","payload","config","routes","admin","adminRoute","user","_jsx","className","redirect","id","collection"],"sources":["../../../src/views/Logout/index.tsx"],"sourcesContent":["import type { AdminViewServerProps } from 'payload'\n\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds\nimport { LogoutClient } from '../../exports/client/index.js'\nimport './index.css'\n\nconst baseClass = 'logout'\n\nexport const LogoutView: React.FC<\n {\n inactivity?: boolean\n } & AdminViewServerProps\n> = ({ inactivity, initPageResult, searchParams }) => {\n const {\n req: {\n payload: {\n config: {\n routes: { admin: adminRoute },\n },\n },\n user,\n },\n } = initPageResult\n\n return (\n <div className={`${baseClass}`}>\n <LogoutClient\n adminRoute={adminRoute}\n inactivity={inactivity}\n redirect={searchParams.redirect as string}\n user={user ? { id: user.id, collection: user.collection } : null}\n />\n </div>\n )\n}\n"],"mappings":";AAEA,OAAOA,KAAA,MAAW;AAElB;AACA,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,GAITA,CAAC;EAAEC,UAAU;EAAEC,cAAc;EAAEC;AAAY,CAAE;EAC/C,MAAM;IACJC,GAAA,EAAK;MACHC,OAAA,EAAS;QACPC,MAAA,EAAQ;UACNC,MAAA,EAAQ;YAAEC,KAAA,EAAOC;UAAU;QAAE;MAC9B,CACF;MACDC;IAAI;EACL,CACF,GAAGR,cAAA;EAEJ,oBACES,IAAA,CAAC;IAAIC,SAAA,EAAW,GAAGb,SAAA,EAAW;cAC5B,aAAAY,IAAA,CAACb,YAAA;MACCW,UAAA,EAAYA,UAAA;MACZR,UAAA,EAAYA,UAAA;MACZY,QAAA,EAAUV,YAAA,CAAaU,QAAQ;MAC/BH,IAAA,EAAMA,IAAA,GAAO;QAAEI,EAAA,EAAIJ,IAAA,CAAKI,EAAE;QAAEC,UAAA,EAAYL,IAAA,CAAKK;MAAW,IAAI;;;AAIpE","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { type PaginatedDocs, type PayloadRequest, type SelectType, type Sort, type TypedUser, type TypeWithVersion, type Where } from 'payload';
1
+ import { type PaginatedDocs, type PayloadRequest, type SelectType, type Sort, type TypeWithVersion, type User, type Where } from 'payload';
2
2
  export declare const fetchVersion: <TVersionData extends object = object>({ id, collectionSlug, depth, globalSlug, locale, overrideAccess, req, select, user, }: {
3
3
  collectionSlug?: string;
4
4
  depth?: number;
@@ -8,7 +8,7 @@ export declare const fetchVersion: <TVersionData extends object = object>({ id,
8
8
  overrideAccess?: boolean;
9
9
  req: PayloadRequest;
10
10
  select?: SelectType;
11
- user?: TypedUser;
11
+ user?: User;
12
12
  }) => Promise<null | TypeWithVersion<TVersionData>>;
13
13
  export declare const fetchVersions: <TVersionData extends object = object>({ collectionSlug, depth, draft, globalSlug, limit, locale, overrideAccess, page, parentID, req, select, sort, user, where: whereFromArgs, }: {
14
14
  collectionSlug?: string;
@@ -23,7 +23,7 @@ export declare const fetchVersions: <TVersionData extends object = object>({ col
23
23
  req: PayloadRequest;
24
24
  select?: SelectType;
25
25
  sort?: Sort;
26
- user?: TypedUser;
26
+ user?: User;
27
27
  where?: Where;
28
28
  }) => Promise<null | PaginatedDocs<TypeWithVersion<TVersionData>>>;
29
29
  export declare const fetchLatestVersion: <TVersionData extends object = object>({ collectionSlug, depth, globalSlug, locale, overrideAccess, parentID, req, select, status, user, where, }: {
@@ -36,7 +36,7 @@ export declare const fetchLatestVersion: <TVersionData extends object = object>(
36
36
  req: PayloadRequest;
37
37
  select?: SelectType;
38
38
  status: "draft" | "published";
39
- user?: TypedUser;
39
+ user?: User;
40
40
  where?: Where;
41
41
  }) => Promise<null | TypeWithVersion<TVersionData>>;
42
42
  //# sourceMappingURL=fetchVersions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/fetchVersions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,YAAY,GAAU,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,uFAUtE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,KAAG,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CA6B/C,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,6IAevE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,KAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA8C9D,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,4GAY5E;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAA;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,KAAG,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAyC/C,CAAA"}
1
+ {"version":3,"file":"fetchVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/fetchVersions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,YAAY,GAAU,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,uFAUtE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,KAAG,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CA6B/C,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,6IAevE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,KAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA8C9D,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,4GAY5E;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAA;IAC7B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,KAAG,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAyC/C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchVersions.js","names":["logError","fetchVersion","id","collectionSlug","depth","globalSlug","locale","overrideAccess","req","select","user","payload","findVersionByID","String","collection","findGlobalVersionByID","slug","err","fetchVersions","draft","limit","page","parentID","sort","where","whereFromArgs","and","push","parent","equals","findVersions","findGlobalVersions","fetchLatestVersion","status","entityConfig","collections","config","globals","undefined","draftsEnabled","versions","drafts","latest","docs","length"],"sources":["../../../src/views/Versions/fetchVersions.ts"],"sourcesContent":["import {\n logError,\n type PaginatedDocs,\n type PayloadRequest,\n type SelectType,\n type Sort,\n type TypedUser,\n type TypeWithVersion,\n type Where,\n} from 'payload'\n\nexport const fetchVersion = async <TVersionData extends object = object>({\n id,\n collectionSlug,\n depth,\n globalSlug,\n locale,\n overrideAccess,\n req,\n select,\n user,\n}: {\n collectionSlug?: string\n depth?: number\n globalSlug?: string\n id: number | string\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n req: PayloadRequest\n select?: SelectType\n user?: TypedUser\n}): Promise<null | TypeWithVersion<TVersionData>> => {\n try {\n if (collectionSlug) {\n return (await req.payload.findVersionByID({\n id: String(id),\n collection: collectionSlug,\n depth,\n locale,\n overrideAccess,\n req,\n select,\n user,\n })) as TypeWithVersion<TVersionData>\n } else if (globalSlug) {\n return (await req.payload.findGlobalVersionByID({\n id: String(id),\n slug: globalSlug,\n depth,\n locale,\n overrideAccess,\n req,\n select,\n user,\n })) as TypeWithVersion<TVersionData>\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n return null\n }\n}\n\nexport const fetchVersions = async <TVersionData extends object = object>({\n collectionSlug,\n depth,\n draft,\n globalSlug,\n limit,\n locale,\n overrideAccess,\n page,\n parentID,\n req,\n select,\n sort,\n user,\n where: whereFromArgs,\n}: {\n collectionSlug?: string\n depth?: number\n draft?: boolean\n globalSlug?: string\n limit?: number\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n page?: number\n parentID?: number | string\n req: PayloadRequest\n select?: SelectType\n sort?: Sort\n user?: TypedUser\n where?: Where\n}): Promise<null | PaginatedDocs<TypeWithVersion<TVersionData>>> => {\n const where: Where = { and: [...(whereFromArgs ? [whereFromArgs] : [])] }\n\n try {\n if (collectionSlug) {\n if (parentID) {\n where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n return (await req.payload.findVersions({\n collection: collectionSlug,\n depth,\n draft,\n limit,\n locale,\n overrideAccess,\n page,\n req,\n select,\n sort,\n user,\n where,\n })) as PaginatedDocs<TypeWithVersion<TVersionData>>\n } else if (globalSlug) {\n return (await req.payload.findGlobalVersions({\n slug: globalSlug,\n depth,\n limit,\n locale,\n overrideAccess,\n page,\n req,\n select,\n sort,\n user,\n where,\n })) as PaginatedDocs<TypeWithVersion<TVersionData>>\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n\n return null\n }\n}\n\nexport const fetchLatestVersion = async <TVersionData extends object = object>({\n collectionSlug,\n depth,\n globalSlug,\n locale,\n overrideAccess,\n parentID,\n req,\n select,\n status,\n user,\n where,\n}: {\n collectionSlug?: string\n depth?: number\n globalSlug?: string\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n parentID?: number | string\n req: PayloadRequest\n select?: SelectType\n status: 'draft' | 'published'\n user?: TypedUser\n where?: Where\n}): Promise<null | TypeWithVersion<TVersionData>> => {\n // Get the entity config to check if drafts are enabled\n const entityConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.globals[globalSlug]?.config\n : undefined\n\n // Only query by _status if drafts are enabled (since _status field only exists with drafts)\n const draftsEnabled = entityConfig?.versions?.drafts\n\n const and: Where[] = [\n ...(draftsEnabled\n ? [\n {\n 'version._status': {\n equals: status,\n },\n },\n ]\n : []),\n ...(where ? [where] : []),\n ]\n\n const latest = await fetchVersions({\n collectionSlug,\n depth,\n draft: true,\n globalSlug,\n limit: 1,\n locale,\n overrideAccess,\n parentID,\n req,\n select,\n sort: '-updatedAt',\n user,\n where: { and },\n })\n\n return latest?.docs?.length ? (latest.docs[0] as TypeWithVersion<TVersionData>) : null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fetchVersions.js","names":["logError","fetchVersion","id","collectionSlug","depth","globalSlug","locale","overrideAccess","req","select","user","payload","findVersionByID","String","collection","findGlobalVersionByID","slug","err","fetchVersions","draft","limit","page","parentID","sort","where","whereFromArgs","and","push","parent","equals","findVersions","findGlobalVersions","fetchLatestVersion","status","entityConfig","collections","config","globals","undefined","draftsEnabled","versions","drafts","latest","docs","length"],"sources":["../../../src/views/Versions/fetchVersions.ts"],"sourcesContent":["import {\n logError,\n type PaginatedDocs,\n type PayloadRequest,\n type SelectType,\n type Sort,\n type TypeWithVersion,\n type User,\n type Where,\n} from 'payload'\n\nexport const fetchVersion = async <TVersionData extends object = object>({\n id,\n collectionSlug,\n depth,\n globalSlug,\n locale,\n overrideAccess,\n req,\n select,\n user,\n}: {\n collectionSlug?: string\n depth?: number\n globalSlug?: string\n id: number | string\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n req: PayloadRequest\n select?: SelectType\n user?: User\n}): Promise<null | TypeWithVersion<TVersionData>> => {\n try {\n if (collectionSlug) {\n return (await req.payload.findVersionByID({\n id: String(id),\n collection: collectionSlug,\n depth,\n locale,\n overrideAccess,\n req,\n select,\n user,\n })) as TypeWithVersion<TVersionData>\n } else if (globalSlug) {\n return (await req.payload.findGlobalVersionByID({\n id: String(id),\n slug: globalSlug,\n depth,\n locale,\n overrideAccess,\n req,\n select,\n user,\n })) as TypeWithVersion<TVersionData>\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n return null\n }\n}\n\nexport const fetchVersions = async <TVersionData extends object = object>({\n collectionSlug,\n depth,\n draft,\n globalSlug,\n limit,\n locale,\n overrideAccess,\n page,\n parentID,\n req,\n select,\n sort,\n user,\n where: whereFromArgs,\n}: {\n collectionSlug?: string\n depth?: number\n draft?: boolean\n globalSlug?: string\n limit?: number\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n page?: number\n parentID?: number | string\n req: PayloadRequest\n select?: SelectType\n sort?: Sort\n user?: User\n where?: Where\n}): Promise<null | PaginatedDocs<TypeWithVersion<TVersionData>>> => {\n const where: Where = { and: [...(whereFromArgs ? [whereFromArgs] : [])] }\n\n try {\n if (collectionSlug) {\n if (parentID) {\n where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n return (await req.payload.findVersions({\n collection: collectionSlug,\n depth,\n draft,\n limit,\n locale,\n overrideAccess,\n page,\n req,\n select,\n sort,\n user,\n where,\n })) as PaginatedDocs<TypeWithVersion<TVersionData>>\n } else if (globalSlug) {\n return (await req.payload.findGlobalVersions({\n slug: globalSlug,\n depth,\n limit,\n locale,\n overrideAccess,\n page,\n req,\n select,\n sort,\n user,\n where,\n })) as PaginatedDocs<TypeWithVersion<TVersionData>>\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n\n return null\n }\n}\n\nexport const fetchLatestVersion = async <TVersionData extends object = object>({\n collectionSlug,\n depth,\n globalSlug,\n locale,\n overrideAccess,\n parentID,\n req,\n select,\n status,\n user,\n where,\n}: {\n collectionSlug?: string\n depth?: number\n globalSlug?: string\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n parentID?: number | string\n req: PayloadRequest\n select?: SelectType\n status: 'draft' | 'published'\n user?: User\n where?: Where\n}): Promise<null | TypeWithVersion<TVersionData>> => {\n // Get the entity config to check if drafts are enabled\n const entityConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.globals[globalSlug]?.config\n : undefined\n\n // Only query by _status if drafts are enabled (since _status field only exists with drafts)\n const draftsEnabled = entityConfig?.versions?.drafts\n\n const and: Where[] = [\n ...(draftsEnabled\n ? [\n {\n 'version._status': {\n equals: status,\n },\n },\n ]\n : []),\n ...(where ? [where] : []),\n ]\n\n const latest = await fetchVersions({\n collectionSlug,\n depth,\n draft: true,\n globalSlug,\n limit: 1,\n locale,\n overrideAccess,\n parentID,\n req,\n select,\n sort: '-updatedAt',\n user,\n where: { and },\n })\n\n return latest?.docs?.length ? (latest.docs[0] as TypeWithVersion<TVersionData>) : null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { I18n } from '@payloadcms/translations';
2
- import type { PaginatedDocs, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig, TypedUser } from 'payload';
2
+ import type { PaginatedDocs, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig, User } from 'payload';
3
3
  export type DefaultVersionsViewProps = {
4
4
  canAccessAdmin: boolean;
5
5
  collectionConfig?: SanitizedCollectionConfig;
@@ -11,7 +11,7 @@ export type DefaultVersionsViewProps = {
11
11
  i18n: I18n;
12
12
  id: number | string;
13
13
  limit: number;
14
- user: TypedUser;
14
+ user: User;
15
15
  versionsData: PaginatedDocs<Document>;
16
16
  };
17
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CACtC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,IAAI,EACL,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CACtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/views/Versions/types.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n PaginatedDocs,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\n\nexport type DefaultVersionsViewProps = {\n canAccessAdmin: boolean\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n data: Document\n editURL: string\n entityLabel: string\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n id: number | string\n limit: number\n user: TypedUser\n versionsData: PaginatedDocs<Document>\n}\n"],"mappings":"AASA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/views/Versions/types.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n PaginatedDocs,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n User,\n} from 'payload'\n\nexport type DefaultVersionsViewProps = {\n canAccessAdmin: boolean\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n data: Document\n editURL: string\n entityLabel: string\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n id: number | string\n limit: number\n user: User\n versionsData: PaginatedDocs<Document>\n}\n"],"mappings":"AASA","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import type { ClientUser, PayloadRequest, SanitizedPermissions } from 'payload';
2
+ import type { NavGroupType } from '../../utilities/groupNavItems.js';
3
+ export type GlobalLockData = {
4
+ data: {
5
+ _isLocked: boolean;
6
+ _lastEditedAt: string;
7
+ _userEditing: ClientUser | number | string;
8
+ };
9
+ lockDuration?: number;
10
+ slug: string;
11
+ };
12
+ export type CollectionCardsData = {
13
+ adminRoute: string;
14
+ globalData: GlobalLockData[];
15
+ navGroups: NavGroupType[];
16
+ permissions: SanitizedPermissions;
17
+ userId: number | string;
18
+ };
19
+ export declare function getCollectionCardsData(req: PayloadRequest): Promise<CollectionCardsData>;
20
+ //# sourceMappingURL=getCollectionCardsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCollectionCardsData.d.ts","sourceRoot":"","sources":["../../../src/widgets/CollectionCards/getCollectionCardsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAI/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAMpE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,SAAS,EAAE,OAAO,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;KAC3C,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,WAAW,EAAE,oBAAoB,CAAA;IACjC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB,CAAA;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgB9F"}
@@ -0,0 +1,29 @@
1
+ import { getAccessResults } from 'payload';
2
+ import { getGlobalData } from '../../utilities/getGlobalData.js';
3
+ import { getNavGroups } from '../../utilities/getNavGroups.js';
4
+ import { getVisibleEntities } from '../../utilities/getVisibleEntities.js';
5
+ export async function getCollectionCardsData(req) {
6
+ const {
7
+ payload,
8
+ user
9
+ } = req;
10
+ const {
11
+ admin: adminRoute
12
+ } = payload.config.routes;
13
+ const permissions = await getAccessResults({
14
+ req
15
+ });
16
+ const visibleEntities = getVisibleEntities({
17
+ req
18
+ });
19
+ const globalData = await getGlobalData(req);
20
+ const navGroups = getNavGroups(permissions, visibleEntities, payload.config, req.i18n);
21
+ return {
22
+ adminRoute,
23
+ globalData,
24
+ navGroups,
25
+ permissions,
26
+ userId: user?.id
27
+ };
28
+ }
29
+ //# sourceMappingURL=getCollectionCardsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCollectionCardsData.js","names":["getAccessResults","getGlobalData","getNavGroups","getVisibleEntities","getCollectionCardsData","req","payload","user","admin","adminRoute","config","routes","permissions","visibleEntities","globalData","navGroups","i18n","userId","id"],"sources":["../../../src/widgets/CollectionCards/getCollectionCardsData.ts"],"sourcesContent":["import type { ClientUser, PayloadRequest, SanitizedPermissions } from 'payload'\n\nimport { getAccessResults } from 'payload'\n\nimport type { NavGroupType } from '../../utilities/groupNavItems.js'\n\nimport { getGlobalData } from '../../utilities/getGlobalData.js'\nimport { getNavGroups } from '../../utilities/getNavGroups.js'\nimport { getVisibleEntities } from '../../utilities/getVisibleEntities.js'\n\nexport type GlobalLockData = {\n data: {\n _isLocked: boolean\n _lastEditedAt: string\n _userEditing: ClientUser | number | string\n }\n lockDuration?: number\n slug: string\n}\n\nexport type CollectionCardsData = {\n adminRoute: string\n globalData: GlobalLockData[]\n navGroups: NavGroupType[]\n permissions: SanitizedPermissions\n userId: number | string\n}\n\nexport async function getCollectionCardsData(req: PayloadRequest): Promise<CollectionCardsData> {\n const { payload, user } = req\n const { admin: adminRoute } = payload.config.routes\n\n const permissions = await getAccessResults({ req })\n const visibleEntities = getVisibleEntities({ req })\n const globalData = await getGlobalData(req)\n const navGroups = getNavGroups(permissions, visibleEntities, payload.config, req.i18n)\n\n return {\n adminRoute,\n globalData,\n navGroups,\n permissions,\n userId: user?.id,\n }\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AAIjC,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AAoBnC,OAAO,eAAeC,uBAAuBC,GAAmB;EAC9D,MAAM;IAAEC,OAAO;IAAEC;EAAI,CAAE,GAAGF,GAAA;EAC1B,MAAM;IAAEG,KAAA,EAAOC;EAAU,CAAE,GAAGH,OAAA,CAAQI,MAAM,CAACC,MAAM;EAEnD,MAAMC,WAAA,GAAc,MAAMZ,gBAAA,CAAiB;IAAEK;EAAI;EACjD,MAAMQ,eAAA,GAAkBV,kBAAA,CAAmB;IAAEE;EAAI;EACjD,MAAMS,UAAA,GAAa,MAAMb,aAAA,CAAcI,GAAA;EACvC,MAAMU,SAAA,GAAYb,YAAA,CAAaU,WAAA,EAAaC,eAAA,EAAiBP,OAAA,CAAQI,MAAM,EAAEL,GAAA,CAAIW,IAAI;EAErF,OAAO;IACLP,UAAA;IACAK,UAAA;IACAC,SAAA;IACAH,WAAA;IACAK,MAAA,EAAQV,IAAA,EAAMW;EAChB;AACF","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { CollectionCardsData } from './getCollectionCardsData.js';
3
+ import './index.css';
4
+ export declare const CollectionCardsClient: React.FC<CollectionCardsData>;
5
+ //# sourceMappingURL=index.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/widgets/CollectionCards/index.client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,OAAO,aAAa,CAAA;AAQpB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkH/D,CAAA"}