@payloadcms/next 3.0.0-beta.11 → 3.0.0-beta.13

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 (180) hide show
  1. package/dist/cjs/withPayload.cjs +2 -1
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/exports/routes.d.ts +1 -1
  4. package/dist/exports/routes.d.ts.map +1 -1
  5. package/dist/exports/routes.js +1 -1
  6. package/dist/exports/routes.js.map +1 -1
  7. package/dist/exports/utilities.d.ts +3 -1
  8. package/dist/exports/utilities.d.ts.map +1 -1
  9. package/dist/exports/utilities.js +3 -1
  10. package/dist/exports/utilities.js.map +1 -1
  11. package/dist/next-fileupload/handlers.js.map +1 -1
  12. package/dist/next-fileupload/isEligibleRequest.js +1 -1
  13. package/dist/next-fileupload/isEligibleRequest.js.map +1 -1
  14. package/dist/next-fileupload/processMultipart.d.ts.map +1 -1
  15. package/dist/next-fileupload/processMultipart.js +29 -6
  16. package/dist/next-fileupload/processMultipart.js.map +1 -1
  17. package/dist/next-fileupload/utilities.d.ts.map +1 -1
  18. package/dist/next-fileupload/utilities.js +4 -4
  19. package/dist/next-fileupload/utilities.js.map +1 -1
  20. package/dist/routes/graphql/handler.d.ts.map +1 -1
  21. package/dist/routes/graphql/handler.js +9 -4
  22. package/dist/routes/graphql/handler.js.map +1 -1
  23. package/dist/routes/rest/auth/access.d.ts.map +1 -1
  24. package/dist/routes/rest/auth/access.js +5 -0
  25. package/dist/routes/rest/auth/access.js.map +1 -1
  26. package/dist/routes/rest/auth/forgotPassword.d.ts.map +1 -1
  27. package/dist/routes/rest/auth/forgotPassword.js +7 -2
  28. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  29. package/dist/routes/rest/auth/init.d.ts.map +1 -1
  30. package/dist/routes/rest/auth/init.js +6 -0
  31. package/dist/routes/rest/auth/init.js.map +1 -1
  32. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  33. package/dist/routes/rest/auth/login.js +8 -5
  34. package/dist/routes/rest/auth/login.js.map +1 -1
  35. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  36. package/dist/routes/rest/auth/logout.js +11 -6
  37. package/dist/routes/rest/auth/logout.js.map +1 -1
  38. package/dist/routes/rest/auth/me.d.ts.map +1 -1
  39. package/dist/routes/rest/auth/me.js +5 -0
  40. package/dist/routes/rest/auth/me.js.map +1 -1
  41. package/dist/routes/rest/auth/refresh.d.ts.map +1 -1
  42. package/dist/routes/rest/auth/refresh.js +11 -7
  43. package/dist/routes/rest/auth/refresh.js.map +1 -1
  44. package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
  45. package/dist/routes/rest/auth/registerFirstUser.js +17 -5
  46. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  47. package/dist/routes/rest/auth/resetPassword.d.ts.map +1 -1
  48. package/dist/routes/rest/auth/resetPassword.js +8 -5
  49. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  50. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  51. package/dist/routes/rest/auth/unlock.js +7 -2
  52. package/dist/routes/rest/auth/unlock.js.map +1 -1
  53. package/dist/routes/rest/auth/verifyEmail.d.ts.map +1 -1
  54. package/dist/routes/rest/auth/verifyEmail.js +7 -2
  55. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  56. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  57. package/dist/routes/rest/buildFormState.js +11 -0
  58. package/dist/routes/rest/buildFormState.js.map +1 -1
  59. package/dist/routes/rest/collections/count.d.ts +3 -0
  60. package/dist/routes/rest/collections/count.d.ts.map +1 -0
  61. package/dist/routes/rest/collections/count.js +15 -0
  62. package/dist/routes/rest/collections/count.js.map +1 -0
  63. package/dist/routes/rest/collections/create.d.ts.map +1 -1
  64. package/dist/routes/rest/collections/create.js +5 -0
  65. package/dist/routes/rest/collections/create.js.map +1 -1
  66. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  67. package/dist/routes/rest/collections/delete.js +7 -0
  68. package/dist/routes/rest/collections/delete.js.map +1 -1
  69. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  70. package/dist/routes/rest/collections/deleteByID.js +7 -0
  71. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  72. package/dist/routes/rest/collections/docAccess.d.ts.map +1 -1
  73. package/dist/routes/rest/collections/docAccess.js +5 -0
  74. package/dist/routes/rest/collections/docAccess.js.map +1 -1
  75. package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
  76. package/dist/routes/rest/collections/duplicate.js +5 -0
  77. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  78. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  79. package/dist/routes/rest/collections/find.js +5 -0
  80. package/dist/routes/rest/collections/find.js.map +1 -1
  81. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  82. package/dist/routes/rest/collections/findByID.js +5 -0
  83. package/dist/routes/rest/collections/findByID.js.map +1 -1
  84. package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
  85. package/dist/routes/rest/collections/findVersionByID.js +5 -0
  86. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  87. package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
  88. package/dist/routes/rest/collections/findVersions.js +5 -0
  89. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  90. package/dist/routes/rest/collections/preview.d.ts.map +1 -1
  91. package/dist/routes/rest/collections/preview.js +7 -1
  92. package/dist/routes/rest/collections/preview.js.map +1 -1
  93. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  94. package/dist/routes/rest/collections/restoreVersion.js +5 -0
  95. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  96. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  97. package/dist/routes/rest/collections/update.js +7 -0
  98. package/dist/routes/rest/collections/update.js.map +1 -1
  99. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  100. package/dist/routes/rest/collections/updateByID.js +5 -0
  101. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  102. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  103. package/dist/routes/rest/files/getFile.js +15 -8
  104. package/dist/routes/rest/files/getFile.js.map +1 -1
  105. package/dist/routes/rest/files/getFileTypeFallback.d.ts +7 -0
  106. package/dist/routes/rest/files/getFileTypeFallback.d.ts.map +1 -0
  107. package/dist/routes/rest/files/getFileTypeFallback.js +21 -0
  108. package/dist/routes/rest/files/getFileTypeFallback.js.map +1 -0
  109. package/dist/routes/rest/globals/docAccess.d.ts.map +1 -1
  110. package/dist/routes/rest/globals/docAccess.js +5 -0
  111. package/dist/routes/rest/globals/docAccess.js.map +1 -1
  112. package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
  113. package/dist/routes/rest/globals/findOne.js +5 -0
  114. package/dist/routes/rest/globals/findOne.js.map +1 -1
  115. package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
  116. package/dist/routes/rest/globals/findVersionByID.js +5 -0
  117. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  118. package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
  119. package/dist/routes/rest/globals/findVersions.js +5 -0
  120. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  121. package/dist/routes/rest/globals/preview.d.ts.map +1 -1
  122. package/dist/routes/rest/globals/preview.js +7 -1
  123. package/dist/routes/rest/globals/preview.js.map +1 -1
  124. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  125. package/dist/routes/rest/globals/restoreVersion.js +5 -0
  126. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  127. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  128. package/dist/routes/rest/globals/update.js +5 -0
  129. package/dist/routes/rest/globals/update.js.map +1 -1
  130. package/dist/routes/rest/index.d.ts +1 -0
  131. package/dist/routes/rest/index.d.ts.map +1 -1
  132. package/dist/routes/rest/index.js +55 -9
  133. package/dist/routes/rest/index.js.map +1 -1
  134. package/dist/routes/rest/routeError.d.ts +5 -4
  135. package/dist/routes/rest/routeError.d.ts.map +1 -1
  136. package/dist/routes/rest/routeError.js +25 -11
  137. package/dist/routes/rest/routeError.js.map +1 -1
  138. package/dist/utilities/getDataAndFile.d.ts.map +1 -1
  139. package/dist/utilities/getDataAndFile.js +26 -46
  140. package/dist/utilities/getDataAndFile.js.map +1 -1
  141. package/dist/utilities/getPayloadHMR.d.ts +2 -1
  142. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  143. package/dist/utilities/getPayloadHMR.js +22 -19
  144. package/dist/utilities/getPayloadHMR.js.map +1 -1
  145. package/dist/utilities/headersWithCors.d.ts +8 -0
  146. package/dist/utilities/headersWithCors.d.ts.map +1 -0
  147. package/dist/utilities/headersWithCors.js +17 -0
  148. package/dist/utilities/headersWithCors.js.map +1 -0
  149. package/dist/utilities/initPage.d.ts.map +1 -1
  150. package/dist/utilities/initPage.js +15 -2
  151. package/dist/utilities/initPage.js.map +1 -1
  152. package/dist/views/CreateFirstUser/index.client.js +2 -2
  153. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  154. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  155. package/dist/views/CreateFirstUser/index.js +17 -0
  156. package/dist/views/CreateFirstUser/index.js.map +1 -1
  157. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  158. package/dist/views/Edit/Default/index.js +3 -2
  159. package/dist/views/Edit/Default/index.js.map +1 -1
  160. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts +3 -0
  161. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -0
  162. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +55 -0
  163. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -0
  164. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  165. package/dist/views/ForgotPassword/index.js +3 -39
  166. package/dist/views/ForgotPassword/index.js.map +1 -1
  167. package/dist/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  168. package/dist/views/LivePreview/Toolbar/Controls/index.js +6 -4
  169. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  170. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  171. package/dist/views/Login/LoginForm/index.js +26 -2
  172. package/dist/views/Login/LoginForm/index.js.map +1 -1
  173. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  174. package/dist/views/Logout/LogoutClient.js +1 -2
  175. package/dist/views/Logout/LogoutClient.js.map +1 -1
  176. package/dist/withPayload.d.ts.map +1 -1
  177. package/dist/withPayload.js +2 -1
  178. package/dist/withPayload.js.map +1 -1
  179. package/package.json +11 -9
  180. package/src/index.js +0 -1
