@payloadcms/next 3.68.0-internal-debug.591ab42 → 3.68.0-internal-debug.e9b66ee

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 (162) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +6 -21
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +20 -44
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/index.js +41 -73
  6. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +1 -10
  8. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  9. package/dist/elements/DocumentHeader/index.js +7 -45
  10. package/dist/elements/DocumentHeader/index.js.map +1 -1
  11. package/dist/elements/FormHeader/index.js +4 -25
  12. package/dist/elements/FormHeader/index.js.map +1 -1
  13. package/dist/elements/Nav/NavHamburger/index.js +5 -21
  14. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  15. package/dist/elements/Nav/NavWrapper/index.js +10 -24
  16. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  17. package/dist/elements/Nav/SettingsMenuButton/index.js +4 -27
  18. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  19. package/dist/elements/Nav/index.client.js +43 -91
  20. package/dist/elements/Nav/index.client.js.map +1 -1
  21. package/dist/elements/Nav/index.js +48 -100
  22. package/dist/elements/Nav/index.js.map +1 -1
  23. package/dist/layouts/Root/NestProviders.js +3 -12
  24. package/dist/layouts/Root/NestProviders.js.map +1 -1
  25. package/dist/layouts/Root/index.js +19 -84
  26. package/dist/layouts/Root/index.js.map +1 -1
  27. package/dist/prod/styles.css +5 -0
  28. package/dist/routes/rest/og/image.js +61 -97
  29. package/dist/routes/rest/og/image.js.map +1 -1
  30. package/dist/routes/rest/og/index.js +1 -15
  31. package/dist/routes/rest/og/index.js.map +1 -1
  32. package/dist/templates/Default/NavHamburger/index.js +1 -10
  33. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  34. package/dist/templates/Default/Wrapper/index.js +9 -16
  35. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  36. package/dist/templates/Default/index.js +38 -106
  37. package/dist/templates/Default/index.js.map +1 -1
  38. package/dist/templates/Minimal/index.js +3 -18
  39. package/dist/templates/Minimal/index.js.map +1 -1
  40. package/dist/views/API/LocaleSelector/index.js +5 -15
  41. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  42. package/dist/views/API/RenderJSON/index.js +59 -156
  43. package/dist/views/API/RenderJSON/index.js.map +1 -1
  44. package/dist/views/API/index.client.js +71 -215
  45. package/dist/views/API/index.client.js.map +1 -1
  46. package/dist/views/API/index.js +1 -7
  47. package/dist/views/API/index.js.map +1 -1
  48. package/dist/views/Account/ResetPreferences/index.js +8 -35
  49. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  50. package/dist/views/Account/Settings/LanguageSelector.js +3 -15
  51. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  52. package/dist/views/Account/Settings/index.js +12 -58
  53. package/dist/views/Account/Settings/index.js.map +1 -1
  54. package/dist/views/Account/ToggleTheme/index.js +19 -30
  55. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  56. package/dist/views/Account/index.js +25 -83
  57. package/dist/views/Account/index.js.map +1 -1
  58. package/dist/views/BrowseByFolder/buildView.js +28 -38
  59. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  60. package/dist/views/CollectionFolders/buildView.js +35 -45
  61. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  62. package/dist/views/CreateFirstUser/index.client.js +20 -75
  63. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  64. package/dist/views/CreateFirstUser/index.js +5 -36
  65. package/dist/views/CreateFirstUser/index.js.map +1 -1
  66. package/dist/views/Dashboard/Default/index.js +94 -169
  67. package/dist/views/Dashboard/Default/index.js.map +1 -1
  68. package/dist/views/Dashboard/index.js +24 -43
  69. package/dist/views/Dashboard/index.js.map +1 -1
  70. package/dist/views/Document/index.js +14 -76
  71. package/dist/views/Document/index.js.map +1 -1
  72. package/dist/views/Edit/index.js +1 -9
  73. package/dist/views/Edit/index.js.map +1 -1
  74. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +57 -104
  75. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  76. package/dist/views/ForgotPassword/index.js +23 -75
  77. package/dist/views/ForgotPassword/index.js.map +1 -1
  78. package/dist/views/List/index.js +31 -53
  79. package/dist/views/List/index.js.map +1 -1
  80. package/dist/views/List/renderListViewSlots.js +9 -21
  81. package/dist/views/List/renderListViewSlots.js.map +1 -1
  82. package/dist/views/Login/LoginField/index.js +23 -49
  83. package/dist/views/Login/LoginField/index.js.map +1 -1
  84. package/dist/views/Login/LoginForm/index.js +20 -68
  85. package/dist/views/Login/LoginForm/index.js.map +1 -1
  86. package/dist/views/Login/index.js +33 -66
  87. package/dist/views/Login/index.js.map +1 -1
  88. package/dist/views/Logout/LogoutClient.js +7 -36
  89. package/dist/views/Logout/LogoutClient.js.map +1 -1
  90. package/dist/views/Logout/index.js +4 -26
  91. package/dist/views/Logout/index.js.map +1 -1
  92. package/dist/views/NotFound/index.client.js +15 -55
  93. package/dist/views/NotFound/index.client.js.map +1 -1
  94. package/dist/views/NotFound/index.js +5 -33
  95. package/dist/views/NotFound/index.js.map +1 -1
  96. package/dist/views/ResetPassword/ResetPasswordForm/index.js +12 -57
  97. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  98. package/dist/views/ResetPassword/index.js +23 -86
  99. package/dist/views/ResetPassword/index.js.map +1 -1
  100. package/dist/views/Root/index.js +12 -52
  101. package/dist/views/Root/index.js.map +1 -1
  102. package/dist/views/Unauthorized/index.js +15 -50
  103. package/dist/views/Unauthorized/index.js.map +1 -1
  104. package/dist/views/Verify/index.js +10 -47
  105. package/dist/views/Verify/index.js.map +1 -1
  106. package/dist/views/Version/Default/SelectedLocalesContext.js +1 -1
  107. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  108. package/dist/views/Version/Default/index.js +52 -258
  109. package/dist/views/Version/Default/index.js.map +1 -1
  110. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +16 -65
  111. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  112. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +24 -66
  113. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  114. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +5 -34
  115. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  116. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +4 -17
  117. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  118. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +10 -55
  119. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  120. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +43 -128
  121. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  122. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +23 -151
  123. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  124. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +3 -16
  125. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  126. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -17
  127. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  128. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +51 -122
  129. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  130. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -17
  131. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  132. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +27 -176
  133. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  134. package/dist/views/Version/RenderFieldsToDiff/index.js +1 -9
  135. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  136. package/dist/views/Version/Restore/index.js +21 -61
  137. package/dist/views/Version/Restore/index.js.map +1 -1
  138. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +16 -24
  139. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  140. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -37
  141. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  142. package/dist/views/Version/SelectComparison/index.js +10 -40
  143. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  144. package/dist/views/Version/SelectLocales/index.js +17 -33
  145. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  146. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +17 -84
  147. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  148. package/dist/views/Version/index.js +21 -63
  149. package/dist/views/Version/index.js.map +1 -1
  150. package/dist/views/Versions/buildColumns.js +9 -58
  151. package/dist/views/Versions/buildColumns.js.map +1 -1
  152. package/dist/views/Versions/cells/AutosaveCell/index.js +4 -31
  153. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  154. package/dist/views/Versions/cells/CreatedAt/index.js +7 -15
  155. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  156. package/dist/views/Versions/cells/ID/index.js +2 -9
  157. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  158. package/dist/views/Versions/index.client.js +20 -98
  159. package/dist/views/Versions/index.client.js.map +1 -1
  160. package/dist/views/Versions/index.js +13 -59
  161. package/dist/views/Versions/index.js.map +1 -1
  162. package/package.json +10 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n query.preset = collectionPreferences?.preset\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n query.groupBy = collectionPreferences?.groupBy\n\n query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || [])\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: collectionPreferences?.columns,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n const hasDeletePermission = permissions?.collections?.[collectionSlug]?.delete\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","page","admin","pagination","defaultLimit","defaultSort","routes","adminRoute","includes","baseFilterConstraint","baseFilter","baseListFilter","queryPreset","queryPresetPermissions","whereWithMergedSearch","search","where","and","deletedAt","exists","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","delete","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n query.preset = collectionPreferences?.preset\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n query.groupBy = collectionPreferences?.groupBy\n\n query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || [])\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: collectionPreferences?.columns,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n const hasDeletePermission = permissions?.collections?.[collectionSlug]?.delete\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","page","admin","pagination","defaultLimit","defaultSort","routes","adminRoute","includes","baseFilterConstraint","baseFilter","baseListFilter","queryPreset","queryPresetPermissions","whereWithMergedSearch","search","where","and","deletedAt","exists","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","delete","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
