@payloadcms/next 3.68.2 → 3.68.4

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 (66) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +24 -19
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  4. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  5. package/dist/elements/Nav/index.client.js +21 -15
  6. package/dist/elements/Nav/index.client.js.map +1 -1
  7. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  8. package/dist/utilities/handleAuthRedirect.js +2 -1
  9. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  10. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  11. package/dist/views/Account/ResetPreferences/index.js +6 -1
  12. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  13. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  14. package/dist/views/CreateFirstUser/index.client.js +6 -1
  15. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  16. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  17. package/dist/views/Dashboard/Default/index.js +8 -4
  18. package/dist/views/Dashboard/Default/index.js.map +1 -1
  19. package/dist/views/Document/index.d.ts.map +1 -1
  20. package/dist/views/Document/index.js +6 -2
  21. package/dist/views/Document/index.js.map +1 -1
  22. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  23. package/dist/views/ForgotPassword/index.js +6 -3
  24. package/dist/views/ForgotPassword/index.js.map +1 -1
  25. package/dist/views/List/index.d.ts.map +1 -1
  26. package/dist/views/List/index.js +2 -1
  27. package/dist/views/List/index.js.map +1 -1
  28. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  29. package/dist/views/Login/LoginForm/index.js +24 -17
  30. package/dist/views/Login/LoginForm/index.js.map +1 -1
  31. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  32. package/dist/views/Logout/LogoutClient.js +41 -36
  33. package/dist/views/Logout/LogoutClient.js.map +1 -1
  34. package/dist/views/NotFound/index.d.ts.map +1 -1
  35. package/dist/views/NotFound/index.js +1 -0
  36. package/dist/views/NotFound/index.js.map +1 -1
  37. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
  38. package/dist/views/ResetPassword/ResetPasswordForm/index.js +22 -16
  39. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  40. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  41. package/dist/views/ResetPassword/index.js +4 -2
  42. package/dist/views/ResetPassword/index.js.map +1 -1
  43. package/dist/views/Root/getRouteData.js +2 -1
  44. package/dist/views/Root/getRouteData.js.map +1 -1
  45. package/dist/views/Root/index.d.ts.map +1 -1
  46. package/dist/views/Root/index.js +9 -3
  47. package/dist/views/Root/index.js.map +1 -1
  48. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  49. package/dist/views/Unauthorized/index.js +4 -2
  50. package/dist/views/Unauthorized/index.js.map +1 -1
  51. package/dist/views/Verify/index.d.ts.map +1 -1
  52. package/dist/views/Verify/index.js +4 -2
  53. package/dist/views/Verify/index.js.map +1 -1
  54. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  55. package/dist/views/Version/Default/SetStepNav.js +14 -7
  56. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  57. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  58. package/dist/views/Version/Restore/index.js +4 -2
  59. package/dist/views/Version/Restore/index.js.map +1 -1
  60. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  61. package/dist/views/Versions/cells/CreatedAt/index.js +6 -3
  62. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  63. package/dist/views/Versions/index.d.ts.map +1 -1
  64. package/dist/views/Versions/index.js +6 -2
  65. package/dist/views/Versions/index.js.map +1 -1
  66. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"TabLink.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAwDA,CAAA"}