@@ -7,6 +7,14 @@ import { createLocalReq, isEntityHidden } from 'payload/utilities';
7
7
  import qs from 'qs';
8
8
  import { getPayloadHMR } from '../utilities/getPayloadHMR.js';
9
9
  import { getRequestLanguage } from './getRequestLanguage.js';
10
+ const authRoutes = [
11
+ '/login',
12
+ '/logout',
13
+ '/create-first-user',
14
+ '/forgot',
15
+ '/reset',
16
+ '/verify'
17
+ ];
10
18
  export const initPage = async ({ config: configPromise, redirectUnauthenticatedUser = false, route, searchParams })=>{
11
19
  const headers = getHeaders();
12
20
  const localeParam = searchParams?.locale;
@@ -58,16 +66,21 @@ export const initPage = async ({ config: configPromise, redirectUnauthenticatedU
58
66
  user
59
67
  }) ? slug : null).filter(Boolean)
60
68
  };
61
- const routeSegments = route.replace(payload.config.routes.admin, '').split('/').filter(Boolean);
69
+ const { routes: { admin: adminRoute } } = payload.config;
70
+ const routeSegments = route.replace(adminRoute, '').split('/').filter(Boolean);
62
71
  const [entityType, entitySlug, createOrID] = routeSegments;
63
72
  const collectionSlug = entityType === 'collections' ? entitySlug : undefined;
64
73
  const globalSlug = entityType === 'globals' ? entitySlug : undefined;
65
74
  const docID = collectionSlug && createOrID !== 'create' ? createOrID : undefined;