1
  import { Banner } from '@payloadcms/ui/elements/Banner';
3
2
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
3
  import React from 'react';
@@ -47,28 +46,17 @@ export const renderListViewSlots = ({ clientProps, collectionConfig, description
47
46
  serverProps: serverProps
48
47
  }) : null;
49
48
  // Create banner for document not found
50
- const notFoundBanner = notFoundDocId ? /*#__PURE__*/ _jsxDEV(Banner, {
51
- type: "error",
52
- children: serverProps.i18n.t('error:documentNotFound', {
53
- id: notFoundDocId
54
- })
55
- }, void 0, false, {
56
- fileName: "src/views/List/renderListViewSlots.tsx",
57
- lineNumber: 94,
58
- columnNumber: 5
59
- }, this) : null;
49
+ const notFoundBanner = notFoundDocId ? <Banner type="error">
50
+ {serverProps.i18n.t('error:documentNotFound', {
51
+ id: notFoundDocId
52
+ })}
53
+ </Banner> : null;
60
54
  // Combine banner and existing component
61
55
  if (notFoundBanner || existingBeforeListTable) {
62
- result.BeforeListTable = /*#__PURE__*/ _jsxDEV(React.Fragment, {
63
- children: [
64
- notFoundBanner,
65
- existingBeforeListTable
66
- ]
67
- }, void 0, true, {
68
- fileName: "src/views/List/renderListViewSlots.tsx",
69
- lineNumber: 102,
70
- columnNumber: 7
71
- }, this);
56
+ result.BeforeListTable = <React.Fragment>
57
+ {notFoundBanner}
58
+ {existingBeforeListTable}
59
+ </React.Fragment>;
72
60
  }