1
+ {"version":3,"file":"TabLink.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CA0DA,CAAA"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import { Button } from '@payloadcms/ui';
5
+ import { Button, useConfig } from '@payloadcms/ui';
6
6
  import { useParams, usePathname, useSearchParams } from 'next/navigation.js';
7
7
  import { formatAdminURL } from 'payload/shared';
8
8
  import React from 'react';
9
9
  export const DocumentTabLink = t0 => {
10
- const $ = _c(13);
10
+ const $ = _c(14);
11
11
  const {
12
12
  adminRoute,
13
13
  ariaLabel,
@@ -19,22 +19,27 @@ export const DocumentTabLink = t0 => {
19
19
  } = t0;
20
20
  const pathname = usePathname();
21
21
  const params = useParams();
22
+ const {
23
+ config
24
+ } = useConfig();
22
25
  const searchParams = useSearchParams();
23
26
  const locale = searchParams.get("locale");
24
27
  const [entityType, entitySlug, segmentThree, segmentFour] = params.segments || [];
25
28
  const isCollection = entityType === "collections";
26
29
  const t1 = `/${isCollection ? "collections" : "globals"}/${entitySlug}`;
27
30
  let t2;
28
- if ($[0] !== adminRoute || $[1] !== t1) {
31
+ if ($[0] !== adminRoute || $[1] !== config.serverURL || $[2] !== t1) {
29
32
  t2 = formatAdminURL({
30
33
  adminRoute,
31
- path: t1
34
+ path: t1,
35
+ serverURL: config.serverURL
32
36
  });
33
37
  $[0] = adminRoute;
34
- $[1] = t1;
35
- $[2] = t2;
38
+ $[1] = config.serverURL;
39
+ $[2] = t1;
40
+ $[3] = t2;
36
41
  } else {
37
- t2 = $[2];
42
+ t2 = $[3];
38
43
  }
39
44
  let docPath = t2;
40
45
  if (isCollection) {
@@ -49,7 +54,7 @@ export const DocumentTabLink = t0 => {
49
54
  const href = `${docPath}${hrefFromProps}`;
50
55
  const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ""}`;
51
56
  let t3;
52
- if ($[3] !== ariaLabel || $[4] !== baseClass || $[5] !== children || $[6] !== docPath || $[7] !== href || $[8] !== hrefWithLocale || $[9] !== isActiveFromProps || $[10] !== newTab || $[11] !== pathname) {
57
+ if ($[4] !== ariaLabel || $[5] !== baseClass || $[6] !== children || $[7] !== docPath || $[8] !== href || $[9] !== hrefWithLocale || $[10] !== isActiveFromProps || $[11] !== newTab || $[12] !== pathname) {
53
58
  const isActive = href === docPath && pathname === docPath || href !== docPath && pathname.startsWith(href) || isActiveFromProps;
54
59
  t3 = _jsx(Button, {
55
60
  "aria-label": ariaLabel,
@@ -63,18 +68,18 @@ export const DocumentTabLink = t0 => {
63
68
  to: !isActive || href !== pathname ? hrefWithLocale : undefined,
64
69
  children
65
70
  });
66
- $[3] = ariaLabel;
67
- $[4] = baseClass;
68
- $[5] = children;
69
- $[6] = docPath;
70
- $[7] = href;
71
- $[8] = hrefWithLocale;
72
- $[9] = isActiveFromProps;
73
- $[10] = newTab;
74
- $[11] = pathname;
75
- $[12] = t3;
71
+ $[4] = ariaLabel;
72
+ $[5] = baseClass;
73
+ $[6] = children;
74
+ $[7] = docPath;
75
+ $[8] = href;
76
+ $[9] = hrefWithLocale;
77
+ $[10] = isActiveFromProps;
78
+ $[11] = newTab;
79
+ $[12] = pathname;
80
+ $[13] = t3;
76
81
  } else {
77
- t3 = $[12];
82
+ t3 = $[13];
78
83
  }
79
84
  return t3;
80
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TabLink.js","names":["c","_c","Button","useParams","usePathname","useSearchParams","formatAdminURL","React","DocumentTabLink","t0","$","adminRoute","ariaLabel","baseClass","children","href","hrefFromProps","isActive","isActiveFromProps","newTab","pathname","params","searchParams","locale","get","entityType","entitySlug","segmentThree","segmentFour","segments","isCollection","t1","t2","path","docPath","hrefWithLocale","t3","startsWith","_jsx","buttonStyle","className","filter","Boolean","join","disabled","el","margin","size","to","undefined"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from 'payload'\n\nimport { Button } from '@payloadcms/ui'\nimport { useParams, usePathname, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n ariaLabel?: string\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n ariaLabel,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n\n const searchParams = useSearchParams()\n\n const locale = searchParams.get('locale')\n\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n\n let docPath = formatAdminURL({\n adminRoute,\n path: `/${isCollection ? 'collections' : 'globals'}/${entitySlug}`,\n })\n\n if (isCollection) {\n if (segmentThree === 'trash' && segmentFour) {\n docPath += `/trash/${segmentFour}`\n } else if (segmentThree) {\n docPath += `/${segmentThree}`\n }\n }\n\n const href = `${docPath}${hrefFromProps}`\n // separated the two so it doesn't break checks against pathname\n const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <Button\n aria-label={ariaLabel}\n buttonStyle=\"tab\"\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n disabled={isActive}\n el={!isActive || href !== pathname ? 'link' : 'div'}\n margin={false}\n newTab={newTab}\n size=\"medium\"\n to={!isActive || href !== pathname ? hrefWithLocale : undefined}\n >\n {children}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,EAAEC,WAAW,EAAEC,eAAe,QAAQ;AACxD,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,OAAO,MAAMC,eAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,IAAA,EAAAC,aAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC;EAAA,IAAAV,EAQL;EACC,MAAAW,QAAA,GAAiBhB,WAAA;EACjB,MAAAiB,MAAA,GAAelB,SAAA;EAEf,MAAAmB,YAAA,GAAqBjB,eAAA;EAErB,MAAAkB,MAAA,GAAeD,YAAA,CAAAE,GAAA,CAAiB;EAEhC,OAAAC,UAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,WAAA,IAAqEP,MAAA,CAAAQ,QAAA,MAAqB;EAC1F,MAAAC,YAAA,GAAqBL,UAAA,KAAe;EAI5B,MAAAM,EAAA,OAAID,YAAA,GAAe,gBAAgB,aAAaJ,UAAA,EAAY;EAAA,IAAAM,EAAA;EAAA,IAAAtB,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAqB,EAAA;IAFtDC,EAAA,GAAA1B,cAAA;MAAAK,UAAA;MAAAsB,IAAA,EAENF;IAA4D,CACpE;IAAArB,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAqB,EAAA;IAAArB,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAHA,IAAAwB,OAAA,GAAcF,EAGd;EAAA,IAEIF,YAAA;IAAA,IACEH,YAAA,KAAiB,WAAWC,WAAA;MAC9BM,OAAA,GAAAA,OAAA,GAAW,UAAUN,WAAA,EAAa;IAAA;MAAA,IACzBD,YAAA;QACTO,OAAA,GAAAA,OAAA,GAAW,IAAIP,YAAA,EAAc;MAAA;IAAA;EAAA;EAIjC,MAAAZ,IAAA,GAAa,GAAGmB,OAAA,GAAUlB,aAAA,EAAe;EAEzC,MAAAmB,cAAA,GAAuB,GAAGpB,IAAA,GAAOQ,MAAA,GAAS,WAAWA,MAAA,EAAQ,GAAG,IAAI;EAAA,IAAAa,EAAA;EAAA,IAAA1B,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAwB,OAAA,IAAAxB,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAyB,cAAA,IAAAzB,CAAA,QAAAQ,iBAAA,IAAAR,CAAA,SAAAS,MAAA,IAAAT,CAAA,SAAAU,QAAA;IAEpE,MAAAH,QAAA,GACEF,IAAC,KAASmB,OAAA,IAAWd,QAAA,KAAac,OAAA,IACjCnB,IAAA,KAASmB,OAAA,IAAWd,QAAA,CAAAiB,UAAA,CAAoBtB,IAAA,KACzCG,iBAAA;IAGAkB,EAAA,GAAAE,IAAA,CAAApC,MAAA;MAAA,cACcU,SAAA;MAAA2B,WAAA,EACA;MAAAC,SAAA,EACD,CAAC3B,SAAA,EAAWI,QAAA,IAAY,GAAGJ,SAAA,UAAmB,EAAA4B,MAAA,CAAAC,OAAS,EAAAC,IAAA,CAAc;MAAAC,QAAA,EACtE3B,QAAA;MAAA4B,EAAA,EACN,CAAC5B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAW,SAAS;MAAA0B,MAAA;MAAA3B,MAAA;MAAA4B,IAAA,EAGzC;MAAAC,EAAA,EACD,CAAC/B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAWe,cAAA,GAAAc,SAAiB;MAAAnC;IAAA,C;;;;;;;;;;;;;;SATxDsB,E;CAcJ","ignoreList":[]}
1
+ {"version":3,"file":"TabLink.js","names":["c","_c","Button","useConfig","useParams","usePathname","useSearchParams","formatAdminURL","React","DocumentTabLink","t0","$","adminRoute","ariaLabel","baseClass","children","href","hrefFromProps","isActive","isActiveFromProps","newTab","pathname","params","config","searchParams","locale","get","entityType","entitySlug","segmentThree","segmentFour","segments","isCollection","t1","t2","serverURL","path","docPath","hrefWithLocale","t3","startsWith","_jsx","buttonStyle","className","filter","Boolean","join","disabled","el","margin","size","to","undefined"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from 'payload'\n\nimport { Button, useConfig } from '@payloadcms/ui'\nimport { useParams, usePathname, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n ariaLabel?: string\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n ariaLabel,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n const { config } = useConfig()\n\n const searchParams = useSearchParams()\n\n const locale = searchParams.get('locale')\n\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n\n let docPath = formatAdminURL({\n adminRoute,\n path: `/${isCollection ? 'collections' : 'globals'}/${entitySlug}`,\n serverURL: config.serverURL,\n })\n\n if (isCollection) {\n if (segmentThree === 'trash' && segmentFour) {\n docPath += `/trash/${segmentFour}`\n } else if (segmentThree) {\n docPath += `/${segmentThree}`\n }\n }\n\n const href = `${docPath}${hrefFromProps}`\n // separated the two so it doesn't break checks against pathname\n const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <Button\n aria-label={ariaLabel}\n buttonStyle=\"tab\"\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n disabled={isActive}\n el={!isActive || href !== pathname ? 'link' : 'div'}\n margin={false}\n newTab={newTab}\n size=\"medium\"\n to={!isActive || href !== pathname ? hrefWithLocale : undefined}\n >\n {children}\n </Button>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;CAC/B,CAwEA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;CAC/B,CA0EA,CAAA"}
@@ -13,7 +13,7 @@ const baseClass = 'nav';
13
13
  * @internal
14
14
  */
15
15
  export const DefaultNavClient = t0 => {
16
- const $ = _c(13);
16
+ const $ = _c(15);
17
17
  const {
18
18
  groups,
19
19
  navPreferences
@@ -25,7 +25,8 @@ export const DefaultNavClient = t0 => {
25
25
  const {
26
26
  admin: t2,
27
27
  folders,
28
- routes: t3
28
+ routes: t3,
29
+ serverURL
29
30
  } = t1;
30
31
  const {
31
32
  routes: t4
@@ -40,14 +41,15 @@ export const DefaultNavClient = t0 => {
40
41
  i18n
41
42
  } = useTranslation();
42
43
  let t5;
43
- if ($[0] !== adminRoute || $[1] !== folders || $[2] !== foldersRoute || $[3] !== groups || $[4] !== i18n || $[5] !== navPreferences?.groups || $[6] !== pathname) {
44
+ if ($[0] !== adminRoute || $[1] !== folders || $[2] !== foldersRoute || $[3] !== groups || $[4] !== i18n || $[5] !== navPreferences?.groups || $[6] !== pathname || $[7] !== serverURL) {
44
45
  const folderURL = formatAdminURL({
45
46
  adminRoute,
46
- path: foldersRoute
47
+ path: foldersRoute,
48
+ serverURL
47
49
  });
48
50
  const viewingRootFolderView = pathname.startsWith(folderURL);
49
51
  let t6;
50
- if ($[8] !== adminRoute || $[9] !== i18n || $[10] !== navPreferences?.groups || $[11] !== pathname) {
52
+ if ($[9] !== adminRoute || $[10] !== i18n || $[11] !== navPreferences?.groups || $[12] !== pathname || $[13] !== serverURL) {
51
53
  t6 = (t7, key) => {
52
54
  const {
53
55
  entities,
@@ -67,14 +69,16 @@ export const DefaultNavClient = t0 => {
67
69
  if (type === EntityType.collection) {
68
70
  href = formatAdminURL({
69
71
  adminRoute,
70
- path: `/collections/${slug}`
72
+ path: `/collections/${slug}`,
73
+ serverURL
71
74
  });
72
75
  id = `nav-${slug}`;
73
76
  }
74
77
  if (type === EntityType.global) {
75
78
  href = formatAdminURL({
76
79
  adminRoute,
77
- path: `/globals/${slug}`
80
+ path: `/globals/${slug}`,
81
+ serverURL
78
82
  });
79
83
  id = `nav-global-${slug}`;
80
84
  }
@@ -104,13 +108,14 @@ export const DefaultNavClient = t0 => {
104
108
  })
105
109
  }, key);
106
110
  };
107
- $[8] = adminRoute;
108
- $[9] = i18n;
109
- $[10] = navPreferences?.groups;
110
- $[11] = pathname;
111
- $[12] = t6;
111
+ $[9] = adminRoute;
112
+ $[10] = i18n;
113
+ $[11] = navPreferences?.groups;
114
+ $[12] = pathname;
115
+ $[13] = serverURL;
116
+ $[14] = t6;
112
117
  } else {
113
- t6 = $[12];
118
+ t6 = $[14];
114
119
  }
115
120
  t5 = _jsxs(Fragment, {
116
121
  children: [folders && folders.browseByFolder && _jsx(BrowseByFolderButton, {
@@ -124,9 +129,10 @@ export const DefaultNavClient = t0 => {
124
129
  $[4] = i18n;
125
130
  $[5] = navPreferences?.groups;
126
131
  $[6] = pathname;
127
- $[7] = t5;
132
+ $[7] = serverURL;
133
+ $[8] = t5;
128
134
  } else {
129
- t5 = $[7];
135
+ t5 = $[8];
130
136
  }
131
137
  return t5;
132
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["c","_c","getTranslation","BrowseByFolderButton","Link","NavGroup","useConfig","useTranslation","EntityType","usePathname","formatAdminURL","React","Fragment","baseClass","DefaultNavClient","t0","$","groups","navPreferences","pathname","config","t1","admin","t2","folders","routes","t3","t4","browseByFolder","foldersRoute","adminRoute","i18n","t5","folderURL","path","viewingRootFolderView","startsWith","t6","t7","key","entities","label","_jsx","isOpen","open","children","map","t8","i","slug","type","label_0","href","id","collection","global","isActive","undefined","includes","length","Label","_jsxs","_Fragment","className","prefetch","active"],"sources":["../../../src/elements/Nav/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { NavPreferences } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { BrowseByFolderButton, Link, NavGroup, useConfig, useTranslation } from '@payloadcms/ui'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { usePathname } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nconst baseClass = 'nav'\n\n/**\n * @internal\n */\nexport const DefaultNavClient: React.FC<{\n groups: ReturnType<typeof groupNavItems>\n navPreferences: NavPreferences\n}> = ({ groups, navPreferences }) => {\n const pathname = usePathname()\n\n const {\n config: {\n admin: {\n routes: { browseByFolder: foldersRoute },\n },\n folders,\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n\n const folderURL = formatAdminURL({\n adminRoute,\n path: foldersRoute,\n })\n\n const viewingRootFolderView = pathname.startsWith(folderURL)\n\n return (\n <Fragment>\n {folders && folders.browseByFolder && <BrowseByFolderButton active={viewingRootFolderView} />}\n {groups.map(({ entities, label }, key) => {\n return (\n <NavGroup isOpen={navPreferences?.groups?.[label]?.open} key={key} label={label}>\n {entities.map(({ slug, type, label }, i) => {\n let href: string\n let id: string\n\n if (type === EntityType.collection) {\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n id = `nav-${slug}`\n }\n\n if (type === EntityType.global) {\n href = formatAdminURL({ adminRoute, path: `/globals/${slug}` })\n id = `nav-global-${slug}`\n }\n\n const isActive =\n pathname.startsWith(href) && ['/', undefined].includes(pathname[href.length])\n\n const Label = (\n <>\n {isActive && <div className={`${baseClass}__link-indicator`} />}\n <span className={`${baseClass}__link-label`}>{getTranslation(label, i18n)}</span>\n </>\n )\n\n // If the URL matches the link exactly\n if (pathname === href) {\n return (\n <div className={`${baseClass}__link`} id={id} key={i}>\n {Label}\n </div>\n )\n }\n\n return (\n <Link className={`${baseClass}__link`} href={href} id={id} key={i} prefetch={false}>\n {Label}\n </Link>\n )\n })}\n </NavGroup>\n )\n })}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","getTranslation","BrowseByFolderButton","Link","NavGroup","useConfig","useTranslation","EntityType","usePathname","formatAdminURL","React","Fragment","baseClass","DefaultNavClient","t0","$","groups","navPreferences","pathname","config","t1","admin","t2","folders","routes","t3","serverURL","t4","browseByFolder","foldersRoute","adminRoute","i18n","t5","folderURL","path","viewingRootFolderView","startsWith","t6","t7","key","entities","label","_jsx","isOpen","open","children","map","t8","i","slug","type","label_0","href","id","collection","global","isActive","undefined","includes","length","Label","_jsxs","_Fragment","className","prefetch","active"],"sources":["../../../src/elements/Nav/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { NavPreferences } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { BrowseByFolderButton, Link, NavGroup, useConfig, useTranslation } from '@payloadcms/ui'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { usePathname } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nconst baseClass = 'nav'\n\n/**\n * @internal\n */\nexport const DefaultNavClient: React.FC<{\n groups: ReturnType<typeof groupNavItems>\n navPreferences: NavPreferences\n}> = ({ groups, navPreferences }) => {\n const pathname = usePathname()\n\n const {\n config: {\n admin: {\n routes: { browseByFolder: foldersRoute },\n },\n folders,\n routes: { admin: adminRoute },\n serverURL,\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n\n const folderURL = formatAdminURL({\n adminRoute,\n path: foldersRoute,\n serverURL,\n })\n\n const viewingRootFolderView = pathname.startsWith(folderURL)\n\n return (\n <Fragment>\n {folders && folders.browseByFolder && <BrowseByFolderButton active={viewingRootFolderView} />}\n {groups.map(({ entities, label }, key) => {\n return (\n <NavGroup isOpen={navPreferences?.groups?.[label]?.open} key={key} label={label}>\n {entities.map(({ slug, type, label }, i) => {\n let href: string\n let id: string\n\n if (type === EntityType.collection) {\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}`, serverURL })\n id = `nav-${slug}`\n }\n\n if (type === EntityType.global) {\n href = formatAdminURL({ adminRoute, path: `/globals/${slug}`, serverURL })\n id = `nav-global-${slug}`\n }\n\n const isActive =\n pathname.startsWith(href) && ['/', undefined].includes(pathname[href.length])\n\n const Label = (\n <>\n {isActive && <div className={`${baseClass}__link-indicator`} />}\n <span className={`${baseClass}__link-label`}>{getTranslation(label, i18n)}</span>\n </>\n )\n\n // If the URL matches the link exactly\n if (pathname === href) {\n return (\n <div className={`${baseClass}__link`} id={id} key={i}>\n {Label}\n </div>\n )\n }\n\n return (\n <Link className={`${baseClass}__link`} href={href} id={id} key={i} prefetch={false}>\n {Label}\n </Link>\n )\n })}\n </NavGroup>\n )\n })}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../src/utilities/handleAuthRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAKxC,KAAK,IAAI,GAAG;IACV,MAAM,MAAA;IACN,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAClD,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,kBAAkB,0CAA2C,IAAI,KAAG,MAkChF,CAAA"}
1
+ {"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../src/utilities/handleAuthRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAKxC,KAAK,IAAI,GAAG;IACV,MAAM,MAAA;IACN,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAClD,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,kBAAkB,0CAA2C,IAAI,KAAG,MAmChF,CAAA"}
@@ -25,7 +25,8 @@ export const handleAuthRedirect = ({
25
25
  })}` : '');
26
26
  const redirectTo = formatAdminURL({
27
27
  adminRoute,
28
- path: user ? unauthorizedRoute : loginRouteFromConfig
28
+ path: user ? unauthorizedRoute : loginRouteFromConfig,
29
+ serverURL: config.serverURL
29
30
  });
30
31
  const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '');
31
32
  const searchParamsWithRedirect = `${qs.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","qs","handleAuthRedirect","config","route","searchParams","user","admin","routes","login","loginRouteFromConfig","unauthorized","unauthorizedRoute","adminRoute","redirect","redirectRoute","Object","keys","length","stringify","addQueryPrefix","redirectTo","path","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../src/utilities/handleAuthRedirect.ts"],"sourcesContent":["import type { TypedUser } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\ntype Args = {\n config\n route: string\n searchParams: { [key: string]: string | string[] }\n user?: TypedUser\n}\n\nexport const handleAuthRedirect = ({ config, route, searchParams, user }: Args): string => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig, unauthorized: unauthorizedRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (searchParams && 'redirect' in searchParams) {\n delete searchParams.redirect\n }\n\n const redirectRoute =\n (route !== adminRoute ? route : '') +\n (Object.keys(searchParams ?? {}).length > 0\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : '')\n\n const redirectTo = formatAdminURL({\n adminRoute,\n path: user ? unauthorizedRoute : loginRouteFromConfig,\n })\n\n const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n return `${redirectTo.split('?', 1)[0]}${searchParamsWithRedirect}`\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AASpB,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAAI,CAAQ;EAC5E,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,oBAAoB;QAAEC,YAAA,EAAcC;MAAiB;IAAE,CACzE;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGV,MAAA;EAEJ,IAAIE,YAAA,IAAgB,cAAcA,YAAA,EAAc;IAC9C,OAAOA,YAAA,CAAaS,QAAQ;EAC9B;EAEA,MAAMC,aAAA,GACJ,CAACX,KAAA,KAAUS,UAAA,GAAaT,KAAA,GAAQ,EAAC,KAChCY,MAAA,CAAOC,IAAI,CAACZ,YAAA,IAAgB,CAAC,GAAGa,MAAM,GAAG,IACtC,GAAGjB,EAAA,CAAGkB,SAAS,CAACd,YAAA,EAAc;IAAEe,cAAA,EAAgB;EAAK,IAAI,GACzD,EAAC;EAEP,MAAMC,UAAA,GAAarB,cAAA,CAAe;IAChCa,UAAA;IACAS,IAAA,EAAMhB,IAAA,GAAOM,iBAAA,GAAoBF;EACnC;EAEA,MAAMa,4BAAA,GAA+BtB,EAAA,CAAGuB,KAAK,CAACH,UAAA,CAAWI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;EAE1E,MAAMC,wBAAA,GAA2B,GAAGzB,EAAA,CAAGkB,SAAS,CAC9C;IACE,GAAGI,4BAA4B;IAC/B,IAAIR,aAAA,GAAgB;MAAED,QAAA,EAAUC;IAAc,IAAI,CAAC,CAAC;EACtD,GACA;IAAEK,cAAA,EAAgB;EAAK,IACtB;EAEH,OAAO,GAAGC,UAAA,CAAWI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAGC,wBAAA,EAA0B;AACpE","ignoreList":[]}
1
+ {"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","qs","handleAuthRedirect","config","route","searchParams","user","admin","routes","login","loginRouteFromConfig","unauthorized","unauthorizedRoute","adminRoute","redirect","redirectRoute","Object","keys","length","stringify","addQueryPrefix","redirectTo","path","serverURL","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../src/utilities/handleAuthRedirect.ts"],"sourcesContent":["import type { TypedUser } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\ntype Args = {\n config\n route: string\n searchParams: { [key: string]: string | string[] }\n user?: TypedUser\n}\n\nexport const handleAuthRedirect = ({ config, route, searchParams, user }: Args): string => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig, unauthorized: unauthorizedRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (searchParams && 'redirect' in searchParams) {\n delete searchParams.redirect\n }\n\n const redirectRoute =\n (route !== adminRoute ? route : '') +\n (Object.keys(searchParams ?? {}).length > 0\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : '')\n\n const redirectTo = formatAdminURL({\n adminRoute,\n path: user ? unauthorizedRoute : loginRouteFromConfig,\n serverURL: config.serverURL,\n })\n\n const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n return `${redirectTo.split('?', 1)[0]}${searchParamsWithRedirect}`\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AASpB,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAAI,CAAQ;EAC5E,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,oBAAoB;QAAEC,YAAA,EAAcC;MAAiB;IAAE,CACzE;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGV,MAAA;EAEJ,IAAIE,YAAA,IAAgB,cAAcA,YAAA,EAAc;IAC9C,OAAOA,YAAA,CAAaS,QAAQ;EAC9B;EAEA,MAAMC,aAAA,GACJ,CAACX,KAAA,KAAUS,UAAA,GAAaT,KAAA,GAAQ,EAAC,KAChCY,MAAA,CAAOC,IAAI,CAACZ,YAAA,IAAgB,CAAC,GAAGa,MAAM,GAAG,IACtC,GAAGjB,EAAA,CAAGkB,SAAS,CAACd,YAAA,EAAc;IAAEe,cAAA,EAAgB;EAAK,IAAI,GACzD,EAAC;EAEP,MAAMC,UAAA,GAAarB,cAAA,CAAe;IAChCa,UAAA;IACAS,IAAA,EAAMhB,IAAA,GAAOM,iBAAA,GAAoBF,oBAAA;IACjCa,SAAA,EAAWpB,MAAA,CAAOoB;EACpB;EAEA,MAAMC,4BAAA,GAA+BvB,EAAA,CAAGwB,KAAK,CAACJ,UAAA,CAAWK,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;EAE1E,MAAMC,wBAAA,GAA2B,GAAG1B,EAAA,CAAGkB,SAAS,CAC9C;IACE,GAAGK,4BAA4B;IAC/B,IAAIT,aAAA,GAAgB;MAAED,QAAA,EAAUC;IAAc,IAAI,CAAC,CAAC;EACtD,GACA;IAAEK,cAAA,EAAgB;EAAK,IACtB;EAEH,OAAO,GAAGC,UAAA,CAAWK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAGC,wBAAA,EAA0B;AACpE","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/ResetPreferences/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAQxC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAC1B,CA6DA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/ResetPreferences/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AASxC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAC1B,CAoEA,CAAA"}
@@ -3,6 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { Button, ConfirmationModal, toast, useModal, useTranslation } from '@payloadcms/ui';
6
+ import { formatApiURL } from 'payload/shared';
6
7
  import * as qs from 'qs-esm';
7
8
  import { Fragment, useCallback } from 'react';
8
9
  const confirmResetModalSlug = 'confirm-reset-modal';
@@ -38,7 +39,11 @@ export const ResetPreferences = t0 => {
38
39
  });
39
40
  ;
40
41
  try {
41
- const res = await fetch(`${apiRoute}/payload-preferences${stringifiedQuery}`, {
42
+ const res = await fetch(formatApiURL({
43
+ apiRoute,
44
+ path: `/payload-preferences${stringifiedQuery}`,
45
+ serverURL: undefined
46
+ }), {
42
47
  credentials: "include",
43
48
  headers: {
44
49
  "Content-Type": "application/json"
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Button","ConfirmationModal","toast","useModal","useTranslation","qs","Fragment","useCallback","confirmResetModalSlug","ResetPreferences","t0","$","apiRoute","user","openModal","t","t1","stringifiedQuery","stringify","depth","where","id","equals","addQueryPrefix","res","fetch","credentials","headers","method","json","message","ok","success","error","t2","_err","handleResetPreferences","t3","_jsxs","children","_jsx","buttonStyle","onClick","body","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/views/Account/ResetPreferences/index.tsx"],"sourcesContent":["'use client'\nimport type { TypedUser } from 'payload'\n\nimport { Button, ConfirmationModal, toast, useModal, useTranslation } from '@payloadcms/ui'\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback } from 'react'\n\nconst confirmResetModalSlug = 'confirm-reset-modal'\n\nexport const ResetPreferences: React.FC<{\n readonly apiRoute: string\n readonly user?: TypedUser\n}> = ({ apiRoute, user }) => {\n const { openModal } = useModal()\n const { t } = useTranslation()\n\n const handleResetPreferences = useCallback(async () => {\n if (!user) {\n return\n }\n\n const stringifiedQuery = qs.stringify(\n {\n depth: 0,\n where: {\n user: {\n id: {\n equals: user.id,\n },\n },\n },\n },\n { addQueryPrefix: true },\n )\n\n try {\n const res = await fetch(`${apiRoute}/payload-preferences${stringifiedQuery}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'DELETE',\n })\n\n const json = await res.json()\n const message = json.message\n\n if (res.ok) {\n toast.success(message)\n } else {\n toast.error(message)\n }\n } catch (_err) {\n // swallow error\n }\n }, [apiRoute, user])\n\n return (\n <Fragment>\n <div>\n <Button buttonStyle=\"secondary\" onClick={() => openModal(confirmResetModalSlug)}>\n {t('general:resetPreferences')}\n </Button>\n </div>\n <ConfirmationModal\n body={t('general:resetPreferencesDescription')}\n confirmingLabel={t('general:resettingPreferences')}\n heading={t('general:resetPreferences')}\n modalSlug={confirmResetModalSlug}\n onConfirm={handleResetPreferences}\n />\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,EAAEC,iBAAiB,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,cAAc,QAAQ;AAC3E,YAAYC,EAAA,MAAQ;AACpB,SAASC,QAAQ,EAAEC,WAAW,QAAQ;AAEtC,MAAMC,qBAAA,GAAwB;AAE9B,OAAO,MAAMC,gBAAA,GAGRC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAC;IAAAa,QAAA;IAAAC;EAAA,IAAAH,EAAkB;EACtB;IAAAI;EAAA,IAAsBX,QAAA;EACtB;IAAAY;EAAA,IAAcX,cAAA;EAAA,IAAAY,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,IAAA;IAE6BG,EAAA,SAAAA,CAAA;MAAA,KACpCH,IAAA;QAAA;MAAA;MAIL,MAAAI,gBAAA,GAAyBZ,EAAA,CAAAa,SAAA;QAAAC,KAAA;QAAAC,KAAA;UAAAP,IAAA;YAAAQ,EAAA;cAAAC,MAAA,EAMPT,IAAA,CAAAQ;YAAA;UAAA;QAAA;MAAA;QAAAE,cAAA;MAAA,CAKO;MAAA;MAAA;QAIvB,MAAAC,GAAA,SAAkBC,KAAA,CAAM,GAAGb,QAAA,uBAA+BK,gBAAA,EAAkB;UAAAS,WAAA,EAC7D;UAAAC,OAAA;YAAA,gBAEK;UAAA;UAAAC,MAAA,EAEV;QAAA,CACV;QAEA,MAAAC,IAAA,SAAmBL,GAAA,CAAAK,IAAA,CAAQ;QAC3B,MAAAC,OAAA,GAAgBD,IAAA,CAAAC,OAAA;QAAY,IAExBN,GAAA,CAAAO,EAAA;UACF7B,KAAA,CAAA8B,OAAA,CAAcF,OAAA;QAAA;UAEd5B,KAAA,CAAA+B,KAAA,CAAYH,OAAA;QAAA;MAAA,SAAAI,EAAA;QAEPC,KAAA,CAAAA,IAAA,CAAAA,CAAA,CAAAA,EAAA;MAAA;IAAA;IAGXxB,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAE,IAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAvCA,MAAAyB,sBAAA,GAA+BpB,EAuCZ;EAAA,IAAAkB,EAAA;EAAA,IAAAvB,CAAA,QAAAG,SAAA;IAK4BoB,EAAA,GAAAA,CAAA,KAAMpB,SAAA,CAAAN,qBAAU;IAAAG,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAA,IAAA0B,EAAA;EAAA,IAAA1B,CAAA,QAAAyB,sBAAA,IAAAzB,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAuB,EAAA;IAF7DG,EAAA,GAAAC,KAAA,CAAAhC,QAAA;MAAAiC,QAAA,GACEC,IAAA,CAAC;QAAAD,QAAA,EACCC,IAAA,CAAAxC,MAAA;UAAAyC,WAAA,EAAoB;UAAAC,OAAA,EAAqBR,EAAgB;UAAAK,QAAA,EACtDxB,CAAA,CAAE;QAAA,C;UAGPyB,IAAA,CAAAvC,iBAAA;QAAA0C,IAAA,EACQ5B,CAAA,CAAE;QAAA6B,eAAA,EACS7B,CAAA,CAAE;QAAA8B,OAAA,EACV9B,CAAA,CAAE;QAAA+B,SAAA,EAAAtC,qBAAA;QAAAuC,SAAA,EAEAX;MAAA,C;;;;;;;;;SAXfC,E;CAeJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Button","ConfirmationModal","toast","useModal","useTranslation","formatApiURL","qs","Fragment","useCallback","confirmResetModalSlug","ResetPreferences","t0","$","apiRoute","user","openModal","t","t1","stringifiedQuery","stringify","depth","where","id","equals","addQueryPrefix","res","fetch","path","serverURL","undefined","credentials","headers","method","json","message","ok","success","error","t2","_err","handleResetPreferences","t3","_jsxs","children","_jsx","buttonStyle","onClick","body","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/views/Account/ResetPreferences/index.tsx"],"sourcesContent":["'use client'\nimport type { TypedUser } from 'payload'\n\nimport { Button, ConfirmationModal, toast, useModal, useTranslation } from '@payloadcms/ui'\nimport { formatApiURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback } from 'react'\n\nconst confirmResetModalSlug = 'confirm-reset-modal'\n\nexport const ResetPreferences: React.FC<{\n readonly apiRoute: string\n readonly user?: TypedUser\n}> = ({ apiRoute, user }) => {\n const { openModal } = useModal()\n const { t } = useTranslation()\n\n const handleResetPreferences = useCallback(async () => {\n if (!user) {\n return\n }\n\n const stringifiedQuery = qs.stringify(\n {\n depth: 0,\n where: {\n user: {\n id: {\n equals: user.id,\n },\n },\n },\n },\n { addQueryPrefix: true },\n )\n\n try {\n const res = await fetch(\n formatApiURL({\n apiRoute,\n path: `/payload-preferences${stringifiedQuery}`,\n serverURL: undefined,\n }),\n {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'DELETE',\n },\n )\n\n const json = await res.json()\n const message = json.message\n\n if (res.ok) {\n toast.success(message)\n } else {\n toast.error(message)\n }\n } catch (_err) {\n // swallow error\n }\n }, [apiRoute, user])\n\n return (\n <Fragment>\n <div>\n <Button buttonStyle=\"secondary\" onClick={() => openModal(confirmResetModalSlug)}>\n {t('general:resetPreferences')}\n </Button>\n </div>\n <ConfirmationModal\n body={t('general:resetPreferencesDescription')}\n confirmingLabel={t('general:resettingPreferences')}\n heading={t('general:resetPreferences')}\n modalSlug={confirmResetModalSlug}\n onConfirm={handleResetPreferences}\n />\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,EAAEC,iBAAiB,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,cAAc,QAAQ;AAC3E,SAASC,YAAY,QAAQ;AAC7B,YAAYC,EAAA,MAAQ;AACpB,SAASC,QAAQ,EAAEC,WAAW,QAAQ;AAEtC,MAAMC,qBAAA,GAAwB;AAE9B,OAAO,MAAMC,gBAAA,GAGRC,EAAA;EAAA,MAAAC,CAAA,GAAAb,EAAA;EAAC;IAAAc,QAAA;IAAAC;EAAA,IAAAH,EAAkB;EACtB;IAAAI;EAAA,IAAsBZ,QAAA;EACtB;IAAAa;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,IAAA;IAE6BG,EAAA,SAAAA,CAAA;MAAA,KACpCH,IAAA;QAAA;MAAA;MAIL,MAAAI,gBAAA,GAAyBZ,EAAA,CAAAa,SAAA;QAAAC,KAAA;QAAAC,KAAA;UAAAP,IAAA;YAAAQ,EAAA;cAAAC,MAAA,EAMPT,IAAA,CAAAQ;YAAA;UAAA;QAAA;MAAA;QAAAE,cAAA;MAAA,CAKO;MAAA;MAAA;QAIvB,MAAAC,GAAA,SAAkBC,KAAA,CAChBrB,YAAA;UAAAQ,QAAA;UAAAc,IAAA,EAEQ,uBAAuBT,gBAAA,EAAkB;UAAAU,SAAA,EAAAC;QAAA,CAEjD;UAAAC,WAAA,EAEe;UAAAC,OAAA;YAAA,gBAEK;UAAA;UAAAC,MAAA,EAEV;QAAA,CACV;QAGF,MAAAC,IAAA,SAAmBR,GAAA,CAAAQ,IAAA,CAAQ;QAC3B,MAAAC,OAAA,GAAgBD,IAAA,CAAAC,OAAA;QAAY,IAExBT,GAAA,CAAAU,EAAA;UACFjC,KAAA,CAAAkC,OAAA,CAAcF,OAAA;QAAA;UAEdhC,KAAA,CAAAmC,KAAA,CAAYH,OAAA;QAAA;MAAA,SAAAI,EAAA;QAEPC,KAAA,CAAAA,IAAA,CAAAA,CAAA,CAAAA,EAAA;MAAA;IAAA;IAGX3B,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAE,IAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EA9CA,MAAA4B,sBAAA,GAA+BvB,EA8CZ;EAAA,IAAAqB,EAAA;EAAA,IAAA1B,CAAA,QAAAG,SAAA;IAK4BuB,EAAA,GAAAA,CAAA,KAAMvB,SAAA,CAAAN,qBAAU;IAAAG,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAA,IAAA6B,EAAA;EAAA,IAAA7B,CAAA,QAAA4B,sBAAA,IAAA5B,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAA0B,EAAA;IAF7DG,EAAA,GAAAC,KAAA,CAAAnC,QAAA;MAAAoC,QAAA,GACEC,IAAA,CAAC;QAAAD,QAAA,EACCC,IAAA,CAAA5C,MAAA;UAAA6C,WAAA,EAAoB;UAAAC,OAAA,EAAqBR,EAAgB;UAAAK,QAAA,EACtD3B,CAAA,CAAE;QAAA,C;UAGP4B,IAAA,CAAA3C,iBAAA;QAAA8C,IAAA,EACQ/B,CAAA,CAAE;QAAAgC,eAAA,EACShC,CAAA,CAAE;QAAAiC,OAAA,EACVjC,CAAA,CAAE;QAAAkC,SAAA,EAAAzC,qBAAA;QAAA0C,SAAA,EAEAX;MAAA,C;;;;;;;;;SAXfC,E;CAeJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAehB,OAAO,KAAoB,MAAM,OAAO,CAAA;AAExC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAoGA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAgBhB,OAAO,KAAoB,MAAM,OAAO,CAAA;AAExC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAwGA,CAAA"}
@@ -3,6 +3,7 @@
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { ConfirmPasswordField, EmailAndUsernameFields, Form, FormSubmit, PasswordField, RenderFields, useAuth, useConfig, useServerFunctions, useTranslation } from '@payloadcms/ui';
5
5
  import { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared';
6
+ import { formatApiURL } from 'payload/shared';
6
7
  import React, { useEffect } from 'react';
7
8
  export const CreateFirstUserClient = ({
8
9
  docPermissions,
@@ -64,7 +65,11 @@ export const CreateFirstUserClient = ({
64
65
  };
65
66
  }, []);
66
67
  return /*#__PURE__*/_jsxs(Form, {
67
- action: `${serverURL}${apiRoute}/${userSlug}/first-register`,
68
+ action: formatApiURL({
69
+ apiRoute,
70
+ path: `/${userSlug}/first-register`,
71
+ serverURL
72
+ }),
68
73
  initialState: {
69
74
  ...initialState,
70
75
  'confirm-password': {
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","serverURL","getEntityConfig","getFormState","t","setUser","abortOnChangeRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","submitted","controller","response","operation","schemaPath","signal","skipValidation","current","state","handleFirstRegister","data","abortOnChange","_jsxs","action","valid","value","method","onSuccess","redirect","validationOperation","_jsx","className","readOnly","autoComplete","field","name","label","required","path","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n DocumentPreferences,\n FormState,\n LoginWithUsernameOptions,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n EmailAndUsernameFields,\n Form,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared'\nimport React, { useEffect } from 'react'\n\nexport const CreateFirstUserClient: React.FC<{\n docPermissions: SanitizedDocumentPermissions\n docPreferences: DocumentPreferences\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ docPermissions, docPreferences, initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const response = await getFormState({\n collectionSlug: userSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath: userSlug,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n if (response && response.state) {\n return response.state\n }\n },\n [userSlug, getFormState, docPermissions, docPreferences],\n )\n\n const handleFirstRegister = (data: UserWithToken) => {\n setUser(data)\n }\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={{\n ...initialState,\n 'confirm-password': {\n ...initialState['confirm-password'],\n valid: initialState['confirm-password']['valid'] || false,\n value: initialState['confirm-password']['value'] || '',\n },\n }}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <EmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n t={t}\n />\n <PasswordField\n autoComplete=\"off\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n path=\"password\"\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={userSlug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","formatApiURL","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","serverURL","getEntityConfig","getFormState","t","setUser","abortOnChangeRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","submitted","controller","response","operation","schemaPath","signal","skipValidation","current","state","handleFirstRegister","data","abortOnChange","_jsxs","action","path","valid","value","method","onSuccess","redirect","validationOperation","_jsx","className","readOnly","autoComplete","field","name","label","required","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n DocumentPreferences,\n FormState,\n LoginWithUsernameOptions,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n EmailAndUsernameFields,\n Form,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared'\nimport { formatApiURL } from 'payload/shared'\nimport React, { useEffect } from 'react'\n\nexport const CreateFirstUserClient: React.FC<{\n docPermissions: SanitizedDocumentPermissions\n docPreferences: DocumentPreferences\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ docPermissions, docPreferences, initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const response = await getFormState({\n collectionSlug: userSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath: userSlug,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n if (response && response.state) {\n return response.state\n }\n },\n [userSlug, getFormState, docPermissions, docPreferences],\n )\n\n const handleFirstRegister = (data: UserWithToken) => {\n setUser(data)\n }\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <Form\n action={formatApiURL({\n apiRoute,\n path: `/${userSlug}/first-register`,\n serverURL,\n })}\n initialState={{\n ...initialState,\n 'confirm-password': {\n ...initialState['confirm-password'],\n valid: initialState['confirm-password']['valid'] || false,\n value: initialState['confirm-password']['value'] || '',\n },\n }}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <EmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n t={t}\n />\n <PasswordField\n autoComplete=\"off\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n path=\"password\"\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={userSlug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAe,MAAM,SAAS,CAAA;AAOxF,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;CAC7C,GAAG,wBAAwB,CAAA;AAE5B,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,4BAA4B,CAAA;AAE9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,qBA+J/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAe,MAAM,SAAS,CAAA;AAOxF,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;CAC7C,GAAG,wBAAwB,CAAA;AAE5B,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,4BAA4B,CAAA;AAE9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,qBAsK/D"}
@@ -26,7 +26,8 @@ export function DefaultDashboard(props) {
26
26
  },
27
27
  routes: {
28
28
  admin: adminRoute
29
- }
29
+ },
30
+ serverURL
30
31
  }
31
32
  },
32
33
  payload,
@@ -83,11 +84,13 @@ export function DefaultDashboard(props) {
83
84
  });
84
85
  href = formatAdminURL({
85
86
  adminRoute,
86
- path: `/collections/${slug}`
87
+ path: `/collections/${slug}`,
88
+ serverURL
87
89
  });
88
90
  createHREF = formatAdminURL({
89
91
  adminRoute,
90
- path: `/collections/${slug}/create`
92
+ path: `/collections/${slug}/create`,
93
+ serverURL
91
94
  });
92
95
  hasCreatePermission = permissions?.collections?.[slug]?.create;
93
96
  }
@@ -98,7 +101,8 @@ export function DefaultDashboard(props) {
98
101
  });
99
102
  href = formatAdminURL({
100
103
  adminRoute,
101
- path: `/globals/${slug}`
104
+ path: `/globals/${slug}`,
105
+ serverURL
102
106
  });
103
107
  // Find the lock status for the global
104
108
  const globalLockData = globalData.find(global => global.slug === slug);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { AdminViewServerPropsOnly, ClientUser, Locale, ServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n navGroups?: ReturnType<typeof groupNavItems>\n} & AdminViewServerPropsOnly\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const {\n globalData,\n i18n,\n i18n: { t },\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\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\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\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 </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","serverURL","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { AdminViewServerPropsOnly, ClientUser, Locale, ServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n navGroups?: ReturnType<typeof groupNavItems>\n} & AdminViewServerPropsOnly\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const {\n globalData,\n i18n,\n i18n: { t },\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n serverURL,\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\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\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}`,\n serverURL,\n })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n serverURL,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n serverURL,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\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 </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6PAgBxB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAkXA,CAAA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,oBAAoB,+QAe7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6PAgBxB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAsXA,CAAA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,oBAAoB,+QAe7D"}
@@ -6,7 +6,7 @@ import { isEditing as getIsEditing } from '@payloadcms/ui/shared';
6
6
  import { buildFormState } from '@payloadcms/ui/utilities/buildFormState';
7
7
  import { notFound, redirect } from 'next/navigation.js';
8
8
  import { isolateObjectProperty, logError } from 'payload';
9
- import { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared';
9
+ import { formatAdminURL, formatApiURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared';
10
10
  import React from 'react';
11
11
  import { DocumentHeader } from '../../elements/DocumentHeader/index.js';
12
12
  import { getPreferences } from '../../utilities/getPreferences.js';
@@ -214,7 +214,11 @@ export const renderDocument = async ({
214
214
  formattedParams.append('locale', locale.code);
215
215
  }
216
216
  const apiQueryParams = `?${formattedParams.toString()}`;
217
- const apiURL = collectionSlug ? `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}` : globalSlug ? `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}` : '';
217
+ const apiURL = formatApiURL({
218
+ apiRoute,
219
+ path: collectionSlug ? `/${collectionSlug}/${idFromArgs}${apiQueryParams}` : globalSlug ? `/${globalSlug}${apiQueryParams}` : '',
220
+ serverURL
221
+ });
218
222
  let View = null;
219
223
  let showHeader = true;
220
224
  const RootViewOverride = collectionConfig?.admin?.components?.views?.edit?.root && 'Component' in collectionConfig.admin.components.views.edit.root ? collectionConfig?.admin?.components?.views?.edit?.root?.Component : globalConfig?.admin?.components?.views?.edit?.root && 'Component' in globalConfig.admin.components.views.edit.root ? globalConfig?.admin?.components?.views?.edit?.root?.Component : null;