66
- if (redirectUnauthenticatedUser && !user && route !== '/login') {
75
+ const isAuthRoute = authRoutes.some((r)=>r === route.replace(adminRoute, ''));
76
+ if (redirectUnauthenticatedUser && !user && !isAuthRoute) {
67
77
  if (searchParams && 'redirect' in searchParams) delete searchParams.redirect;
68
78
  const stringifiedSearchParams = Object.keys(searchParams ?? {}).length ? `?${qs.stringify(searchParams)}` : '';
69
79
  redirect(`${routes.admin}/login?redirect=${route + stringifiedSearchParams}`);
70
80
  }
81
+ if (!permissions.canAccessAdmin && !isAuthRoute) {
82
+ notFound();
83
+ }
71
84
  let collectionConfig;
72
85
  let globalConfig;
73
86
  if (collectionSlug) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/initPage.ts"],"sourcesContent":["import type {\n InitPageResult,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n VisibleEntities,\n} from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { findLocaleFromCode } from '@payloadcms/ui/utilities/findLocaleFromCode'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { parseCookies } from 'payload/auth'\nimport { createLocalReq, isEntityHidden } from 'payload/utilities'\nimport qs from 'qs'\n\nimport { getPayloadHMR } from '../utilities/getPayloadHMR.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\ntype Args = {\n config: Promise<SanitizedConfig> | SanitizedConfig\n redirectUnauthenticatedUser?: boolean\n route: string\n searchParams: { [key: string]: string | string[] | undefined }\n}\n\nexport const initPage = async ({\n config: configPromise,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const localeParam = searchParams?.locale as string\n const payload = await getPayloadHMR({ config: configPromise })\n const { collections, globals, localization, routes } = payload.config\n\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n const localeCode = localeParam || defaultLocale\n const locale = localization && findLocaleFromCode(localization, localeCode)\n const cookies = parseCookies(headers)\n const language = getRequestLanguage({ config: payload.config, cookies, headers })\n\n const i18n = await initI18n({\n config: payload.config.i18n,\n context: 'client',\n language,\n })\n\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n locale: locale.code,\n req: {\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n\n req.user = user\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const routeSegments = route.replace(payload.config.routes.admin, '').split('/').filter(Boolean)\n const [entityType, entitySlug, createOrID] = routeSegments\n const collectionSlug = entityType === 'collections' ? entitySlug : undefined\n const globalSlug = entityType === 'globals' ? entitySlug : undefined\n const docID = collectionSlug && createOrID !== 'create' ? createOrID : undefined\n\n if (redirectUnauthenticatedUser && !user && route !== '/login') {\n if (searchParams && 'redirect' in searchParams) delete searchParams.redirect\n\n const stringifiedSearchParams = Object.keys(searchParams ?? {}).length\n ? `?${qs.stringify(searchParams)}`\n : ''\n\n redirect(`${routes.admin}/login?redirect=${route + stringifiedSearchParams}`)\n }\n\n let collectionConfig: SanitizedCollectionConfig\n let globalConfig: SanitizedGlobalConfig\n\n if (collectionSlug) {\n collectionConfig = collections.find((collection) => collection.slug === collectionSlug)\n\n if (!collectionConfig) {\n notFound()\n }\n }\n\n if (globalSlug) {\n globalConfig = globals.find((global) => global.slug === globalSlug)\n\n if (!globalConfig) {\n notFound()\n }\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"names":["initI18n","findLocaleFromCode","headers","getHeaders","notFound","redirect","parseCookies","createLocalReq","isEntityHidden","qs","getPayloadHMR","getRequestLanguage","initPage","config","configPromise","redirectUnauthenticatedUser","route","searchParams","localeParam","locale","payload","collections","globals","localization","routes","queryString","stringify","addQueryPrefix","defaultLocale","localeCode","cookies","language","i18n","context","req","fallbackLocale","code","query","parse","depth","ignoreQueryPrefix","url","serverURL","permissions","user","auth","visibleEntities","map","slug","admin","hidden","filter","Boolean","routeSegments","replace","split","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","docID","stringifiedSearchParams","Object","keys","length","collectionConfig","globalConfig","find","collection","global","translations"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/initPage.ts"],"sourcesContent":["import type {\n InitPageResult,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n VisibleEntities,\n} from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { findLocaleFromCode } from '@payloadcms/ui/utilities/findLocaleFromCode'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { parseCookies } from 'payload/auth'\nimport { createLocalReq, isEntityHidden } from 'payload/utilities'\nimport qs from 'qs'\n\nimport { getPayloadHMR } from '../utilities/getPayloadHMR.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\ntype Args = {\n config: Promise<SanitizedConfig> | SanitizedConfig\n redirectUnauthenticatedUser?: boolean\n route: string\n searchParams: { [key: string]: string | string[] | undefined }\n}\n\nconst authRoutes = ['/login', '/logout', '/create-first-user', '/forgot', '/reset', '/verify']\n\nexport const initPage = async ({\n config: configPromise,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const localeParam = searchParams?.locale as string\n const payload = await getPayloadHMR({ config: configPromise })\n const { collections, globals, localization, routes } = payload.config\n\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n const localeCode = localeParam || defaultLocale\n const locale = localization && findLocaleFromCode(localization, localeCode)\n const cookies = parseCookies(headers)\n const language = getRequestLanguage({ config: payload.config, cookies, headers })\n\n const i18n = await initI18n({\n config: payload.config.i18n,\n context: 'client',\n language,\n })\n\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n locale: locale.code,\n req: {\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n\n req.user = user\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const {\n routes: { admin: adminRoute },\n } = payload.config\n\n const routeSegments = route.replace(adminRoute, '').split('/').filter(Boolean)\n const [entityType, entitySlug, createOrID] = routeSegments\n const collectionSlug = entityType === 'collections' ? entitySlug : undefined\n const globalSlug = entityType === 'globals' ? entitySlug : undefined\n const docID = collectionSlug && createOrID !== 'create' ? createOrID : undefined\n\n const isAuthRoute = authRoutes.some((r) => r === route.replace(adminRoute, ''))\n\n if (redirectUnauthenticatedUser && !user && !isAuthRoute) {\n if (searchParams && 'redirect' in searchParams) delete searchParams.redirect\n\n const stringifiedSearchParams = Object.keys(searchParams ?? {}).length\n ? `?${qs.stringify(searchParams)}`\n : ''\n\n redirect(`${routes.admin}/login?redirect=${route + stringifiedSearchParams}`)\n }\n\n if (!permissions.canAccessAdmin && !isAuthRoute) {\n notFound()\n }\n\n let collectionConfig: SanitizedCollectionConfig\n let globalConfig: SanitizedGlobalConfig\n\n if (collectionSlug) {\n collectionConfig = collections.find((collection) => collection.slug === collectionSlug)\n\n if (!collectionConfig) {\n notFound()\n }\n }\n\n if (globalSlug) {\n globalConfig = globals.find((global) => global.slug === globalSlug)\n\n if (!globalConfig) {\n notFound()\n }\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"names":["initI18n","findLocaleFromCode","headers","getHeaders","notFound","redirect","parseCookies","createLocalReq","isEntityHidden","qs","getPayloadHMR","getRequestLanguage","authRoutes","initPage","config","configPromise","redirectUnauthenticatedUser","route","searchParams","localeParam","locale","payload","collections","globals","localization","routes","queryString","stringify","addQueryPrefix","defaultLocale","localeCode","cookies","language","i18n","context","req","fallbackLocale","code","query","parse","depth","ignoreQueryPrefix","url","serverURL","permissions","user","auth","visibleEntities","map","slug","admin","hidden","filter","Boolean","adminRoute","routeSegments","replace","split","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","docID","isAuthRoute","some","r","stringifiedSearchParams","Object","keys","length","canAccessAdmin","collectionConfig","globalConfig","find","collection","global","translations"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -9,8 +9,8 @@ export const CreateFirstUserFields = ({ createFirstUserFieldMap, userSlug })=>{
9
9
  });
10
10
  return /*#__PURE__*/ React.createElement(RenderFields, {
11
11
  fieldMap: [
12
- ...fieldMap || [],
13
- ...createFirstUserFieldMap || []
12
+ ...createFirstUserFieldMap || [],
13
+ ...fieldMap || []
14
14
  ],
15
15
  operation: "create",
16
16
  path: "",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\n\nimport { RenderFields } from '@payloadcms/ui/forms/RenderFields'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport React from 'react'\n\nexport const CreateFirstUserFields: React.FC<{\n createFirstUserFieldMap: FieldMap\n userSlug: string\n}> = ({ createFirstUserFieldMap, userSlug }) => {\n const { getFieldMap } = useComponentMap()\n\n const fieldMap = getFieldMap({ collectionSlug: userSlug })\n\n return (\n <RenderFields\n fieldMap={[...(fieldMap || []), ...(createFirstUserFieldMap || [])]}\n operation=\"create\"\n path=\"\"\n readOnly={false}\n schemaPath={userSlug}\n />\n )\n}\n"],"names":["RenderFields","useComponentMap","React","CreateFirstUserFields","createFirstUserFieldMap","userSlug","getFieldMap","fieldMap","collectionSlug","operation","path","readOnly","schemaPath"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,SAASA,YAAY,QAAQ,oCAAmC;AAChE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,wBAGR,CAAC,EAAEC,uBAAuB,EAAEC,QAAQ,EAAE;IACzC,MAAM,EAAEC,WAAW,EAAE,GAAGL;IAExB,MAAMM,WAAWD,YAAY;QAAEE,gBAAgBH;IAAS;IAExD,qBACE,oBAACL;QACCO,UAAU;eAAKA,YAAY,EAAE;eAAOH,2BAA2B,EAAE;SAAE;QACnEK,WAAU;QACVC,MAAK;QACLC,UAAU;QACVC,YAAYP;;AAGlB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\n\nimport { RenderFields } from '@payloadcms/ui/forms/RenderFields'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport React from 'react'\n\nexport const CreateFirstUserFields: React.FC<{\n createFirstUserFieldMap: FieldMap\n userSlug: string\n}> = ({ createFirstUserFieldMap, userSlug }) => {\n const { getFieldMap } = useComponentMap()\n\n const fieldMap = getFieldMap({ collectionSlug: userSlug })\n\n return (\n <RenderFields\n fieldMap={[...(createFirstUserFieldMap || []), ...(fieldMap || [])]}\n operation=\"create\"\n path=\"\"\n readOnly={false}\n schemaPath={userSlug}\n />\n )\n}\n"],"names":["RenderFields","useComponentMap","React","CreateFirstUserFields","createFirstUserFieldMap","userSlug","getFieldMap","fieldMap","collectionSlug","operation","path","readOnly","schemaPath"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,SAASA,YAAY,QAAQ,oCAAmC;AAChE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,wBAGR,CAAC,EAAEC,uBAAuB,EAAEC,QAAQ,EAAE;IACzC,MAAM,EAAEC,WAAW,EAAE,GAAGL;IAExB,MAAMM,WAAWD,YAAY;QAAEE,gBAAgBH;IAAS;IAExD,qBACE,oBAACL;QACCO,UAAU;eAAKH,2BAA2B,EAAE;eAAOG,YAAY,EAAE;SAAE;QACnEE,WAAU;QACVC,MAAK;QACLC,UAAU;QACVC,YAAYP;;AAGlB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAOnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAA;AAE3D,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4ExD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAOnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAA;AAE3D,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA+FxD,CAAA"}
@@ -41,6 +41,23 @@ export const CreateFirstUserView = async ({ initPageResult })=>{
41
41
  fieldSchema: fields,
42
42
  i18n,
43
43
  parentPath: userSlug
44
+ }).map((field)=>{
45
+ // Transform field types for the password and confirm-password fields
46
+ if (field.name === 'password') {
47
+ const type = 'password';
48
+ return {
49
+ ...field,
50
+ type
51
+ };
52
+ }
53
+ if (field.name === 'confirm-password') {
54
+ const type = 'confirmPassword';
55
+ return {
56
+ ...field,
57
+ type
58
+ };
59
+ }
60
+ return field;
44
61
  });
45
62
  const formState = await buildStateFromSchema({
46
63
  fieldSchema: fields,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/CreateFirstUser/index.tsx"],"sourcesContent":["import type { Field, WithServerSideProps as WithServerSidePropsType } from 'payload/types'\nimport type { AdminViewProps } from 'payload/types'\n\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport { WithServerSideProps as WithServerSidePropsGeneric } from '@payloadcms/ui/providers/ComponentMap'\nimport { mapFields } from '@payloadcms/ui/utilities/buildComponentMap'\nimport React from 'react'\n\nimport { CreateFirstUserFields } from './index.client.js'\nimport './index.scss'\n\nexport { generateCreateFirstUserMetadata } from './meta.js'\n\nexport const CreateFirstUserView: React.FC<AdminViewProps> = async ({ initPageResult }) => {\n const {\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n },\n } = initPageResult\n\n const fields: Field[] = [\n {\n name: 'email',\n type: 'email',\n label: req.t('general:emailAddress'),\n required: true,\n },\n {\n name: 'password',\n type: 'text',\n label: req.t('general:password'),\n required: true,\n },\n {\n name: 'confirm-password',\n type: 'text',\n label: req.t('authentication:confirmPassword'),\n required: true,\n },\n ]\n\n const WithServerSideProps: WithServerSidePropsType = ({ Component, ...rest }) => {\n return <WithServerSidePropsGeneric Component={Component} payload={payload} {...rest} />\n }\n\n const createFirstUserFieldMap = mapFields({\n WithServerSideProps,\n config,\n fieldSchema: fields,\n i18n,\n parentPath: userSlug,\n })\n\n const formState = await buildStateFromSchema({\n fieldSchema: fields,\n operation: 'create',\n preferences: {},\n req,\n })\n\n return (\n <React.Fragment>\n <h1>{req.t('general:welcome')}</h1>\n <p>{req.t('authentication:beginCreateFirstUser')}</p>\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={formState}\n method=\"POST\"\n redirect={adminRoute}\n validationOperation=\"create\"\n >\n <CreateFirstUserFields\n createFirstUserFieldMap={createFirstUserFieldMap}\n userSlug={userSlug}\n />\n <FormSubmit>{req.t('general:create')}</FormSubmit>\n </Form>\n </React.Fragment>\n )\n}\n"],"names":["Form","FormSubmit","buildStateFromSchema","WithServerSideProps","WithServerSidePropsGeneric","mapFields","React","CreateFirstUserFields","generateCreateFirstUserMetadata","CreateFirstUserView","initPageResult","req","i18n","payload","config","admin","user","userSlug","routes","adminRoute","api","apiRoute","serverURL","fields","name","type","label","t","required","Component","rest","createFirstUserFieldMap","fieldSchema","parentPath","formState","operation","preferences","Fragment","h1","p","action","initialState","method","redirect","validationOperation"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,oBAAoB,QAAQ,4CAA2C;AAChF,SAASC,uBAAuBC,0BAA0B,QAAQ,wCAAuC;AACzG,SAASC,SAAS,QAAQ,6CAA4C;AACtE,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,oBAAmB;AAGzD,SAASC,+BAA+B,QAAQ,YAAW;AAE3D,OAAO,MAAMC,sBAAgD,OAAO,EAAEC,cAAc,EAAE;IACpF,MAAM,EACJC,GAAG,EACHA,KAAK,EACHC,IAAI,EACJC,OAAO,EACPA,SAAS,EACPC,MAAM,EACNA,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEH,OAAOI,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC5CC,SAAS,EACV,EACF,EACF,EACF,GAAGZ;IAEJ,MAAMa,SAAkB;QACtB;YACEC,MAAM;YACNC,MAAM;YACNC,OAAOf,IAAIgB,CAAC,CAAC;YACbC,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAOf,IAAIgB,CAAC,CAAC;YACbC,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAOf,IAAIgB,CAAC,CAAC;YACbC,UAAU;QACZ;KACD;IAED,MAAMzB,sBAA+C,CAAC,EAAE0B,SAAS,EAAE,GAAGC,MAAM;QAC1E,qBAAO,oBAAC1B;YAA2ByB,WAAWA;YAAWhB,SAASA;YAAU,GAAGiB,IAAI;;IACrF;IAEA,MAAMC,0BAA0B1B,UAAU;QACxCF;QACAW;QACAkB,aAAaT;QACbX;QACAqB,YAAYhB;IACd;IAEA,MAAMiB,YAAY,MAAMhC,qBAAqB;QAC3C8B,aAAaT;QACbY,WAAW;QACXC,aAAa,CAAC;QACdzB;IACF;IAEA,qBACE,oBAACL,MAAM+B,QAAQ,sBACb,oBAACC,YAAI3B,IAAIgB,CAAC,CAAC,mCACX,oBAACY,WAAG5B,IAAIgB,CAAC,CAAC,uDACV,oBAAC3B;QACCwC,QAAQ,CAAC,EAAElB,UAAU,EAAED,SAAS,CAAC,EAAEJ,SAAS,eAAe,CAAC;QAC5DwB,cAAcP;QACdQ,QAAO;QACPC,UAAUxB;QACVyB,qBAAoB;qBAEpB,oBAACrC;QACCwB,yBAAyBA;QACzBd,UAAUA;sBAEZ,oBAAChB,kBAAYU,IAAIgB,CAAC,CAAC;AAI3B,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/CreateFirstUser/index.tsx"],"sourcesContent":["import type { FieldTypes } from 'payload/config'\nimport type { Field, WithServerSideProps as WithServerSidePropsType } from 'payload/types'\nimport type { AdminViewProps } from 'payload/types'\n\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport { WithServerSideProps as WithServerSidePropsGeneric } from '@payloadcms/ui/providers/ComponentMap'\nimport { mapFields } from '@payloadcms/ui/utilities/buildComponentMap'\nimport React from 'react'\n\nimport { CreateFirstUserFields } from './index.client.js'\nimport './index.scss'\n\nexport { generateCreateFirstUserMetadata } from './meta.js'\n\nexport const CreateFirstUserView: React.FC<AdminViewProps> = async ({ initPageResult }) => {\n const {\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n },\n } = initPageResult\n\n const fields: Field[] = [\n {\n name: 'email',\n type: 'email',\n label: req.t('general:emailAddress'),\n required: true,\n },\n {\n name: 'password',\n type: 'text',\n label: req.t('general:password'),\n required: true,\n },\n {\n name: 'confirm-password',\n type: 'text',\n label: req.t('authentication:confirmPassword'),\n required: true,\n },\n ]\n\n const WithServerSideProps: WithServerSidePropsType = ({ Component, ...rest }) => {\n return <WithServerSidePropsGeneric Component={Component} payload={payload} {...rest} />\n }\n\n const createFirstUserFieldMap = mapFields({\n WithServerSideProps,\n config,\n fieldSchema: fields,\n i18n,\n parentPath: userSlug,\n }).map((field) => {\n // Transform field types for the password and confirm-password fields\n if (field.name === 'password') {\n const type: keyof FieldTypes = 'password'\n\n return {\n ...field,\n type,\n }\n }\n if (field.name === 'confirm-password') {\n const type: keyof FieldTypes = 'confirmPassword'\n\n return {\n ...field,\n type,\n }\n }\n return field\n })\n\n const formState = await buildStateFromSchema({\n fieldSchema: fields,\n operation: 'create',\n preferences: {},\n req,\n })\n\n return (\n <React.Fragment>\n <h1>{req.t('general:welcome')}</h1>\n <p>{req.t('authentication:beginCreateFirstUser')}</p>\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={formState}\n method=\"POST\"\n redirect={adminRoute}\n validationOperation=\"create\"\n >\n <CreateFirstUserFields\n createFirstUserFieldMap={createFirstUserFieldMap}\n userSlug={userSlug}\n />\n <FormSubmit>{req.t('general:create')}</FormSubmit>\n </Form>\n </React.Fragment>\n )\n}\n"],"names":["Form","FormSubmit","buildStateFromSchema","WithServerSideProps","WithServerSidePropsGeneric","mapFields","React","CreateFirstUserFields","generateCreateFirstUserMetadata","CreateFirstUserView","initPageResult","req","i18n","payload","config","admin","user","userSlug","routes","adminRoute","api","apiRoute","serverURL","fields","name","type","label","t","required","Component","rest","createFirstUserFieldMap","fieldSchema","parentPath","map","field","formState","operation","preferences","Fragment","h1","p","action","initialState","method","redirect","validationOperation"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,oBAAoB,QAAQ,4CAA2C;AAChF,SAASC,uBAAuBC,0BAA0B,QAAQ,wCAAuC;AACzG,SAASC,SAAS,QAAQ,6CAA4C;AACtE,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,oBAAmB;AAGzD,SAASC,+BAA+B,QAAQ,YAAW;AAE3D,OAAO,MAAMC,sBAAgD,OAAO,EAAEC,cAAc,EAAE;IACpF,MAAM,EACJC,GAAG,EACHA,KAAK,EACHC,IAAI,EACJC,OAAO,EACPA,SAAS,EACPC,MAAM,EACNA,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEH,OAAOI,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC5CC,SAAS,EACV,EACF,EACF,EACF,GAAGZ;IAEJ,MAAMa,SAAkB;QACtB;YACEC,MAAM;YACNC,MAAM;YACNC,OAAOf,IAAIgB,CAAC,CAAC;YACbC,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAOf,IAAIgB,CAAC,CAAC;YACbC,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAOf,IAAIgB,CAAC,CAAC;YACbC,UAAU;QACZ;KACD;IAED,MAAMzB,sBAA+C,CAAC,EAAE0B,SAAS,EAAE,GAAGC,MAAM;QAC1E,qBAAO,oBAAC1B;YAA2ByB,WAAWA;YAAWhB,SAASA;YAAU,GAAGiB,IAAI;;IACrF;IAEA,MAAMC,0BAA0B1B,UAAU;QACxCF;QACAW;QACAkB,aAAaT;QACbX;QACAqB,YAAYhB;IACd,GAAGiB,GAAG,CAAC,CAACC;QACN,qEAAqE;QACrE,IAAIA,MAAMX,IAAI,KAAK,YAAY;YAC7B,MAAMC,OAAyB;YAE/B,OAAO;gBACL,GAAGU,KAAK;gBACRV;YACF;QACF;QACA,IAAIU,MAAMX,IAAI,KAAK,oBAAoB;YACrC,MAAMC,OAAyB;YAE/B,OAAO;gBACL,GAAGU,KAAK;gBACRV;YACF;QACF;QACA,OAAOU;IACT;IAEA,MAAMC,YAAY,MAAMlC,qBAAqB;QAC3C8B,aAAaT;QACbc,WAAW;QACXC,aAAa,CAAC;QACd3B;IACF;IAEA,qBACE,oBAACL,MAAMiC,QAAQ,sBACb,oBAACC,YAAI7B,IAAIgB,CAAC,CAAC,mCACX,oBAACc,WAAG9B,IAAIgB,CAAC,CAAC,uDACV,oBAAC3B;QACC0C,QAAQ,CAAC,EAAEpB,UAAU,EAAED,SAAS,CAAC,EAAEJ,SAAS,eAAe,CAAC;QAC5D0B,cAAcP;QACdQ,QAAO;QACPC,UAAU1B;QACV2B,qBAAoB;qBAEpB,oBAACvC;QACCwB,yBAAyBA;QACzBd,UAAUA;sBAEZ,oBAAChB,kBAAYU,IAAIgB,CAAC,CAAC;AAI3B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAOpD,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA0OnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAMpD,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA4OnC,CAAA"}
@@ -12,12 +12,12 @@ import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo';
12
12
  import { useEditDepth } from '@payloadcms/ui/providers/EditDepth';
13
13
  import { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams';
14
14
  import { OperationProvider } from '@payloadcms/ui/providers/Operation';
15
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
15
16
  import { getFormState } from '@payloadcms/ui/utilities/getFormState';
16
17
  import { useRouter } from 'next/navigation.js';
17
18
  import { useSearchParams } from 'next/navigation.js';
18
19
  import React, { Fragment, useCallback } from 'react';
19
20
  import { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js';
20
- // import { getTranslation } from '@payloadcms/translations'
21
21
  import { Auth } from './Auth/index.js';
22
22
  import { SetDocumentStepNav } from './SetDocumentStepNav/index.js';
23
23
  import { SetDocumentTitle } from './SetDocumentTitle/index.js';
@@ -35,6 +35,7 @@ export const DefaultEditView = ()=>{
35
35
  const params = useSearchParams();
36
36
  const depth = useEditDepth();
37
37
  const { reportUpdate } = useDocumentEvents();
38
+ const { i18n } = useTranslation();
38
39
  const { admin: { user: userSlug }, collections, globals, routes: { admin: adminRoute, api: apiRoute }, serverURL } = config;
39
40
  const locale = params.get('locale');
40
41
  const collectionConfig = collectionSlug && collections.find((collection)=>collection.slug === collectionSlug);
@@ -145,7 +146,7 @@ export const DefaultEditView = ()=>{
145
146
  action: operation,
146
147
  // formIsLoading={isLoading}
147
148
  // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}
148
- name: `collection-edit--${typeof collectionConfig?.labels?.singular === 'string' ? collectionConfig.labels.singular : 'document'}`,
149
+ name: `collection-edit--${typeof collectionConfig?.labels?.singular === 'string' ? collectionConfig.labels.singular : i18n.t('general:document')}`,
149
150
  type: "withoutNav"
150
151
  }), BeforeDocument, preventLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(SetDocumentStepNav, {
151
152
  collectionSlug: collectionConfig?.slug,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Upload } from '@payloadcms/ui/elements/Upload'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport { useRouter } from 'next/navigation.js'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\n// import { getTranslation } from '@payloadcms/translations'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = id ? 'update' : 'create'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n void getDocPermissions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n getDocPermissions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n <FormLoadingOverlayToggle\n action={operation}\n // formIsLoading={isLoading}\n // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}\n name={`collection-edit--${\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : 'document'\n }`}\n type=\"withoutNav\"\n />\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","FormLoadingOverlayToggle","Upload","Form","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","OperationProvider","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPermissions","getDocPreferences","getVersions","globalSlug","hasSavePermission","initialData","data","initialState","isEditing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","name","labels","singular","pluralLabel","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Upload } from '@payloadcms/ui/elements/Upload'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport { useRouter } from 'next/navigation.js'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const { i18n } = useTranslation()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = id ? 'update' : 'create'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n void getDocPermissions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n getDocPermissions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n <FormLoadingOverlayToggle\n action={operation}\n // formIsLoading={isLoading}\n // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}\n name={`collection-edit--${\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : i18n.t('general:document')\n }`}\n type=\"withoutNav\"\n />\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","FormLoadingOverlayToggle","Upload","Form","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","OperationProvider","useTranslation","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPermissions","getDocPreferences","getVersions","globalSlug","hasSavePermission","initialData","data","initialState","isEditing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","i18n","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","name","labels","singular","t","pluralLabel","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const ForgotPasswordForm: React.FC;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/ForgotPassword/ForgotPasswordForm/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAGjD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAmEtC,CAAA"}
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+ import { Email } from '@payloadcms/ui/fields/Email';
3
+ import { Form } from '@payloadcms/ui/forms/Form';
4
+ import { FormSubmit } from '@payloadcms/ui/forms/Submit';
5
+ import { useConfig } from '@payloadcms/ui/providers/Config';
6
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
7
+ import { email } from 'payload/fields/validations';
8
+ import React, { Fragment, useState } from 'react';
9
+ import { toast } from 'react-toastify';
10
+ export const ForgotPasswordForm = ()=>{
11
+ const config = useConfig();
12
+ const { admin: { user: userSlug }, routes: { api } } = config;
13
+ const { t } = useTranslation();
14
+ const [hasSubmitted, setHasSubmitted] = useState(false);
15
+ const handleResponse = (res)=>{
16
+ res.json().then(()=>{
17
+ setHasSubmitted(true);
18
+ }, ()=>{
19
+ toast.error(t('authentication:emailNotValid'));
20
+ });
21
+ };
22
+ const initialState = {
23
+ email: {
24
+ initialValue: '',
25
+ valid: true,
26
+ value: undefined
27
+ }
28
+ };
29
+ if (hasSubmitted) {
30
+ return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement("h1", null, t('authentication:emailSent')), /*#__PURE__*/ React.createElement("p", null, t('authentication:checkYourEmailForPasswordReset')));
31
+ }
32
+ return /*#__PURE__*/ React.createElement(Form, {
33
+ action: `${api}/${userSlug}/forgot-password`,
34
+ handleResponse: handleResponse,
35
+ initialState: initialState,
36
+ method: "POST"
37
+ }, /*#__PURE__*/ React.createElement("h1", null, t('authentication:forgotPassword')), /*#__PURE__*/ React.createElement("p", null, t('authentication:forgotPasswordEmailInstructions')), /*#__PURE__*/ React.createElement(Email, {
38
+ autoComplete: "email",
39
+ label: t('general:email'),
40
+ name: "email",
41
+ required: true,
42
+ validate: (value)=>email(value, {
43
+ name: 'email',
44
+ type: 'email',
45
+ data: {},
46
+ req: {
47
+ t
48
+ },
49
+ required: true,
50
+ siblingData: {}
51
+ })
52
+ }), /*#__PURE__*/ React.createElement(FormSubmit, null, t('general:submit')));
53
+ };
54
+
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/views/ForgotPassword/ForgotPasswordForm/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormState, PayloadRequest } from 'payload/types'\n\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { email } from 'payload/fields/validations'\nimport React, { Fragment, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nexport const ForgotPasswordForm: React.FC = () => {\n const config = useConfig()\n\n const {\n admin: { user: userSlug },\n routes: { api },\n } = config\n\n const { t } = useTranslation()\n const [hasSubmitted, setHasSubmitted] = useState(false)\n\n const handleResponse = (res) => {\n res.json().then(\n () => {\n setHasSubmitted(true)\n },\n () => {\n toast.error(t('authentication:emailNotValid'))\n },\n )\n }\n\n const initialState: FormState = {\n email: {\n initialValue: '',\n valid: true,\n value: undefined,\n },\n }\n\n if (hasSubmitted) {\n return (\n <Fragment>\n <h1>{t('authentication:emailSent')}</h1>\n <p>{t('authentication:checkYourEmailForPasswordReset')}</p>\n </Fragment>\n )\n }\n\n return (\n <Form\n action={`${api}/${userSlug}/forgot-password`}\n handleResponse={handleResponse}\n initialState={initialState}\n method=\"POST\"\n >\n <h1>{t('authentication:forgotPassword')}</h1>\n <p>{t('authentication:forgotPasswordEmailInstructions')}</p>\n <Email\n autoComplete=\"email\"\n label={t('general:email')}\n name=\"email\"\n required\n validate={(value) =>\n email(value, {\n name: 'email',\n type: 'email',\n data: {},\n req: { t } as PayloadRequest,\n required: true,\n siblingData: {},\n })\n }\n />\n <FormSubmit>{t('general:submit')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["Email","Form","FormSubmit","useConfig","useTranslation","email","React","Fragment","useState","toast","ForgotPasswordForm","config","admin","user","userSlug","routes","api","t","hasSubmitted","setHasSubmitted","handleResponse","res","json","then","error","initialState","initialValue","valid","value","undefined","h1","p","action","method","autoComplete","label","name","required","validate","type","data","req","siblingData"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,KAAK,QAAQ,8BAA6B;AACnD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,QAAQ,6BAA4B;AAClD,OAAOC,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,QAAO;AACjD,SAASC,KAAK,QAAQ,iBAAgB;AAEtC,OAAO,MAAMC,qBAA+B;IAC1C,MAAMC,SAASR;IAEf,MAAM,EACJS,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEC,GAAG,EAAE,EAChB,GAAGL;IAEJ,MAAM,EAAEM,CAAC,EAAE,GAAGb;IACd,MAAM,CAACc,cAAcC,gBAAgB,GAAGX,SAAS;IAEjD,MAAMY,iBAAiB,CAACC;QACtBA,IAAIC,IAAI,GAAGC,IAAI,CACb;YACEJ,gBAAgB;QAClB,GACA;YACEV,MAAMe,KAAK,CAACP,EAAE;QAChB;IAEJ;IAEA,MAAMQ,eAA0B;QAC9BpB,OAAO;YACLqB,cAAc;YACdC,OAAO;YACPC,OAAOC;QACT;IACF;IAEA,IAAIX,cAAc;QAChB,qBACE,oBAACX,8BACC,oBAACuB,YAAIb,EAAE,4CACP,oBAACc,WAAGd,EAAE;IAGZ;IAEA,qBACE,oBAAChB;QACC+B,QAAQ,CAAC,EAAEhB,IAAI,CAAC,EAAEF,SAAS,gBAAgB,CAAC;QAC5CM,gBAAgBA;QAChBK,cAAcA;QACdQ,QAAO;qBAEP,oBAACH,YAAIb,EAAE,iDACP,oBAACc,WAAGd,EAAE,kEACN,oBAACjB;QACCkC,cAAa;QACbC,OAAOlB,EAAE;QACTmB,MAAK;QACLC,UAAAA;QACAC,UAAU,CAACV,QACTvB,MAAMuB,OAAO;gBACXQ,MAAM;gBACNG,MAAM;gBACNC,MAAM,CAAC;gBACPC,KAAK;oBAAExB;gBAAE;gBACToB,UAAU;gBACVK,aAAa,CAAC;YAChB;sBAGJ,oBAACxC,kBAAYe,EAAE;AAGrB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/ForgotPassword/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAQnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAA;AAG1D,eAAO,MAAM,uBAAuB,oBAAoB,CAAA;AAExD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8EvD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/ForgotPassword/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAKnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAA;AAG1D,eAAO,MAAM,uBAAuB,oBAAoB,CAAA;AAExD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAwCvD,CAAA"}
@@ -1,26 +1,14 @@
1
1
  import { Button } from '@payloadcms/ui/elements/Button';
2
2
  import { Translation } from '@payloadcms/ui/elements/Translation';
3
- import { Email } from '@payloadcms/ui/fields/Email';
4
- import { Form } from '@payloadcms/ui/forms/Form';
5
- import { FormSubmit } from '@payloadcms/ui/forms/Submit';
6
3
  import LinkImport from 'next/link.js';
7
4
  import React, { Fragment } from 'react';
5
+ import { ForgotPasswordForm } from './ForgotPasswordForm/index.js';
8
6
  export { generateForgotPasswordMetadata } from './meta.js';
9
7
  const Link = LinkImport.default || LinkImport;
10
8
  export const forgotPasswordBaseClass = 'forgot-password';
11
9
  export const ForgotPasswordView = ({ initPageResult })=>{
12
10
  const { req: { i18n, payload: { config }, user } } = initPageResult;
13
- const { admin: { user: userSlug }, routes: { admin, api }, serverURL } = config;
14
- // const handleResponse = (res) => {
15
- // res.json().then(
16
- // () => {
17
- // setHasSubmitted(true)
18
- // },
19
- // () => {
20
- // toast.error(i18n.t('authentication:emailNotValid'))
21
- // },
22
- // )
23
- // }
11
+ const { routes: { admin } } = config;
24
12
  if (user) {
25
13
  return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement("h1", null, i18n.t('authentication:alreadyLoggedIn')), /*#__PURE__*/ React.createElement("p", null, /*#__PURE__*/ React.createElement(Translation, {
26
14
  elements: {
@@ -37,31 +25,7 @@ export const ForgotPasswordView = ({ initPageResult })=>{
37
25
  to: admin
38
26
  }, i18n.t('general:backToDashboard')));
39
27
  }
40
- // if (hasSubmitted) {
41
- // return (
42
- // <Fragment>
43
- // <h1>{i18n.t('authentication:emailSent')}</h1>
44
- // <p>{i18n.t('authentication:checkYourEmailForPasswordReset')}</p>
45
- // </Fragment>
46
- // )
47
- // }
48
- return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement(Form, {
49
- action: `${serverURL}${api}/${userSlug}/forgot-password`,
50
- // handleResponse={handleResponse}
51
- initialState: {
52
- email: {
53
- initialValue: '',
54
- valid: false,
55
- value: undefined
56
- }
57
- },
58
- method: "POST"
59
- }, /*#__PURE__*/ React.createElement("h1", null, i18n.t('authentication:forgotPassword')), /*#__PURE__*/ React.createElement("p", null, i18n.t('authentication:forgotPasswordEmailInstructions')), /*#__PURE__*/ React.createElement(Email, {
60
- autoComplete: "email",
61
- label: i18n.t('general:emailAddress'),
62
- name: "email",
63
- required: true
64
- }), /*#__PURE__*/ React.createElement(FormSubmit, null, i18n.t('general:submit'))), /*#__PURE__*/ React.createElement(Link, {
28
+ return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement(ForgotPasswordForm, null), /*#__PURE__*/ React.createElement(Link, {
65
29
  href: `${admin}/login`
66
30
  }, i18n.t('authentication:backToLogin')));
67
31
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ForgotPassword/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload/types'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Translation } from '@payloadcms/ui/elements/Translation'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nexport { generateForgotPasswordMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\nexport const forgotPasswordBaseClass = 'forgot-password'\n\nexport const ForgotPasswordView: React.FC<AdminViewProps> = ({ initPageResult }) => {\n const {\n req: {\n i18n,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { user: userSlug },\n routes: { admin, api },\n serverURL,\n } = config\n\n // const handleResponse = (res) => {\n // res.json().then(\n // () => {\n // setHasSubmitted(true)\n // },\n // () => {\n // toast.error(i18n.t('authentication:emailNotValid'))\n // },\n // )\n // }\n\n if (user) {\n return (\n <Fragment>\n <h1>{i18n.t('authentication:alreadyLoggedIn')}</h1>\n <p>\n <Translation\n elements={{\n '0': ({ children }) => <Link href={`${admin}/account`}>{children}</Link>,\n }}\n i18nKey=\"authentication:loggedInChangePassword\"\n t={i18n.t}\n />\n </p>\n <br />\n <Button Link={Link} buttonStyle=\"secondary\" el=\"link\" to={admin}>\n {i18n.t('general:backToDashboard')}\n </Button>\n </Fragment>\n )\n }\n\n // if (hasSubmitted) {\n // return (\n // <Fragment>\n // <h1>{i18n.t('authentication:emailSent')}</h1>\n // <p>{i18n.t('authentication:checkYourEmailForPasswordReset')}</p>\n // </Fragment>\n // )\n // }\n\n return (\n <Fragment>\n <Form\n action={`${serverURL}${api}/${userSlug}/forgot-password`}\n // handleResponse={handleResponse}\n initialState={{\n email: {\n initialValue: '',\n valid: false,\n value: undefined,\n },\n }}\n method=\"POST\"\n >\n <h1>{i18n.t('authentication:forgotPassword')}</h1>\n <p>{i18n.t('authentication:forgotPasswordEmailInstructions')}</p>\n <Email autoComplete=\"email\" label={i18n.t('general:emailAddress')} name=\"email\" required />\n <FormSubmit>{i18n.t('general:submit')}</FormSubmit>\n </Form>\n <Link href={`${admin}/login`}>{i18n.t('authentication:backToLogin')}</Link>\n </Fragment>\n )\n}\n"],"names":["Button","Translation","Email","Form","FormSubmit","LinkImport","React","Fragment","generateForgotPasswordMetadata","Link","default","forgotPasswordBaseClass","ForgotPasswordView","initPageResult","req","i18n","payload","config","user","admin","userSlug","routes","api","serverURL","h1","t","p","elements","children","href","i18nKey","br","buttonStyle","el","to","action","initialState","email","initialValue","valid","value","undefined","method","autoComplete","label","name","required"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,MAAM,QAAQ,iCAAgC;AACvD,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,KAAK,QAAQ,8BAA6B;AACnD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,8BAA8B,QAAQ,YAAW;AAE1D,MAAMC,OAAQJ,WAAWK,OAAO,IAAIL;AACpC,OAAO,MAAMM,0BAA0B,kBAAiB;AAExD,OAAO,MAAMC,qBAA+C,CAAC,EAAEC,cAAc,EAAE;IAC7E,MAAM,EACJC,KAAK,EACHC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGL;IAEJ,MAAM,EACJM,OAAO,EAAED,MAAME,QAAQ,EAAE,EACzBC,QAAQ,EAAEF,KAAK,EAAEG,GAAG,EAAE,EACtBC,SAAS,EACV,GAAGN;IAEJ,oCAAoC;IACpC,qBAAqB;IACrB,cAAc;IACd,8BAA8B;IAC9B,SAAS;IACT,cAAc;IACd,4DAA4D;IAC5D,SAAS;IACT,MAAM;IACN,IAAI;IAEJ,IAAIC,MAAM;QACR,qBACE,oBAACX,8BACC,oBAACiB,YAAIT,KAAKU,CAAC,CAAC,kDACZ,oBAACC,yBACC,oBAACzB;YACC0B,UAAU;gBACR,KAAK,CAAC,EAAEC,QAAQ,EAAE,iBAAK,oBAACnB;wBAAKoB,MAAM,CAAC,EAAEV,MAAM,QAAQ,CAAC;uBAAGS;YAC1D;YACAE,SAAQ;YACRL,GAAGV,KAAKU,CAAC;2BAGb,oBAACM,2BACD,oBAAC/B;YAAOS,MAAMA;YAAMuB,aAAY;YAAYC,IAAG;YAAOC,IAAIf;WACvDJ,KAAKU,CAAC,CAAC;IAIhB;IAEA,sBAAsB;IACtB,aAAa;IACb,iBAAiB;IACjB,sDAAsD;IACtD,yEAAyE;IACzE,kBAAkB;IAClB,MAAM;IACN,IAAI;IAEJ,qBACE,oBAAClB,8BACC,oBAACJ;QACCgC,QAAQ,CAAC,EAAEZ,UAAU,EAAED,IAAI,CAAC,EAAEF,SAAS,gBAAgB,CAAC;QACxD,kCAAkC;QAClCgB,cAAc;YACZC,OAAO;gBACLC,cAAc;gBACdC,OAAO;gBACPC,OAAOC;YACT;QACF;QACAC,QAAO;qBAEP,oBAAClB,YAAIT,KAAKU,CAAC,CAAC,iDACZ,oBAACC,WAAGX,KAAKU,CAAC,CAAC,kEACX,oBAACvB;QAAMyC,cAAa;QAAQC,OAAO7B,KAAKU,CAAC,CAAC;QAAyBoB,MAAK;QAAQC,UAAAA;sBAChF,oBAAC1C,kBAAYW,KAAKU,CAAC,CAAC,mCAEtB,oBAAChB;QAAKoB,MAAM,CAAC,EAAEV,MAAM,MAAM,CAAC;OAAGJ,KAAKU,CAAC,CAAC;AAG5C,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/ForgotPassword/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload/types'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Translation } from '@payloadcms/ui/elements/Translation'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { ForgotPasswordForm } from './ForgotPasswordForm/index.js'\n\nexport { generateForgotPasswordMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\nexport const forgotPasswordBaseClass = 'forgot-password'\n\nexport const ForgotPasswordView: React.FC<AdminViewProps> = ({ initPageResult }) => {\n const {\n req: {\n i18n,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n routes: { admin },\n } = config\n\n if (user) {\n return (\n <Fragment>\n <h1>{i18n.t('authentication:alreadyLoggedIn')}</h1>\n <p>\n <Translation\n elements={{\n '0': ({ children }) => <Link href={`${admin}/account`}>{children}</Link>,\n }}\n i18nKey=\"authentication:loggedInChangePassword\"\n t={i18n.t}\n />\n </p>\n <br />\n <Button Link={Link} buttonStyle=\"secondary\" el=\"link\" to={admin}>\n {i18n.t('general:backToDashboard')}\n </Button>\n </Fragment>\n )\n }\n\n return (\n <Fragment>\n <ForgotPasswordForm />\n <Link href={`${admin}/login`}>{i18n.t('authentication:backToLogin')}</Link>\n </Fragment>\n )\n}\n"],"names":["Button","Translation","LinkImport","React","Fragment","ForgotPasswordForm","generateForgotPasswordMetadata","Link","default","forgotPasswordBaseClass","ForgotPasswordView","initPageResult","req","i18n","payload","config","user","routes","admin","h1","t","p","elements","children","href","i18nKey","br","buttonStyle","el","to"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,MAAM,QAAQ,iCAAgC;AACvD,SAASC,WAAW,QAAQ,sCAAqC;AACjE,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,kBAAkB,QAAQ,gCAA+B;AAElE,SAASC,8BAA8B,QAAQ,YAAW;AAE1D,MAAMC,OAAQL,WAAWM,OAAO,IAAIN;AACpC,OAAO,MAAMO,0BAA0B,kBAAiB;AAExD,OAAO,MAAMC,qBAA+C,CAAC,EAAEC,cAAc,EAAE;IAC7E,MAAM,EACJC,KAAK,EACHC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGL;IAEJ,MAAM,EACJM,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGH;IAEJ,IAAIC,MAAM;QACR,qBACE,oBAACZ,8BACC,oBAACe,YAAIN,KAAKO,CAAC,CAAC,kDACZ,oBAACC,yBACC,oBAACpB;YACCqB,UAAU;gBACR,KAAK,CAAC,EAAEC,QAAQ,EAAE,iBAAK,oBAAChB;wBAAKiB,MAAM,CAAC,EAAEN,MAAM,QAAQ,CAAC;uBAAGK;YAC1D;YACAE,SAAQ;YACRL,GAAGP,KAAKO,CAAC;2BAGb,oBAACM,2BACD,oBAAC1B;YAAOO,MAAMA;YAAMoB,aAAY;YAAYC,IAAG;YAAOC,IAAIX;WACvDL,KAAKO,CAAC,CAAC;IAIhB;IAEA,qBACE,oBAAChB,8BACC,oBAACC,yCACD,oBAACE;QAAKiB,MAAM,CAAC,EAAEN,MAAM,MAAM,CAAC;OAAGL,KAAKO,CAAC,CAAC;AAG5C,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMlD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwGnD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAOlD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8GnD,CAAA"}
@@ -3,6 +3,7 @@ import { Popup, PopupList } from '@payloadcms/ui/elements/Popup';
3
3
  import { Chevron } from '@payloadcms/ui/icons/Chevron';
4
4
  import { LinkIcon } from '@payloadcms/ui/icons/Link';
5
5
  import { X } from '@payloadcms/ui/icons/X';
6
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
6
7
  import React from 'react';
7
8
  import { useLivePreviewContext } from '../../Context/context.js';
8
9
  import { PreviewFrameSizeInput } from '../SizeInput/index.js';
@@ -15,12 +16,13 @@ const zoomOptions = [
15
16
  150,
16
17
  200
17
18
  ];
18
- const customOption = {
19
- label: 'Custom',
20
- value: 'custom'
21
- };
22
19
  export const ToolbarControls = ()=>{
23
20
  const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } = useLivePreviewContext();
21
+ const { t } = useTranslation();
22
+ const customOption = {
23
+ label: t('general:custom'),
24
+ value: 'custom'
25
+ };
24
26
  return /*#__PURE__*/ React.createElement("div", {
25
27
  className: baseClass
26
28
  }, breakpoints?.length > 0 && /*#__PURE__*/ React.createElement(Popup, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload/types'\n\nimport { Popup, PopupList } from '@payloadcms/ui/elements/Popup'\nimport { Chevron } from '@payloadcms/ui/icons/Chevron'\nimport { LinkIcon } from '@payloadcms/ui/icons/Link'\nimport { X } from '@payloadcms/ui/icons/X'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../../Context/context.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\nconst customOption = {\n label: 'Custom', // TODO: Add i18n to this string\n value: 'custom',\n}\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <X />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n type=\"button\"\n >\n <LinkIcon />\n </a>\n </div>\n )\n}\n"],"names":["Popup","PopupList","Chevron","LinkIcon","X","React","useLivePreviewContext","PreviewFrameSizeInput","baseClass","zoomOptions","customOption","label","value","ToolbarControls","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","div","className","length","button","Fragment","span","find","bp","name","horizontalAlign","render","close","ButtonGroup","map","Button","active","key","onClick","showScrollbar","verticalAlign","axis","zoomValue","a","href","e","preventDefault","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,KAAK,EAAEC,SAAS,QAAQ,gCAA+B;AAChE,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,2BAA0B;AAChE,SAASC,qBAAqB,QAAQ,wBAAuB;AAG7D,MAAMC,YAAY;AAClB,MAAMC,cAAc;IAAC;IAAI;IAAI;IAAK;IAAK;IAAK;CAAI;AAChD,MAAMC,eAAe;IACnBC,OAAO;IACPC,OAAO;AACT;AAEA,OAAO,MAAMC,kBAA2C;IACtD,MAAM,EAAEC,UAAU,EAAEC,WAAW,EAAEC,aAAa,EAAEC,oBAAoB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAE,GACxFd;IAEF,qBACE,oBAACe;QAAIC,WAAWd;OACbO,aAAaQ,SAAS,mBACrB,oBAACvB;QACCwB,sBACE,oBAACnB,MAAMoB,QAAQ,sBACb,oBAACC,cACEX,YAAYY,IAAI,CAAC,CAACC,KAAOA,GAAGC,IAAI,IAAIf,aAAaH,SAASD,aAAaC,KAAK,GACxE,mBAEP,oBAACT;YAAQoB,WAAW,CAAC,EAAEd,UAAU,SAAS,CAAC;;QAG/Cc,WAAW,CAAC,EAAEd,UAAU,YAAY,CAAC;QACrCsB,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,oBAAC/B,UAAUgC,WAAW,sBACpB,oBAAC5B,MAAMoB,QAAQ,QACZV,YAAYmB,GAAG,CAAC,CAACN,mBAChB,oBAAC3B,UAAUkC,MAAM;oBACfC,QAAQR,GAAGC,IAAI,IAAIf;oBACnBuB,KAAKT,GAAGC,IAAI;oBACZS,SAAS;wBACPtB,cAAcY,GAAGC,IAAI;wBACrBG;oBACF;mBAECJ,GAAGjB,KAAK,IAIZG,eAAe,0BACd,oBAACb,UAAUkC,MAAM;gBACfC,QAAQtB,cAAcJ,aAAaE,KAAK;gBACxC0B,SAAS;oBACPtB,cAAcN,aAAaE,KAAK;oBAChCoB;gBACF;eAECtB,aAAaC,KAAK;QAM7B4B,eAAAA;QACAC,eAAc;sBAGlB,oBAACnB;QAAIC,WAAW,CAAC,EAAEd,UAAU,aAAa,CAAC;qBACzC,oBAACD;QAAsBkC,MAAK;sBAC5B,oBAACf;QAAKJ,WAAW,CAAC,EAAEd,UAAU,cAAc,CAAC;qBAC3C,oBAACJ,yBAEH,oBAACG;QAAsBkC,MAAK;uBAE9B,oBAACzC;QACCwB,sBACE,oBAACnB,MAAMoB,QAAQ,sBACb,oBAACC,cAAMN,OAAO,KAAI,MAAQ,mBAE1B,oBAAClB;YAAQoB,WAAW,CAAC,EAAEd,UAAU,SAAS,CAAC;;QAG/Cc,WAAW,CAAC,EAAEd,UAAU,MAAM,CAAC;QAC/BsB,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,oBAAC/B,UAAUgC,WAAW,sBACpB,oBAAC5B,MAAMoB,QAAQ,QACZhB,YAAYyB,GAAG,CAAC,CAACQ,0BAChB,oBAACzC,UAAUkC,MAAM;oBACfC,QAAQhB,OAAO,OAAOsB;oBACtBL,KAAKK;oBACLJ,SAAS;wBACPpB,QAAQwB,YAAY;wBACpBV;oBACF;mBAECU,WAAU;QAMrBH,eAAAA;QACAC,eAAc;sBAEhB,oBAACG;QACCrB,WAAW,CAAC,EAAEd,UAAU,UAAU,CAAC;QACnCoC,MAAMzB;QACNmB,SAAS,CAACO;YACRA,EAAEC,cAAc;YAChB7B,qBAAqB;QACvB;QACA8B,MAAK;qBAEL,oBAAC5C;AAIT,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload/types'\n\nimport { Popup, PopupList } from '@payloadcms/ui/elements/Popup'\nimport { Chevron } from '@payloadcms/ui/icons/Chevron'\nimport { LinkIcon } from '@payloadcms/ui/icons/Link'\nimport { X } from '@payloadcms/ui/icons/X'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../../Context/context.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n const { t } = useTranslation()\n\n const customOption = {\n label: t('general:custom'),\n value: 'custom',\n }\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <X />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n type=\"button\"\n >\n <LinkIcon />\n </a>\n </div>\n )\n}\n"],"names":["Popup","PopupList","Chevron","LinkIcon","X","useTranslation","React","useLivePreviewContext","PreviewFrameSizeInput","baseClass","zoomOptions","ToolbarControls","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","t","customOption","label","value","div","className","length","button","Fragment","span","find","bp","name","horizontalAlign","render","close","ButtonGroup","map","Button","active","key","onClick","showScrollbar","verticalAlign","axis","zoomValue","a","href","e","preventDefault","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CA4CA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAgBzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CA+EA,CAAA"}
@@ -10,6 +10,7 @@ import { Form } from '@payloadcms/ui/forms/Form';
10
10
  import { FormSubmit } from '@payloadcms/ui/forms/Submit';
11
11
  import { useConfig } from '@payloadcms/ui/providers/Config';
12
12
  import { useTranslation } from '@payloadcms/ui/providers/Translation';
13
+ import { email, password } from 'payload/fields/validations';
13
14
  export const LoginForm = ({ searchParams })=>{
14
15
  const config = useConfig();
15
16
  const { admin: { autoLogin, user: userSlug }, routes: { admin, api } } = config;
@@ -44,12 +45,35 @@ export const LoginForm = ({ searchParams })=>{
44
45
  autoComplete: "email",
45
46
  label: t('general:email'),
46
47
  name: "email",
47
- required: true
48
+ required: true,
49
+ validate: (value)=>email(value, {
50
+ name: 'email',
51
+ type: 'email',
52
+ data: {},
53
+ req: {
54
+ t
55
+ },
56
+ required: true,
57
+ siblingData: {}
58
+ })
48
59
  }), /*#__PURE__*/ React.createElement(Password, {
49
60
  autoComplete: "off",
50
61
  label: t('general:password'),
51
62
  name: "password",
52
- required: true
63
+ required: true,
64
+ validate: (value)=>password(value, {
65
+ name: 'password',
66
+ type: 'text',
67
+ data: {},
68
+ req: {
69
+ payload: {
70
+ config
71
+ },
72
+ t
73
+ },
74
+ required: true,
75
+ siblingData: {}
76
+ })
53
77
  })), /*#__PURE__*/ React.createElement(Link, {
54
78
  href: `${admin}/forgot`
55
79
  }, t('authentication:forgotPasswordQuestion')), /*#__PURE__*/ React.createElement(FormSubmit, null, t('authentication:login')));