73
61
  if (collectionConfig.admin.components?.Description) {
74
62
  result.Description = RenderServerComponent({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/List/renderListViewSlots.tsx"],"sourcesContent":["import type {\n AfterListClientProps,\n AfterListTableClientProps,\n AfterListTableServerPropsOnly,\n BeforeListClientProps,\n BeforeListServerPropsOnly,\n BeforeListTableClientProps,\n BeforeListTableServerPropsOnly,\n ListViewServerPropsOnly,\n ListViewSlots,\n ListViewSlotSharedClientProps,\n Payload,\n SanitizedCollectionConfig,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { Banner } from '@payloadcms/ui/elements/Banner'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\ntype Args = {\n clientProps: ListViewSlotSharedClientProps\n collectionConfig: SanitizedCollectionConfig\n description?: StaticDescription\n notFoundDocId?: null | string\n payload: Payload\n serverProps: ListViewServerPropsOnly\n}\n\nexport const renderListViewSlots = ({\n clientProps,\n collectionConfig,\n description,\n notFoundDocId,\n payload,\n serverProps,\n}: Args): ListViewSlots => {\n const result: ListViewSlots = {} as ListViewSlots\n\n if (collectionConfig.admin.components?.afterList) {\n result.AfterList = RenderServerComponent({\n clientProps: clientProps satisfies AfterListClientProps,\n Component: collectionConfig.admin.components.afterList,\n importMap: payload.importMap,\n serverProps: serverProps satisfies AfterListTableServerPropsOnly,\n })\n }\n\n const listMenuItems = collectionConfig.admin.components?.listMenuItems\n\n if (Array.isArray(listMenuItems)) {\n result.listMenuItems = [\n RenderServerComponent({\n clientProps,\n Component: listMenuItems,\n importMap: payload.importMap,\n serverProps,\n }),\n ]\n }\n\n if (collectionConfig.admin.components?.afterListTable) {\n result.AfterListTable = RenderServerComponent({\n clientProps: clientProps satisfies AfterListTableClientProps,\n Component: collectionConfig.admin.components.afterListTable,\n importMap: payload.importMap,\n serverProps: serverProps satisfies AfterListTableServerPropsOnly,\n })\n }\n\n if (collectionConfig.admin.components?.beforeList) {\n result.BeforeList = RenderServerComponent({\n clientProps: clientProps satisfies BeforeListClientProps,\n Component: collectionConfig.admin.components.beforeList,\n importMap: payload.importMap,\n serverProps: serverProps satisfies BeforeListServerPropsOnly,\n })\n }\n\n // Handle beforeListTable with optional banner\n const existingBeforeListTable = collectionConfig.admin.components?.beforeListTable\n ? RenderServerComponent({\n clientProps: clientProps satisfies BeforeListTableClientProps,\n Component: collectionConfig.admin.components.beforeListTable,\n importMap: payload.importMap,\n serverProps: serverProps satisfies BeforeListTableServerPropsOnly,\n })\n : null\n\n // Create banner for document not found\n const notFoundBanner = notFoundDocId ? (\n <Banner type=\"error\">\n {serverProps.i18n.t('error:documentNotFound', { id: notFoundDocId })}\n </Banner>\n ) : null\n\n // Combine banner and existing component\n if (notFoundBanner || existingBeforeListTable) {\n result.BeforeListTable = (\n <React.Fragment>\n {notFoundBanner}\n {existingBeforeListTable}\n </React.Fragment>\n )\n }\n\n if (collectionConfig.admin.components?.Description) {\n result.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig.slug,\n description,\n } satisfies ViewDescriptionClientProps,\n Component: collectionConfig.admin.components.Description,\n importMap: payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n return result\n}\n"],"names":["Banner","RenderServerComponent","React","renderListViewSlots","clientProps","collectionConfig","description","notFoundDocId","payload","serverProps","result","admin","components","afterList","AfterList","Component","importMap","listMenuItems","Array","isArray","afterListTable","AfterListTable","beforeList","BeforeList","existingBeforeListTable","beforeListTable","notFoundBanner","type","i18n","t","id","BeforeListTable","Fragment","Description","collectionSlug","slug"],"mappings":";AAkBA,SAASA,MAAM,QAAQ,iCAAgC;AACvD,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,OAAOC,WAAW,QAAO;AAWzB,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,WAAW,EACXC,gBAAgB,EAChBC,WAAW,EACXC,aAAa,EACbC,OAAO,EACPC,WAAW,EACN;IACL,MAAMC,SAAwB,CAAC;IAE/B,IAAIL,iBAAiBM,KAAK,CAACC,UAAU,EAAEC,WAAW;QAChDH,OAAOI,SAAS,GAAGb,sBAAsB;YACvCG,aAAaA;YACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACC,SAAS;YACtDG,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,MAAMQ,gBAAgBZ,iBAAiBM,KAAK,CAACC,UAAU,EAAEK;IAEzD,IAAIC,MAAMC,OAAO,CAACF,gBAAgB;QAChCP,OAAOO,aAAa,GAAG;YACrBhB,sBAAsB;gBACpBG;gBACAW,WAAWE;gBACXD,WAAWR,QAAQQ,SAAS;gBAC5BP;YACF;SACD;IACH;IAEA,IAAIJ,iBAAiBM,KAAK,CAACC,UAAU,EAAEQ,gBAAgB;QACrDV,OAAOW,cAAc,GAAGpB,sBAAsB;YAC5CG,aAAaA;YACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACQ,cAAc;YAC3DJ,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,IAAIJ,iBAAiBM,KAAK,CAACC,UAAU,EAAEU,YAAY;QACjDZ,OAAOa,UAAU,GAAGtB,sBAAsB;YACxCG,aAAaA;YACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACU,UAAU;YACvDN,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,8CAA8C;IAC9C,MAAMe,0BAA0BnB,iBAAiBM,KAAK,CAACC,UAAU,EAAEa,kBAC/DxB,sBAAsB;QACpBG,aAAaA;QACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACa,eAAe;QAC5DT,WAAWR,QAAQQ,SAAS;QAC5BP,aAAaA;IACf,KACA;IAEJ,uCAAuC;IACvC,MAAMiB,iBAAiBnB,8BACrB,QAACP;QAAO2B,MAAK;kBACVlB,YAAYmB,IAAI,CAACC,CAAC,CAAC,0BAA0B;YAAEC,IAAIvB;QAAc;;;;;eAElE;IAEJ,wCAAwC;IACxC,IAAImB,kBAAkBF,yBAAyB;QAC7Cd,OAAOqB,eAAe,iBACpB,QAAC7B,MAAM8B,QAAQ;;gBACZN;gBACAF;;;;;;;IAGP;IAEA,IAAInB,iBAAiBM,KAAK,CAACC,UAAU,EAAEqB,aAAa;QAClDvB,OAAOuB,WAAW,GAAGhC,sBAAsB;YACzCG,aAAa;gBACX8B,gBAAgB7B,iBAAiB8B,IAAI;gBACrC7B;YACF;YACAS,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACqB,WAAW;YACxDjB,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,OAAOC;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/List/renderListViewSlots.tsx"],"sourcesContent":["import type {\n AfterListClientProps,\n AfterListTableClientProps,\n AfterListTableServerPropsOnly,\n BeforeListClientProps,\n BeforeListServerPropsOnly,\n BeforeListTableClientProps,\n BeforeListTableServerPropsOnly,\n ListViewServerPropsOnly,\n ListViewSlots,\n ListViewSlotSharedClientProps,\n Payload,\n SanitizedCollectionConfig,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { Banner } from '@payloadcms/ui/elements/Banner'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\ntype Args = {\n clientProps: ListViewSlotSharedClientProps\n collectionConfig: SanitizedCollectionConfig\n description?: StaticDescription\n notFoundDocId?: null | string\n payload: Payload\n serverProps: ListViewServerPropsOnly\n}\n\nexport const renderListViewSlots = ({\n clientProps,\n collectionConfig,\n description,\n notFoundDocId,\n payload,\n serverProps,\n}: Args): ListViewSlots => {\n const result: ListViewSlots = {} as ListViewSlots\n\n if (collectionConfig.admin.components?.afterList) {\n result.AfterList = RenderServerComponent({\n clientProps: clientProps satisfies AfterListClientProps,\n Component: collectionConfig.admin.components.afterList,\n importMap: payload.importMap,\n serverProps: serverProps satisfies AfterListTableServerPropsOnly,\n })\n }\n\n const listMenuItems = collectionConfig.admin.components?.listMenuItems\n\n if (Array.isArray(listMenuItems)) {\n result.listMenuItems = [\n RenderServerComponent({\n clientProps,\n Component: listMenuItems,\n importMap: payload.importMap,\n serverProps,\n }),\n ]\n }\n\n if (collectionConfig.admin.components?.afterListTable) {\n result.AfterListTable = RenderServerComponent({\n clientProps: clientProps satisfies AfterListTableClientProps,\n Component: collectionConfig.admin.components.afterListTable,\n importMap: payload.importMap,\n serverProps: serverProps satisfies AfterListTableServerPropsOnly,\n })\n }\n\n if (collectionConfig.admin.components?.beforeList) {\n result.BeforeList = RenderServerComponent({\n clientProps: clientProps satisfies BeforeListClientProps,\n Component: collectionConfig.admin.components.beforeList,\n importMap: payload.importMap,\n serverProps: serverProps satisfies BeforeListServerPropsOnly,\n })\n }\n\n // Handle beforeListTable with optional banner\n const existingBeforeListTable = collectionConfig.admin.components?.beforeListTable\n ? RenderServerComponent({\n clientProps: clientProps satisfies BeforeListTableClientProps,\n Component: collectionConfig.admin.components.beforeListTable,\n importMap: payload.importMap,\n serverProps: serverProps satisfies BeforeListTableServerPropsOnly,\n })\n : null\n\n // Create banner for document not found\n const notFoundBanner = notFoundDocId ? (\n <Banner type=\"error\">\n {serverProps.i18n.t('error:documentNotFound', { id: notFoundDocId })}\n </Banner>\n ) : null\n\n // Combine banner and existing component\n if (notFoundBanner || existingBeforeListTable) {\n result.BeforeListTable = (\n <React.Fragment>\n {notFoundBanner}\n {existingBeforeListTable}\n </React.Fragment>\n )\n }\n\n if (collectionConfig.admin.components?.Description) {\n result.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig.slug,\n description,\n } satisfies ViewDescriptionClientProps,\n Component: collectionConfig.admin.components.Description,\n importMap: payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n return result\n}\n"],"names":["Banner","RenderServerComponent","React","renderListViewSlots","clientProps","collectionConfig","description","notFoundDocId","payload","serverProps","result","admin","components","afterList","AfterList","Component","importMap","listMenuItems","Array","isArray","afterListTable","AfterListTable","beforeList","BeforeList","existingBeforeListTable","beforeListTable","notFoundBanner","type","i18n","t","id","BeforeListTable","Fragment","Description","collectionSlug","slug"],"mappings":"AAkBA,SAASA,MAAM,QAAQ,iCAAgC;AACvD,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,OAAOC,WAAW,QAAO;AAWzB,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,WAAW,EACXC,gBAAgB,EAChBC,WAAW,EACXC,aAAa,EACbC,OAAO,EACPC,WAAW,EACN;IACL,MAAMC,SAAwB,CAAC;IAE/B,IAAIL,iBAAiBM,KAAK,CAACC,UAAU,EAAEC,WAAW;QAChDH,OAAOI,SAAS,GAAGb,sBAAsB;YACvCG,aAAaA;YACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACC,SAAS;YACtDG,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,MAAMQ,gBAAgBZ,iBAAiBM,KAAK,CAACC,UAAU,EAAEK;IAEzD,IAAIC,MAAMC,OAAO,CAACF,gBAAgB;QAChCP,OAAOO,aAAa,GAAG;YACrBhB,sBAAsB;gBACpBG;gBACAW,WAAWE;gBACXD,WAAWR,QAAQQ,SAAS;gBAC5BP;YACF;SACD;IACH;IAEA,IAAIJ,iBAAiBM,KAAK,CAACC,UAAU,EAAEQ,gBAAgB;QACrDV,OAAOW,cAAc,GAAGpB,sBAAsB;YAC5CG,aAAaA;YACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACQ,cAAc;YAC3DJ,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,IAAIJ,iBAAiBM,KAAK,CAACC,UAAU,EAAEU,YAAY;QACjDZ,OAAOa,UAAU,GAAGtB,sBAAsB;YACxCG,aAAaA;YACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACU,UAAU;YACvDN,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,8CAA8C;IAC9C,MAAMe,0BAA0BnB,iBAAiBM,KAAK,CAACC,UAAU,EAAEa,kBAC/DxB,sBAAsB;QACpBG,aAAaA;QACbW,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACa,eAAe;QAC5DT,WAAWR,QAAQQ,SAAS;QAC5BP,aAAaA;IACf,KACA;IAEJ,uCAAuC;IACvC,MAAMiB,iBAAiBnB,iBACpBP,OAAO2B,KAAK,QAAQ;MACnB,CAAClB,YAAYmB,IAAI,CAACC,CAAC,CAAC,0BAA0B;QAAEC,IAAIvB;IAAc,GAAG;IACvE,EAAEP,UACA;IAEJ,wCAAwC;IACxC,IAAI0B,kBAAkBF,yBAAyB;QAC7Cd,OAAOqB,eAAe,IACnB7B,MAAM8B,SAAS;QACd,CAACN,eAAe;QAChB,CAACF,wBAAwB;MAC3B,EAAEtB,MAAM8B;IAEZ;IAEA,IAAI3B,iBAAiBM,KAAK,CAACC,UAAU,EAAEqB,aAAa;QAClDvB,OAAOuB,WAAW,GAAGhC,sBAAsB;YACzCG,aAAa;gBACX8B,gBAAgB7B,iBAAiB8B,IAAI;gBACrC7B;YACF;YACAS,WAAWV,iBAAiBM,KAAK,CAACC,UAAU,CAACqB,WAAW;YACxDjB,WAAWR,QAAQQ,SAAS;YAC5BP,aAAaA;QACf;IACF;IAEA,OAAOC;AACT,EAAC"}
@@ -1,64 +1,38 @@
1
1
  'use client';
2
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
2
  import { EmailField, TextField, useTranslation } from '@payloadcms/ui';
4
3
  import { email, username } from 'payload/shared';
5
- import React from 'react';
6
4
  export const LoginField = ({ type, required = true })=>{
7
5
  const { t } = useTranslation();
8
6
  if (type === 'email') {
9
- return /*#__PURE__*/ _jsxDEV(EmailField, {
10
- field: {
11
- name: 'email',
12
- admin: {
13
- autoComplete: 'email'
14
- },
15
- label: t('general:email'),
16
- required
7
+ return <EmailField field={{
8
+ name: 'email',
9
+ admin: {
10
+ autoComplete: 'email'
17
11
  },
18
- path: "email",
19
- validate: email
20
- }, void 0, false, {
21
- fileName: "src/views/Login/LoginField/index.tsx",
22
- lineNumber: 19,
23
- columnNumber: 7
24
- }, this);
12
+ label: t('general:email'),
13
+ required
14
+ }} path="email" validate={email}/>;
25
15
  }
26
16
  if (type === 'username') {
27
- return /*#__PURE__*/ _jsxDEV(TextField, {
28
- field: {
29
- name: 'username',
30
- label: t('authentication:username'),
31
- required
32
- },
33
- path: "username",
34
- validate: username
35
- }, void 0, false, {
36
- fileName: "src/views/Login/LoginField/index.tsx",
37
- lineNumber: 36,
38
- columnNumber: 7
39
- }, this);
17
+ return <TextField field={{
18
+ name: 'username',
19
+ label: t('authentication:username'),
20
+ required
21
+ }} path="username" validate={username}/>;
40
22
  }
41
23
  if (type === 'emailOrUsername') {
42
- return /*#__PURE__*/ _jsxDEV(TextField, {
43
- field: {
44
- name: 'username',
45
- label: t('authentication:emailOrUsername'),
46
- required
47
- },
48
- path: "username",
49
- validate: (value, options)=>{
50
- const passesUsername = username(value, options);
51
- const passesEmail = email(value, options);
52
- if (!passesEmail && !passesUsername) {
53
- return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`;
54
- }
55
- return true;
24
+ return <TextField field={{
25
+ name: 'username',
26
+ label: t('authentication:emailOrUsername'),
27
+ required
28
+ }} path="username" validate={(value, options)=>{
29
+ const passesUsername = username(value, options);
30
+ const passesEmail = email(value, options);
31
+ if (!passesEmail && !passesUsername) {
32
+ return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`;
56
33
  }
57
- }, void 0, false, {
58
- fileName: "src/views/Login/LoginField/index.tsx",
59
- lineNumber: 50,
60
- columnNumber: 7
61
- }, this);
34
+ return true;
35
+ }}/>;
62
36
  }
63
37
  return null;
64
38
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Login/LoginField/index.tsx"],"sourcesContent":["'use client'\nimport type { Validate, ValidateOptions } from 'payload'\n\nimport { EmailField, TextField, useTranslation } from '@payloadcms/ui'\nimport { email, username } from 'payload/shared'\nimport React from 'react'\n\nexport type LoginFieldProps = {\n readonly required?: boolean\n readonly type: 'email' | 'emailOrUsername' | 'username'\n readonly validate?: Validate\n}\n\nexport const LoginField: React.FC<LoginFieldProps> = ({ type, required = true }) => {\n const { t } = useTranslation()\n\n if (type === 'email') {\n return (\n <EmailField\n field={{\n name: 'email',\n admin: {\n autoComplete: 'email',\n },\n label: t('general:email'),\n required,\n }}\n path=\"email\"\n validate={email}\n />\n )\n }\n\n if (type === 'username') {\n return (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:username'),\n required,\n }}\n path=\"username\"\n validate={username}\n />\n )\n }\n\n if (type === 'emailOrUsername') {\n return (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:emailOrUsername'),\n required,\n }}\n path=\"username\"\n validate={(value, options) => {\n const passesUsername = username(value, options)\n const passesEmail = email(\n value,\n options as ValidateOptions<any, { username?: string }, any, any>,\n )\n\n if (!passesEmail && !passesUsername) {\n return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`\n }\n\n return true\n }}\n />\n )\n }\n\n return null\n}\n"],"names":["EmailField","TextField","useTranslation","email","username","React","LoginField","type","required","t","field","name","admin","autoComplete","label","path","validate","value","options","passesUsername","passesEmail"],"mappings":"AAAA;;AAGA,SAASA,UAAU,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACtE,SAASC,KAAK,EAAEC,QAAQ,QAAQ,iBAAgB;AAChD,OAAOC,WAAW,QAAO;AAQzB,OAAO,MAAMC,aAAwC,CAAC,EAAEC,IAAI,EAAEC,WAAW,IAAI,EAAE;IAC7E,MAAM,EAAEC,CAAC,EAAE,GAAGP;IAEd,IAAIK,SAAS,SAAS;QACpB,qBACE,QAACP;YACCU,OAAO;gBACLC,MAAM;gBACNC,OAAO;oBACLC,cAAc;gBAChB;gBACAC,OAAOL,EAAE;gBACTD;YACF;YACAO,MAAK;YACLC,UAAUb;;;;;;IAGhB;IAEA,IAAII,SAAS,YAAY;QACvB,qBACE,QAACN;YACCS,OAAO;gBACLC,MAAM;gBACNG,OAAOL,EAAE;gBACTD;YACF;YACAO,MAAK;YACLC,UAAUZ;;;;;;IAGhB;IAEA,IAAIG,SAAS,mBAAmB;QAC9B,qBACE,QAACN;YACCS,OAAO;gBACLC,MAAM;gBACNG,OAAOL,EAAE;gBACTD;YACF;YACAO,MAAK;YACLC,UAAU,CAACC,OAAOC;gBAChB,MAAMC,iBAAiBf,SAASa,OAAOC;gBACvC,MAAME,cAAcjB,MAClBc,OACAC;gBAGF,IAAI,CAACE,eAAe,CAACD,gBAAgB;oBACnC,OAAO,GAAGV,EAAE,iBAAiB,EAAE,EAAEW,YAAY,CAAC,EAAEX,EAAE,oBAAoB,EAAE,EAAEU,gBAAgB;gBAC5F;gBAEA,OAAO;YACT;;;;;;IAGN;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/Login/LoginField/index.tsx"],"sourcesContent":["'use client'\nimport type { Validate, ValidateOptions } from 'payload'\n\nimport { EmailField, TextField, useTranslation } from '@payloadcms/ui'\nimport { email, username } from 'payload/shared'\nimport React from 'react'\n\nexport type LoginFieldProps = {\n readonly required?: boolean\n readonly type: 'email' | 'emailOrUsername' | 'username'\n readonly validate?: Validate\n}\n\nexport const LoginField: React.FC<LoginFieldProps> = ({ type, required = true }) => {\n const { t } = useTranslation()\n\n if (type === 'email') {\n return (\n <EmailField\n field={{\n name: 'email',\n admin: {\n autoComplete: 'email',\n },\n label: t('general:email'),\n required,\n }}\n path=\"email\"\n validate={email}\n />\n )\n }\n\n if (type === 'username') {\n return (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:username'),\n required,\n }}\n path=\"username\"\n validate={username}\n />\n )\n }\n\n if (type === 'emailOrUsername') {\n return (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:emailOrUsername'),\n required,\n }}\n path=\"username\"\n validate={(value, options) => {\n const passesUsername = username(value, options)\n const passesEmail = email(\n value,\n options as ValidateOptions<any, { username?: string }, any, any>,\n )\n\n if (!passesEmail && !passesUsername) {\n return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`\n }\n\n return true\n }}\n />\n )\n }\n\n return null\n}\n"],"names":["EmailField","TextField","useTranslation","email","username","LoginField","type","required","t","field","name","admin","autoComplete","label","path","validate","value","options","passesUsername","passesEmail"],"mappings":"AAAA;AAGA,SAASA,UAAU,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACtE,SAASC,KAAK,EAAEC,QAAQ,QAAQ,iBAAgB;AAShD,OAAO,MAAMC,aAAwC,CAAC,EAAEC,IAAI,EAAEC,WAAW,IAAI,EAAE;IAC7E,MAAM,EAAEC,CAAC,EAAE,GAAGN;IAEd,IAAII,SAAS,SAAS;QACpB,QACGN,WACCS,OAAO;YACLC,MAAM;YACNC,OAAO;gBACLC,cAAc;YAChB;YACAC,OAAOL,EAAE;YACTD;QACF,GACAO,KAAK,QACLC,UAAUZ;IAGhB;IAEA,IAAIG,SAAS,YAAY;QACvB,QACGL,UACCQ,OAAO;YACLC,MAAM;YACNG,OAAOL,EAAE;YACTD;QACF,GACAO,KAAK,WACLC,UAAUX;IAGhB;IAEA,IAAIE,SAAS,mBAAmB;QAC9B,QACGL,UACCQ,OAAO;YACLC,MAAM;YACNG,OAAOL,EAAE;YACTD;QACF,GACAO,KAAK,WACLC,UAAU,CAACC,OAAOC;YAChB,MAAMC,iBAAiBd,SAASY,OAAOC;YACvC,MAAME,cAAchB,MAClBa,OACAC;YAGF,IAAI,CAACE,eAAe,CAACD,gBAAgB;gBACnC,OAAO,GAAGV,EAAE,iBAAiB,EAAE,EAAEW,YAAY,CAAC,EAAEX,EAAE,oBAAoB,EAAE,EAAEU,gBAAgB;YAC5F;YAEA,OAAO;QACT;IAGN;IAEA,OAAO;AACT,EAAC"}
@@ -1,5 +1,4 @@
1
1
  'use client';
2
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
2
  import React from 'react';
4
3
  const baseClass = 'login__form';
5
4
  import { Form, FormSubmit, Link, PasswordField, useAuth, useConfig, useTranslation } from '@payloadcms/ui';
@@ -49,73 +48,26 @@ export const LoginForm = ({ prefillEmail, prefillPassword, prefillUsername, sear
49
48
  const handleLogin = (data)=>{
50
49
  setUser(data);
51
50
  };
52
- return /*#__PURE__*/ _jsxDEV(Form, {
53
- action: `${apiRoute}/${userSlug}/login`,
54
- className: baseClass,
55
- disableSuccessStatus: true,
56
- initialState: initialState,
57
- method: "POST",
58
- onSuccess: handleLogin,
59
- redirect: getSafeRedirect({
60
- fallbackTo: adminRoute,
61
- redirectTo: searchParams?.redirect
62
- }),
63
- waitForAutocomplete: true,
64
- children: [
65
- /*#__PURE__*/ _jsxDEV("div", {
66
- className: `${baseClass}__inputWrap`,
67
- children: [
68
- /*#__PURE__*/ _jsxDEV(LoginField, {
69
- type: loginType
70
- }, void 0, false, {
71
- fileName: "src/views/Login/LoginForm/index.tsx",
72
- lineNumber: 98,
73
- columnNumber: 9
74
- }, this),
75
- /*#__PURE__*/ _jsxDEV(PasswordField, {
76
- field: {
77
- name: 'password',
78
- label: t('general:password'),
79
- required: true
80
- },
81
- path: "password"
82
- }, void 0, false, {
83
- fileName: "src/views/Login/LoginForm/index.tsx",
84
- lineNumber: 99,
85
- columnNumber: 9
86
- }, this)
87
- ]
88
- }, void 0, true, {
89
- fileName: "src/views/Login/LoginForm/index.tsx",
90
- lineNumber: 97,
91
- columnNumber: 7
92
- }, this),
93
- /*#__PURE__*/ _jsxDEV(Link, {
94
- href: formatAdminURL({
95
- adminRoute,
96
- path: forgotRoute
97
- }),
98
- prefetch: false,
99
- children: t('authentication:forgotPasswordQuestion')
100
- }, void 0, false, {
101
- fileName: "src/views/Login/LoginForm/index.tsx",
102
- lineNumber: 108,
103
- columnNumber: 7
104
- }, this),
105
- /*#__PURE__*/ _jsxDEV(FormSubmit, {
106
- size: "large",
107
- children: t('authentication:login')
108
- }, void 0, false, {
109
- fileName: "src/views/Login/LoginForm/index.tsx",
110
- lineNumber: 117,
111
- columnNumber: 7
112
- }, this)
113
- ]
114
- }, void 0, true, {
115
- fileName: "src/views/Login/LoginForm/index.tsx",
116
- lineNumber: 87,
117
- columnNumber: 5
118
- }, this);
51
+ return <Form action={`${apiRoute}/${userSlug}/login`} className={baseClass} disableSuccessStatus initialState={initialState} method="POST" onSuccess={handleLogin} redirect={getSafeRedirect({
52
+ fallbackTo: adminRoute,
53
+ redirectTo: searchParams?.redirect
54
+ })} waitForAutocomplete>
55
+ <div className={`${baseClass}__inputWrap`}>
56
+ <LoginField type={loginType}/>
57
+ <PasswordField field={{
58
+ name: 'password',
59
+ label: t('general:password'),
60
+ required: true
61
+ }} path="password"/>
62
+ </div>
63
+ <Link href={formatAdminURL({
64
+ adminRoute,
65
+ path: forgotRoute
66
+ })} prefetch={false}>
67
+ {t('authentication:forgotPasswordQuestion')}
68
+ </Link>
69
+ <FormSubmit size="large">{t('authentication:login')}</FormSubmit>
70
+ </Form>;
119
71
  };
120
72
 
121
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nconst baseClass = 'login__form'\n\nimport type { UserWithToken } from '@payloadcms/ui'\nimport type { FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n Link,\n PasswordField,\n useAuth,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getLoginOptions, getSafeRedirect } from 'payload/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config, getEntityConfig } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) {\n return 'emailOrUsername'\n }\n if (canLoginWithUsername) {\n return 'username'\n }\n return 'email'\n })\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n const handleLogin = (data: UserWithToken) => {\n setUser(data)\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n onSuccess={handleLogin}\n redirect={getSafeRedirect({ fallbackTo: adminRoute, redirectTo: searchParams?.redirect })}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n path=\"password\"\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n prefetch={false}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["React","baseClass","Form","FormSubmit","Link","PasswordField","useAuth","useConfig","useTranslation","formatAdminURL","getLoginOptions","getSafeRedirect","LoginField","LoginForm","prefillEmail","prefillPassword","prefillUsername","searchParams","config","getEntityConfig","admin","routes","forgot","forgotRoute","user","userSlug","adminRoute","api","apiRoute","collectionConfig","collectionSlug","auth","authOptions","loginWithUsername","canLoginWithEmail","canLoginWithUsername","loginType","useState","t","setUser","initialState","password","initialValue","undefined","valid","value","username","email","handleLogin","data","action","className","disableSuccessStatus","method","onSuccess","redirect","fallbackTo","redirectTo","waitForAutocomplete","div","type","field","name","label","required","path","href","prefetch","size"],"mappings":"AAAA;;AAEA,OAAOA,WAAW,QAAO;AAEzB,MAAMC,YAAY;AAKlB,SACEC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,aAAa,EACbC,OAAO,EACPC,SAAS,EACTC,cAAc,QACT,iBAAgB;AACvB,SAASC,cAAc,EAAEC,eAAe,EAAEC,eAAe,QAAQ,iBAAgB;AAIjF,SAASC,UAAU,QAAQ,yBAAwB;AACnD,OAAO,eAAc;AAErB,OAAO,MAAMC,YAKR,CAAC,EAAEC,YAAY,EAAEC,eAAe,EAAEC,eAAe,EAAEC,YAAY,EAAE;IACpE,MAAM,EAAEC,MAAM,EAAEC,eAAe,EAAE,GAAGZ;IAEpC,MAAM,EACJa,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAC/BC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC7C,GAAGV;IAEJ,MAAMW,mBAAmBV,gBAAgB;QAAEW,gBAAgBL;IAAS;IACpE,MAAM,EAAEM,MAAMC,WAAW,EAAE,GAAGH;IAC9B,MAAMI,oBAAoBD,YAAYC,iBAAiB;IACvD,MAAM,EAAEC,iBAAiB,EAAEC,oBAAoB,EAAE,GAAGzB,gBAAgBuB;IAEpE,MAAM,CAACG,UAAU,GAAGpC,MAAMqC,QAAQ,CAA0B;QAC1D,IAAIH,qBAAqBC,sBAAsB;YAC7C,OAAO;QACT;QACA,IAAIA,sBAAsB;YACxB,OAAO;QACT;QACA,OAAO;IACT;IAEA,MAAM,EAAEG,CAAC,EAAE,GAAG9B;IACd,MAAM,EAAE+B,OAAO,EAAE,GAAGjC;IAEpB,MAAMkC,eAA0B;QAC9BC,UAAU;YACRC,cAAc3B,mBAAmB4B;YACjCC,OAAO;YACPC,OAAO9B,mBAAmB4B;QAC5B;IACF;IAEA,IAAIV,mBAAmB;QACrBO,aAAaM,QAAQ,GAAG;YACtBJ,cAAc1B,mBAAmB2B;YACjCC,OAAO;YACPC,OAAO7B,mBAAmB2B;QAC5B;IACF,OAAO;QACLH,aAAaO,KAAK,GAAG;YACnBL,cAAc5B,gBAAgB6B;YAC9BC,OAAO;YACPC,OAAO/B,gBAAgB6B;QACzB;IACF;IAEA,MAAMK,cAAc,CAACC;QACnBV,QAAQU;IACV;IAEA,qBACE,QAAC/C;QACCgD,QAAQ,GAAGtB,SAAS,CAAC,EAAEH,SAAS,MAAM,CAAC;QACvC0B,WAAWlD;QACXmD,oBAAoB;QACpBZ,cAAcA;QACda,QAAO;QACPC,WAAWN;QACXO,UAAU5C,gBAAgB;YAAE6C,YAAY9B;YAAY+B,YAAYxC,cAAcsC;QAAS;QACvFG,mBAAmB;;0BAEnB,QAACC;gBAAIR,WAAW,GAAGlD,UAAU,WAAW,CAAC;;kCACvC,QAACW;wBAAWgD,MAAMxB;;;;;;kCAClB,QAAC/B;wBACCwD,OAAO;4BACLC,MAAM;4BACNC,OAAOzB,EAAE;4BACT0B,UAAU;wBACZ;wBACAC,MAAK;;;;;;;;;;;;0BAGT,QAAC7D;gBACC8D,MAAMzD,eAAe;oBACnBiB;oBACAuC,MAAM1C;gBACR;gBACA4C,UAAU;0BAET7B,EAAE;;;;;;0BAEL,QAACnC;gBAAWiE,MAAK;0BAAS9B,EAAE;;;;;;;;;;;;AAGlC,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nconst baseClass = 'login__form'\n\nimport type { UserWithToken } from '@payloadcms/ui'\nimport type { FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n Link,\n PasswordField,\n useAuth,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getLoginOptions, getSafeRedirect } from 'payload/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config, getEntityConfig } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) {\n return 'emailOrUsername'\n }\n if (canLoginWithUsername) {\n return 'username'\n }\n return 'email'\n })\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n const handleLogin = (data: UserWithToken) => {\n setUser(data)\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n onSuccess={handleLogin}\n redirect={getSafeRedirect({ fallbackTo: adminRoute, redirectTo: searchParams?.redirect })}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n path=\"password\"\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n prefetch={false}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["React","baseClass","Form","FormSubmit","Link","PasswordField","useAuth","useConfig","useTranslation","formatAdminURL","getLoginOptions","getSafeRedirect","LoginField","LoginForm","prefillEmail","prefillPassword","prefillUsername","searchParams","config","getEntityConfig","admin","routes","forgot","forgotRoute","user","userSlug","adminRoute","api","apiRoute","collectionConfig","collectionSlug","auth","authOptions","loginWithUsername","canLoginWithEmail","canLoginWithUsername","loginType","useState","t","setUser","initialState","password","initialValue","undefined","valid","value","username","email","handleLogin","data","action","className","disableSuccessStatus","method","onSuccess","redirect","fallbackTo","redirectTo","waitForAutocomplete","div","type","field","name","label","required","path","href","prefetch","size"],"mappings":"AAAA;AAEA,OAAOA,WAAW,QAAO;AAEzB,MAAMC,YAAY;AAKlB,SACEC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,aAAa,EACbC,OAAO,EACPC,SAAS,EACTC,cAAc,QACT,iBAAgB;AACvB,SAASC,cAAc,EAAEC,eAAe,EAAEC,eAAe,QAAQ,iBAAgB;AAIjF,SAASC,UAAU,QAAQ,yBAAwB;AACnD,OAAO,eAAc;AAErB,OAAO,MAAMC,YAKR,CAAC,EAAEC,YAAY,EAAEC,eAAe,EAAEC,eAAe,EAAEC,YAAY,EAAE;IACpE,MAAM,EAAEC,MAAM,EAAEC,eAAe,EAAE,GAAGZ;IAEpC,MAAM,EACJa,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAC/BC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC7C,GAAGV;IAEJ,MAAMW,mBAAmBV,gBAAgB;QAAEW,gBAAgBL;IAAS;IACpE,MAAM,EAAEM,MAAMC,WAAW,EAAE,GAAGH;IAC9B,MAAMI,oBAAoBD,YAAYC,iBAAiB;IACvD,MAAM,EAAEC,iBAAiB,EAAEC,oBAAoB,EAAE,GAAGzB,gBAAgBuB;IAEpE,MAAM,CAACG,UAAU,GAAGpC,MAAMqC,QAAQ,CAA0B;QAC1D,IAAIH,qBAAqBC,sBAAsB;YAC7C,OAAO;QACT;QACA,IAAIA,sBAAsB;YACxB,OAAO;QACT;QACA,OAAO;IACT;IAEA,MAAM,EAAEG,CAAC,EAAE,GAAG9B;IACd,MAAM,EAAE+B,OAAO,EAAE,GAAGjC;IAEpB,MAAMkC,eAA0B;QAC9BC,UAAU;YACRC,cAAc3B,mBAAmB4B;YACjCC,OAAO;YACPC,OAAO9B,mBAAmB4B;QAC5B;IACF;IAEA,IAAIV,mBAAmB;QACrBO,aAAaM,QAAQ,GAAG;YACtBJ,cAAc1B,mBAAmB2B;YACjCC,OAAO;YACPC,OAAO7B,mBAAmB2B;QAC5B;IACF,OAAO;QACLH,aAAaO,KAAK,GAAG;YACnBL,cAAc5B,gBAAgB6B;YAC9BC,OAAO;YACPC,OAAO/B,gBAAgB6B;QACzB;IACF;IAEA,MAAMK,cAAc,CAACC;QACnBV,QAAQU;IACV;IAEA,QACG/C,KACCgD,QAAQ,GAAGtB,SAAS,CAAC,EAAEH,SAAS,MAAM,CAAC,EACvC0B,WAAWlD,WACXmD,qBACAZ,cAAcA,cACda,OAAO,OACPC,WAAWN,aACXO,UAAU5C,gBAAgB;QAAE6C,YAAY9B;QAAY+B,YAAYxC,cAAcsC;IAAS,IACvFG,oBACD;MACC,CAACC,IAAIR,WAAW,GAAGlD,UAAU,WAAW,CAAC,EAAE;QACzC,CAACW,WAAWgD,MAAMxB,YAAa;QAC/B,CAAC/B,cACCwD,OAAO;QACLC,MAAM;QACNC,OAAOzB,EAAE;QACT0B,UAAU;IACZ,GACAC,KAAK,YACL;MACJ,EAAEN,IAAI;MACN,CAACvD,KACC8D,MAAMzD,eAAe;QACnBiB;QACAuC,MAAM1C;IACR,IACA4C,UAAU,OACX;QACC,CAAC7B,EAAE,yCAAyC;MAC9C,EAAElC,KAAK;MACP,CAACD,WAAWiE,KAAK,SAAS9B,EAAE,0BAA0BnC,WAAW;IACnE,EAAED;AAEN,EAAC"}
@@ -1,8 +1,7 @@
1
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
1
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
3
2
  import { redirect } from 'next/navigation.js';
4
3
  import { getSafeRedirect } from 'payload/shared';
5
- import React, { Fragment } from 'react';
4
+ import { Fragment } from 'react';
6
5
  import { Logo } from '../../elements/Logo/index.js';
7
6
  import { LoginForm } from './LoginForm/index.js';
8
7
  import './index.scss';
@@ -23,70 +22,38 @@ export function LoginView({ initPageResult, params, searchParams }) {
23
22
  const prefillUsername = prefillAutoLogin && typeof config.admin?.autoLogin === 'object' ? config.admin?.autoLogin.username : undefined;
24
23
  const prefillEmail = prefillAutoLogin && typeof config.admin?.autoLogin === 'object' ? config.admin?.autoLogin.email : undefined;
25
24
  const prefillPassword = prefillAutoLogin && typeof config.admin?.autoLogin === 'object' ? config.admin?.autoLogin.password : undefined;
26
- return /*#__PURE__*/ _jsxDEV(Fragment, {
27
- children: [
28
- /*#__PURE__*/ _jsxDEV("div", {
29
- className: `${loginBaseClass}__brand`,
30
- children: /*#__PURE__*/ _jsxDEV(Logo, {
31
- i18n: i18n,
32
- locale: locale,
33
- params: params,
34
- payload: payload,
35
- permissions: permissions,
36
- searchParams: searchParams,
37
- user: user
38
- }, void 0, false, {
39
- fileName: "src/views/Login/index.tsx",
40
- lineNumber: 57,
41
- columnNumber: 9
42
- }, this)
43
- }, void 0, false, {
44
- fileName: "src/views/Login/index.tsx",
45
- lineNumber: 56,
46
- columnNumber: 7
47
- }, this),
48
- RenderServerComponent({
49
- Component: beforeLogin,
50
- importMap: payload.importMap,
51
- serverProps: {
52
- i18n,
53
- locale,
54
- params,
55
- payload,
56
- permissions,
57
- searchParams,
58
- user
59
- }
60
- }),
61
- !collectionConfig?.auth?.disableLocalStrategy && /*#__PURE__*/ _jsxDEV(LoginForm, {
62
- prefillEmail: prefillEmail,
63
- prefillPassword: prefillPassword,
64
- prefillUsername: prefillUsername,
65
- searchParams: searchParams
66
- }, void 0, false, {
67
- fileName: "src/views/Login/index.tsx",
68
- lineNumber: 81,
69
- columnNumber: 9
70
- }, this),
71
- RenderServerComponent({
72
- Component: afterLogin,
73
- importMap: payload.importMap,
74
- serverProps: {
75
- i18n,
76
- locale,
77
- params,
78
- payload,
79
- permissions,
80
- searchParams,
81
- user
82
- }
83
- })
84
- ]
85
- }, void 0, true, {
86
- fileName: "src/views/Login/index.tsx",
87
- lineNumber: 55,
88
- columnNumber: 5
89
- }, this);
25
+ return <Fragment>
26
+ <div className={`${loginBaseClass}__brand`}>
27
+ <Logo i18n={i18n} locale={locale} params={params} payload={payload} permissions={permissions} searchParams={searchParams} user={user}/>
28
+ </div>
29
+ {RenderServerComponent({
30
+ Component: beforeLogin,
31
+ importMap: payload.importMap,
32
+ serverProps: {
33
+ i18n,
34
+ locale,
35
+ params,
36
+ payload,
37
+ permissions,
38
+ searchParams,
39
+ user
40
+ }
41
+ })}
42
+ {!collectionConfig?.auth?.disableLocalStrategy && <LoginForm prefillEmail={prefillEmail} prefillPassword={prefillPassword} prefillUsername={prefillUsername} searchParams={searchParams}/>}
43
+ {RenderServerComponent({
44
+ Component: afterLogin,
45
+ importMap: payload.importMap,
46
+ serverProps: {
47
+ i18n,
48
+ locale,
49
+ params,
50
+ payload,
51
+ permissions,
52
+ searchParams,
53
+ user
54
+ }
55
+ })}
56
+ </Fragment>;
90
57
  }
91
58
 
92
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Login/index.tsx"],"sourcesContent":["import type { AdminViewServerProps, ServerProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { redirect } from 'next/navigation.js'\nimport { getSafeRedirect } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { Logo } from '../../elements/Logo/index.js'\nimport { LoginForm } from './LoginForm/index.js'\nimport './index.scss'\nexport const loginBaseClass = 'login'\n\nexport function LoginView({ initPageResult, params, searchParams }: AdminViewServerProps) {\n const { locale, permissions, req } = initPageResult\n\n const {\n i18n,\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n admin: { components: { afterLogin, beforeLogin } = {}, user: userSlug },\n routes: { admin },\n } = config\n\n const redirectUrl = getSafeRedirect({ fallbackTo: admin, redirectTo: searchParams.redirect })\n\n if (user) {\n redirect(redirectUrl)\n }\n\n const collectionConfig = payload?.collections?.[userSlug]?.config\n\n const prefillAutoLogin =\n typeof config.admin?.autoLogin === 'object' && config.admin?.autoLogin.prefillOnly\n\n const prefillUsername =\n prefillAutoLogin && typeof config.admin?.autoLogin === 'object'\n ? config.admin?.autoLogin.username\n : undefined\n\n const prefillEmail =\n prefillAutoLogin && typeof config.admin?.autoLogin === 'object'\n ? config.admin?.autoLogin.email\n : undefined\n\n const prefillPassword =\n prefillAutoLogin && typeof config.admin?.autoLogin === 'object'\n ? config.admin?.autoLogin.password\n : undefined\n\n return (\n <Fragment>\n <div className={`${loginBaseClass}__brand`}>\n <Logo\n i18n={i18n}\n locale={locale}\n params={params}\n payload={payload}\n permissions={permissions}\n searchParams={searchParams}\n user={user}\n />\n </div>\n {RenderServerComponent({\n Component: beforeLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n {!collectionConfig?.auth?.disableLocalStrategy && (\n <LoginForm\n prefillEmail={prefillEmail}\n prefillPassword={prefillPassword}\n prefillUsername={prefillUsername}\n searchParams={searchParams}\n />\n )}\n {RenderServerComponent({\n Component: afterLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n </Fragment>\n )\n}\n"],"names":["RenderServerComponent","redirect","getSafeRedirect","React","Fragment","Logo","LoginForm","loginBaseClass","LoginView","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","admin","components","afterLogin","beforeLogin","userSlug","routes","redirectUrl","fallbackTo","redirectTo","collectionConfig","collections","prefillAutoLogin","autoLogin","prefillOnly","prefillUsername","username","undefined","prefillEmail","email","prefillPassword","password","div","className","Component","importMap","serverProps","auth","disableLocalStrategy"],"mappings":";AAEA,SAASA,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,eAAe,QAAQ,iBAAgB;AAChD,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,OAAO,eAAc;AACrB,OAAO,MAAMC,iBAAiB,QAAO;AAErC,OAAO,SAASC,UAAU,EAAEC,cAAc,EAAEC,MAAM,EAAEC,YAAY,EAAwB;IACtF,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGL;IAErC,MAAM,EACJM,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGJ;IAEJ,MAAM,EACJK,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EACvEC,QAAQ,EAAEL,KAAK,EAAE,EAClB,GAAGF;IAEJ,MAAMQ,cAAcvB,gBAAgB;QAAEwB,YAAYP;QAAOQ,YAAYhB,aAAaV,QAAQ;IAAC;IAE3F,IAAIiB,MAAM;QACRjB,SAASwB;IACX;IAEA,MAAMG,mBAAmBZ,SAASa,aAAa,CAACN,SAAS,EAAEN;IAE3D,MAAMa,mBACJ,OAAOb,OAAOE,KAAK,EAAEY,cAAc,YAAYd,OAAOE,KAAK,EAAEY,UAAUC;IAEzE,MAAMC,kBACJH,oBAAoB,OAAOb,OAAOE,KAAK,EAAEY,cAAc,WACnDd,OAAOE,KAAK,EAAEY,UAAUG,WACxBC;IAEN,MAAMC,eACJN,oBAAoB,OAAOb,OAAOE,KAAK,EAAEY,cAAc,WACnDd,OAAOE,KAAK,EAAEY,UAAUM,QACxBF;IAEN,MAAMG,kBACJR,oBAAoB,OAAOb,OAAOE,KAAK,EAAEY,cAAc,WACnDd,OAAOE,KAAK,EAAEY,UAAUQ,WACxBJ;IAEN,qBACE,QAAC/B;;0BACC,QAACoC;gBAAIC,WAAW,GAAGlC,eAAe,OAAO,CAAC;0BACxC,cAAA,QAACF;oBACCU,MAAMA;oBACNH,QAAQA;oBACRF,QAAQA;oBACRM,SAASA;oBACTH,aAAaA;oBACbF,cAAcA;oBACdO,MAAMA;;;;;;;;;;;YAGTlB,sBAAsB;gBACrB0C,WAAWpB;gBACXqB,WAAW3B,QAAQ2B,SAAS;gBAC5BC,aAAa;oBACX7B;oBACAH;oBACAF;oBACAM;oBACAH;oBACAF;oBACAO;gBACF;YACF;YACC,CAACU,kBAAkBiB,MAAMC,sCACxB,QAACxC;gBACC8B,cAAcA;gBACdE,iBAAiBA;gBACjBL,iBAAiBA;gBACjBtB,cAAcA;;;;;;YAGjBX,sBAAsB;gBACrB0C,WAAWrB;gBACXsB,WAAW3B,QAAQ2B,SAAS;gBAC5BC,aAAa;oBACX7B;oBACAH;oBACAF;oBACAM;oBACAH;oBACAF;oBACAO;gBACF;YACF;;;;;;;AAGN"}
1
+ {"version":3,"sources":["../../../src/views/Login/index.tsx"],"sourcesContent":["import type { AdminViewServerProps, ServerProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { redirect } from 'next/navigation.js'\nimport { getSafeRedirect } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { Logo } from '../../elements/Logo/index.js'\nimport { LoginForm } from './LoginForm/index.js'\nimport './index.scss'\nexport const loginBaseClass = 'login'\n\nexport function LoginView({ initPageResult, params, searchParams }: AdminViewServerProps) {\n const { locale, permissions, req } = initPageResult\n\n const {\n i18n,\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n admin: { components: { afterLogin, beforeLogin } = {}, user: userSlug },\n routes: { admin },\n } = config\n\n const redirectUrl = getSafeRedirect({ fallbackTo: admin, redirectTo: searchParams.redirect })\n\n if (user) {\n redirect(redirectUrl)\n }\n\n const collectionConfig = payload?.collections?.[userSlug]?.config\n\n const prefillAutoLogin =\n typeof config.admin?.autoLogin === 'object' && config.admin?.autoLogin.prefillOnly\n\n const prefillUsername =\n prefillAutoLogin && typeof config.admin?.autoLogin === 'object'\n ? config.admin?.autoLogin.username\n : undefined\n\n const prefillEmail =\n prefillAutoLogin && typeof config.admin?.autoLogin === 'object'\n ? config.admin?.autoLogin.email\n : undefined\n\n const prefillPassword =\n prefillAutoLogin && typeof config.admin?.autoLogin === 'object'\n ? config.admin?.autoLogin.password\n : undefined\n\n return (\n <Fragment>\n <div className={`${loginBaseClass}__brand`}>\n <Logo\n i18n={i18n}\n locale={locale}\n params={params}\n payload={payload}\n permissions={permissions}\n searchParams={searchParams}\n user={user}\n />\n </div>\n {RenderServerComponent({\n Component: beforeLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n {!collectionConfig?.auth?.disableLocalStrategy && (\n <LoginForm\n prefillEmail={prefillEmail}\n prefillPassword={prefillPassword}\n prefillUsername={prefillUsername}\n searchParams={searchParams}\n />\n )}\n {RenderServerComponent({\n Component: afterLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n </Fragment>\n )\n}\n"],"names":["RenderServerComponent","redirect","getSafeRedirect","Fragment","Logo","LoginForm","loginBaseClass","LoginView","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","admin","components","afterLogin","beforeLogin","userSlug","routes","redirectUrl","fallbackTo","redirectTo","collectionConfig","collections","prefillAutoLogin","autoLogin","prefillOnly","prefillUsername","username","undefined","prefillEmail","email","prefillPassword","password","div","className","Component","importMap","serverProps","auth","disableLocalStrategy"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,eAAe,QAAQ,iBAAgB;AAChD,SAAgBC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,OAAO,eAAc;AACrB,OAAO,MAAMC,iBAAiB,QAAO;AAErC,OAAO,SAASC,UAAU,EAAEC,cAAc,EAAEC,MAAM,EAAEC,YAAY,EAAwB;IACtF,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGL;IAErC,MAAM,EACJM,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGJ;IAEJ,MAAM,EACJK,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EACvEC,QAAQ,EAAEL,KAAK,EAAE,EAClB,GAAGF;IAEJ,MAAMQ,cAActB,gBAAgB;QAAEuB,YAAYP;QAAOQ,YAAYhB,aAAaT,QAAQ;IAAC;IAE3F,IAAIgB,MAAM;QACRhB,SAASuB;IACX;IAEA,MAAMG,mBAAmBZ,SAASa,aAAa,CAACN,SAAS,EAAEN;IAE3D,MAAMa,mBACJ,OAAOb,OAAOE,KAAK,EAAEY,cAAc,YAAYd,OAAOE,KAAK,EAAEY,UAAUC;IAEzE,MAAMC,kBACJH,oBAAoB,OAAOb,OAAOE,KAAK,EAAEY,cAAc,WACnDd,OAAOE,KAAK,EAAEY,UAAUG,WACxBC;IAEN,MAAMC,eACJN,oBAAoB,OAAOb,OAAOE,KAAK,EAAEY,cAAc,WACnDd,OAAOE,KAAK,EAAEY,UAAUM,QACxBF;IAEN,MAAMG,kBACJR,oBAAoB,OAAOb,OAAOE,KAAK,EAAEY,cAAc,WACnDd,OAAOE,KAAK,EAAEY,UAAUQ,WACxBJ;IAEN,QACG/B,SAAS;MACR,CAACoC,IAAIC,WAAW,GAAGlC,eAAe,OAAO,CAAC,EAAE;QAC1C,CAACF,KACCU,MAAMA,MACNH,QAAQA,QACRF,QAAQA,QACRM,SAASA,SACTH,aAAaA,aACbF,cAAcA,cACdO,MAAMA,OACN;MACJ,EAAEsB,IAAI;MACN,CAACvC,sBAAsB;QACrByC,WAAWpB;QACXqB,WAAW3B,QAAQ2B,SAAS;QAC5BC,aAAa;YACX7B;YACAH;YACAF;YACAM;YACAH;YACAF;YACAO;QACF;IACF,GAAG;MACH,CAAC,CAACU,kBAAkBiB,MAAMC,yBACvBxC,UACC8B,cAAcA,cACdE,iBAAiBA,iBACjBL,iBAAiBA,iBACjBtB,cAAcA,gBAEhB;MACF,CAACV,sBAAsB;QACrByC,WAAWrB;QACXsB,WAAW3B,QAAQ2B,SAAS;QAC5BC,aAAa;YACX7B;YACAH;YACAF;YACAM;YACAH;YACAF;YACAO;QACF;IACF,GAAG;IACL,EAAEd;AAEN"}