@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.
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +6 -21
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +20 -44
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +41 -73
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +1 -10
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.js +7 -45
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/FormHeader/index.js +4 -25
- package/dist/elements/FormHeader/index.js.map +1 -1
- package/dist/elements/Nav/NavHamburger/index.js +5 -21
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +10 -24
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js +4 -27
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/index.client.js +43 -91
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.js +48 -100
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/layouts/Root/NestProviders.js +3 -12
- package/dist/layouts/Root/NestProviders.js.map +1 -1
- package/dist/layouts/Root/index.js +19 -84
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +5 -0
- package/dist/routes/rest/og/image.js +61 -97
- package/dist/routes/rest/og/image.js.map +1 -1
- package/dist/routes/rest/og/index.js +1 -15
- package/dist/routes/rest/og/index.js.map +1 -1
- package/dist/templates/Default/NavHamburger/index.js +1 -10
- package/dist/templates/Default/NavHamburger/index.js.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +9 -16
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.js +38 -106
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Minimal/index.js +3 -18
- package/dist/templates/Minimal/index.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js +5 -15
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/RenderJSON/index.js +59 -156
- package/dist/views/API/RenderJSON/index.js.map +1 -1
- package/dist/views/API/index.client.js +71 -215
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.js +1 -7
- package/dist/views/API/index.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +8 -35
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/LanguageSelector.js +3 -15
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
- package/dist/views/Account/Settings/index.js +12 -58
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +19 -30
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.js +25 -83
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/BrowseByFolder/buildView.js +28 -38
- package/dist/views/BrowseByFolder/buildView.js.map +1 -1
- package/dist/views/CollectionFolders/buildView.js +35 -45
- package/dist/views/CollectionFolders/buildView.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +20 -75
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.js +5 -36
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.js +94 -169
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.js +24 -43
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/index.js +14 -76
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/index.js +1 -9
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +57 -104
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.js +23 -75
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/index.js +31 -53
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.js +9 -21
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Login/LoginField/index.js +23 -49
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js +20 -68
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/index.js +33 -66
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +7 -36
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.js +4 -26
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.client.js +15 -55
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/NotFound/index.js +5 -33
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +12 -57
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.js +23 -86
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/index.js +12 -52
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.js +15 -50
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.js +10 -47
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
- package/dist/views/Version/Default/index.js +52 -258
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +16 -65
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +24 -66
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +5 -34
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +10 -55
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +43 -128
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +23 -151
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +3 -16
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +51 -122
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +27 -176
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +1 -9
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/Restore/index.js +21 -61
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +16 -24
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -37
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +10 -40
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.js +17 -33
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +17 -84
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Version/index.js +21 -63
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.js +9 -58
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +4 -31
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +7 -15
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/ID/index.js +2 -9
- package/dist/views/Versions/cells/ID/index.js.map +1 -1
- package/dist/views/Versions/index.client.js +20 -98
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.js +13 -59
- package/dist/views/Versions/index.js.map +1 -1
- 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 ?
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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 =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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":"
|
|
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
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
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
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
58
|
-
|
|
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","
|
|
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
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
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
|
|
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
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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","
|
|
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"}
|