@payloadcms/next 3.0.0-beta.77 → 3.0.0-beta.78

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.
@@ -38,19 +38,19 @@
38
38
 
39
39
  --gutter-h: #{base(3)};
40
40
  --spacing-view-bottom: var(--gutter-h);
41
- --app-header-height: calc(var(--base) * 3);
42
- --doc-controls-height: calc(var(--base) * 3);
41
+ --doc-controls-height: calc(var(--base) * 2.8);
42
+ --app-header-height: calc(var(--base) * 2.8);
43
43
  --nav-width: 275px;
44
44
  --nav-trans-time: 150ms;
45
45
 
46
46
  @include mid-break {
47
47
  --gutter-h: #{base(2)};
48
- --app-header-height: calc(var(--base) * 2);
49
- --doc-controls-height: calc(var(--base) * 2.5);
48
+ --app-header-height: calc(var(--base) * 2.4);
49
+ --doc-controls-height: calc(var(--base) * 2.4);
50
50
  }
51
51
 
52
52
  @include small-break {
53
- --gutter-h: #{base(0.5)};
53
+ --gutter-h: #{base(0.8)};
54
54
  --spacing-view-bottom: calc(var(--base) * 2);
55
55
  --nav-width: 100vw;
56
56
  }
@@ -96,6 +96,7 @@
96
96
  font-size: $baseline-body-size;
97
97
  line-height: $baseline-px;
98
98
  font-weight: normal;
99
+ font-family: var(--font-body);
99
100
  }
100
101
 
101
102
  %code {
@@ -111,8 +111,7 @@
111
111
  position: relative;
112
112
  width: 100%;
113
113
  top: 0;
114
- padding-right: var(--gutter-h);
115
- padding-left: var(--gutter-h);
114
+ padding-inline-end: var(--gutter-h);
116
115
  }
117
116
  }
118
117
  }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const AccountClient: React.FC;
3
+ //# sourceMappingURL=index.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAgBjC,CAAA"}
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { useStepNav, useTranslation } from '@payloadcms/ui';
3
+ import React from 'react';
4
+ export const AccountClient = ()=>{
5
+ const { setStepNav } = useStepNav();
6
+ const { t } = useTranslation();
7
+ React.useEffect(()=>{
8
+ const nav = [];
9
+ nav.push({
10
+ label: t('authentication:account'),
11
+ url: '/account'
12
+ });
13
+ setStepNav(nav);
14
+ }, [
15
+ setStepNav,
16
+ t
17
+ ]);
18
+ return null;
19
+ };
20
+
21
+ //# sourceMappingURL=index.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/views/Account/index.client.tsx"],"sourcesContent":["'use client'\nimport { type StepNavItem, useStepNav, useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nexport const AccountClient: React.FC = () => {\n const { setStepNav } = useStepNav()\n const { t } = useTranslation()\n\n React.useEffect(() => {\n const nav: StepNavItem[] = []\n\n nav.push({\n label: t('authentication:account'),\n url: '/account',\n })\n\n setStepNav(nav)\n }, [setStepNav, t])\n\n return null\n}\n"],"names":["useStepNav","useTranslation","React","AccountClient","setStepNav","t","useEffect","nav","push","label","url"],"mappings":"AAAA;AACA,SAA2BA,UAAU,EAAEC,cAAc,QAAQ,iBAAgB;AAC7E,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,gBAA0B;IACrC,MAAM,EAAEC,UAAU,EAAE,GAAGJ;IACvB,MAAM,EAAEK,CAAC,EAAE,GAAGJ;IAEdC,MAAMI,SAAS,CAAC;QACd,MAAMC,MAAqB,EAAE;QAE7BA,IAAIC,IAAI,CAAC;YACPC,OAAOJ,EAAE;YACTK,KAAK;QACP;QAEAN,WAAWG;IACb,GAAG;QAACH;QAAYC;KAAE;IAElB,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,SAAS,CAAA;AAKtE,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2F5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,SAAS,CAAA;AAKtE,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8F5C,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DocumentInfoProvider, HydrateAuthProvider } from '@payloadcms/ui';
2
+ import { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@payloadcms/ui';
3
3
  import { RenderCustomComponent } from '@payloadcms/ui/shared';
4
4
  import { notFound } from 'next/navigation.js';
5
5
  import React from 'react';
@@ -8,6 +8,7 @@ import { getDocumentData } from '../Document/getDocumentData.js';
8
8
  import { getDocumentPermissions } from '../Document/getDocumentPermissions.js';
9
9
  import { EditView } from '../Edit/index.js';
10
10
  import { Settings } from './Settings/index.js';
11
+ import { AccountClient } from './index.client.js';
11
12
  export { generateAccountMetadata } from './meta.js';
12
13
  export const Account = async ({ initPageResult, params, searchParams })=>{
13
14
  const { languageOptions, locale, permissions, req, req: { i18n, payload, payload: { config }, user } } = initPageResult;
@@ -32,7 +33,7 @@ export const Account = async ({ initPageResult, params, searchParams })=>{
32
33
  routeSegments: [],
33
34
  searchParams
34
35
  };
35
- return /*#__PURE__*/ _jsxs(DocumentInfoProvider, {
36
+ return /*#__PURE__*/ _jsx(DocumentInfoProvider, {
36
37
  AfterFields: /*#__PURE__*/ _jsx(Settings, {
37
38
  i18n: i18n,
38
39
  languageOptions: languageOptions
@@ -46,32 +47,36 @@ export const Account = async ({ initPageResult, params, searchParams })=>{
46
47
  initialData: data,
47
48
  initialState: formState,
48
49
  isEditing: true,
49
- children: [
50
- /*#__PURE__*/ _jsx(DocumentHeader, {
51
- collectionConfig: collectionConfig,
52
- config: payload.config,
53
- hideTabs: true,
54
- i18n: i18n,
55
- permissions: permissions
56
- }),
57
- /*#__PURE__*/ _jsx(HydrateAuthProvider, {
58
- permissions: permissions
59
- }),
60
- /*#__PURE__*/ _jsx(RenderCustomComponent, {
61
- CustomComponent: typeof CustomAccountComponent === 'function' ? CustomAccountComponent : undefined,
62
- DefaultComponent: EditView,
63
- componentProps: viewComponentProps,
64
- serverOnlyProps: {
65
- i18n,
66
- locale,
67
- params,
68
- payload,
69
- permissions,
70
- searchParams,
71
- user
72
- }
73
- })
74
- ]
50
+ children: /*#__PURE__*/ _jsxs(EditDepthProvider, {
51
+ depth: 1,
52
+ children: [
53
+ /*#__PURE__*/ _jsx(DocumentHeader, {
54
+ collectionConfig: collectionConfig,
55
+ config: payload.config,
56
+ hideTabs: true,
57
+ i18n: i18n,
58
+ permissions: permissions
59
+ }),
60
+ /*#__PURE__*/ _jsx(HydrateAuthProvider, {
61
+ permissions: permissions
62
+ }),
63
+ /*#__PURE__*/ _jsx(RenderCustomComponent, {
64
+ CustomComponent: typeof CustomAccountComponent === 'function' ? CustomAccountComponent : undefined,
65
+ DefaultComponent: EditView,
66
+ componentProps: viewComponentProps,
67
+ serverOnlyProps: {
68
+ i18n,
69
+ locale,
70
+ params,
71
+ payload,
72
+ permissions,
73
+ searchParams,
74
+ user
75
+ }
76
+ }),
77
+ /*#__PURE__*/ _jsx(AccountClient, {})
78
+ ]
79
+ })
75
80
  });
76
81
  }
77
82
  return notFound();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewProps, ServerSideEditViewProps } from 'payload'\n\nimport { DocumentInfoProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderCustomComponent } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { EditView } from '../Edit/index.js'\nimport { Settings } from './Settings/index.js'\n\nexport { generateAccountMetadata } from './meta.js'\n\nexport const Account: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n languageOptions,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { components: { views: { Account: CustomAccountComponent } = {} } = {}, user: userSlug },\n routes: { api },\n serverURL,\n } = config\n\n const collectionConfig = config.collections.find((collection) => collection.slug === userSlug)\n\n if (collectionConfig && user?.id) {\n const { docPermissions, hasPublishPermission, hasSavePermission } =\n await getDocumentPermissions({\n id: user.id,\n collectionConfig,\n data: user,\n req,\n })\n\n const { data, formState } = await getDocumentData({\n id: user.id,\n collectionConfig,\n locale,\n req,\n })\n\n const viewComponentProps: ServerSideEditViewProps = {\n initPageResult,\n params,\n routeSegments: [],\n searchParams,\n }\n\n return (\n <DocumentInfoProvider\n AfterFields={<Settings i18n={i18n} languageOptions={languageOptions} />}\n apiURL={`${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`}\n collectionSlug={userSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={user?.id.toString()}\n initialData={data}\n initialState={formState}\n isEditing\n >\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n hideTabs\n i18n={i18n}\n permissions={permissions}\n />\n <HydrateAuthProvider permissions={permissions} />\n <RenderCustomComponent\n CustomComponent={\n typeof CustomAccountComponent === 'function' ? CustomAccountComponent : undefined\n }\n DefaultComponent={EditView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </DocumentInfoProvider>\n )\n }\n\n return notFound()\n}\n"],"names":["DocumentInfoProvider","HydrateAuthProvider","RenderCustomComponent","notFound","React","DocumentHeader","getDocumentData","getDocumentPermissions","EditView","Settings","generateAccountMetadata","Account","initPageResult","params","searchParams","languageOptions","locale","permissions","req","i18n","payload","config","user","admin","components","views","CustomAccountComponent","userSlug","routes","api","serverURL","collectionConfig","collections","find","collection","slug","id","docPermissions","hasPublishPermission","hasSavePermission","data","formState","viewComponentProps","routeSegments","AfterFields","apiURL","collectionSlug","toString","initialData","initialState","isEditing","hideTabs","CustomComponent","undefined","DefaultComponent","componentProps","serverOnlyProps"],"mappings":";AAEA,SAASA,oBAAoB,EAAEC,mBAAmB,QAAQ,iBAAgB;AAC1E,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,cAAc,QAAQ,yCAAwC;AACvE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,sBAAsB,QAAQ,wCAAuC;AAC9E,SAASC,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,QAAQ,QAAQ,sBAAqB;AAE9C,SAASC,uBAAuB,QAAQ,YAAW;AAEnD,OAAO,MAAMC,UAAoC,OAAO,EACtDC,cAAc,EACdC,MAAM,EACNC,YAAY,EACb;IACC,MAAM,EACJC,eAAe,EACfC,MAAM,EACNC,WAAW,EACXC,GAAG,EACHA,KAAK,EACHC,IAAI,EACJC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGV;IAEJ,MAAM,EACJW,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAEd,SAASe,sBAAsB,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EAC/FC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGT;IAEJ,MAAMU,mBAAmBV,OAAOW,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKR;IAErF,IAAII,oBAAoBT,MAAMc,IAAI;QAChC,MAAM,EAAEC,cAAc,EAAEC,oBAAoB,EAAEC,iBAAiB,EAAE,GAC/D,MAAMhC,uBAAuB;YAC3B6B,IAAId,KAAKc,EAAE;YACXL;YACAS,MAAMlB;YACNJ;QACF;QAEF,MAAM,EAAEsB,IAAI,EAAEC,SAAS,EAAE,GAAG,MAAMnC,gBAAgB;YAChD8B,IAAId,KAAKc,EAAE;YACXL;YACAf;YACAE;QACF;QAEA,MAAMwB,qBAA8C;YAClD9B;YACAC;YACA8B,eAAe,EAAE;YACjB7B;QACF;QAEA,qBACE,MAACd;YACC4C,2BAAa,KAACnC;gBAASU,MAAMA;gBAAMJ,iBAAiBA;;YACpD8B,QAAQ,CAAC,EAAEf,UAAU,EAAED,IAAI,CAAC,EAAEF,SAAS,EAAEL,MAAMc,KAAK,CAAC,CAAC,EAAEd,KAAKc,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YACxEU,gBAAgBnB;YAChBU,gBAAgBA;YAChBC,sBAAsBA;YACtBC,mBAAmBA;YACnBH,IAAId,MAAMc,GAAGW;YACbC,aAAaR;YACbS,cAAcR;YACdS,SAAS;;8BAET,KAAC7C;oBACC0B,kBAAkBA;oBAClBV,QAAQD,QAAQC,MAAM;oBACtB8B,QAAQ;oBACRhC,MAAMA;oBACNF,aAAaA;;8BAEf,KAAChB;oBAAoBgB,aAAaA;;8BAClC,KAACf;oBACCkD,iBACE,OAAO1B,2BAA2B,aAAaA,yBAAyB2B;oBAE1EC,kBAAkB9C;oBAClB+C,gBAAgBb;oBAChBc,iBAAiB;wBACfrC;wBACAH;wBACAH;wBACAO;wBACAH;wBACAH;wBACAQ;oBACF;;;;IAIR;IAEA,OAAOnB;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewProps, ServerSideEditViewProps } from 'payload'\n\nimport { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderCustomComponent } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { EditView } from '../Edit/index.js'\nimport { Settings } from './Settings/index.js'\nimport { AccountClient } from './index.client.js'\n\nexport { generateAccountMetadata } from './meta.js'\n\nexport const Account: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n languageOptions,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { components: { views: { Account: CustomAccountComponent } = {} } = {}, user: userSlug },\n routes: { api },\n serverURL,\n } = config\n\n const collectionConfig = config.collections.find((collection) => collection.slug === userSlug)\n\n if (collectionConfig && user?.id) {\n const { docPermissions, hasPublishPermission, hasSavePermission } =\n await getDocumentPermissions({\n id: user.id,\n collectionConfig,\n data: user,\n req,\n })\n\n const { data, formState } = await getDocumentData({\n id: user.id,\n collectionConfig,\n locale,\n req,\n })\n\n const viewComponentProps: ServerSideEditViewProps = {\n initPageResult,\n params,\n routeSegments: [],\n searchParams,\n }\n\n return (\n <DocumentInfoProvider\n AfterFields={<Settings i18n={i18n} languageOptions={languageOptions} />}\n apiURL={`${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`}\n collectionSlug={userSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={user?.id.toString()}\n initialData={data}\n initialState={formState}\n isEditing\n >\n <EditDepthProvider depth={1}>\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n hideTabs\n i18n={i18n}\n permissions={permissions}\n />\n <HydrateAuthProvider permissions={permissions} />\n <RenderCustomComponent\n CustomComponent={\n typeof CustomAccountComponent === 'function' ? CustomAccountComponent : undefined\n }\n DefaultComponent={EditView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n <AccountClient />\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n }\n\n return notFound()\n}\n"],"names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","RenderCustomComponent","notFound","React","DocumentHeader","getDocumentData","getDocumentPermissions","EditView","Settings","AccountClient","generateAccountMetadata","Account","initPageResult","params","searchParams","languageOptions","locale","permissions","req","i18n","payload","config","user","admin","components","views","CustomAccountComponent","userSlug","routes","api","serverURL","collectionConfig","collections","find","collection","slug","id","docPermissions","hasPublishPermission","hasSavePermission","data","formState","viewComponentProps","routeSegments","AfterFields","apiURL","collectionSlug","toString","initialData","initialState","isEditing","depth","hideTabs","CustomComponent","undefined","DefaultComponent","componentProps","serverOnlyProps"],"mappings":";AAEA,SAASA,oBAAoB,EAAEC,iBAAiB,EAAEC,mBAAmB,QAAQ,iBAAgB;AAC7F,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,cAAc,QAAQ,yCAAwC;AACvE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,sBAAsB,QAAQ,wCAAuC;AAC9E,SAASC,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,QAAQ,QAAQ,sBAAqB;AAC9C,SAASC,aAAa,QAAQ,oBAAmB;AAEjD,SAASC,uBAAuB,QAAQ,YAAW;AAEnD,OAAO,MAAMC,UAAoC,OAAO,EACtDC,cAAc,EACdC,MAAM,EACNC,YAAY,EACb;IACC,MAAM,EACJC,eAAe,EACfC,MAAM,EACNC,WAAW,EACXC,GAAG,EACHA,KAAK,EACHC,IAAI,EACJC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGV;IAEJ,MAAM,EACJW,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAEd,SAASe,sBAAsB,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EAC/FC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGT;IAEJ,MAAMU,mBAAmBV,OAAOW,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKR;IAErF,IAAII,oBAAoBT,MAAMc,IAAI;QAChC,MAAM,EAAEC,cAAc,EAAEC,oBAAoB,EAAEC,iBAAiB,EAAE,GAC/D,MAAMjC,uBAAuB;YAC3B8B,IAAId,KAAKc,EAAE;YACXL;YACAS,MAAMlB;YACNJ;QACF;QAEF,MAAM,EAAEsB,IAAI,EAAEC,SAAS,EAAE,GAAG,MAAMpC,gBAAgB;YAChD+B,IAAId,KAAKc,EAAE;YACXL;YACAf;YACAE;QACF;QAEA,MAAMwB,qBAA8C;YAClD9B;YACAC;YACA8B,eAAe,EAAE;YACjB7B;QACF;QAEA,qBACE,KAAChB;YACC8C,2BAAa,KAACpC;gBAASW,MAAMA;gBAAMJ,iBAAiBA;;YACpD8B,QAAQ,CAAC,EAAEf,UAAU,EAAED,IAAI,CAAC,EAAEF,SAAS,EAAEL,MAAMc,KAAK,CAAC,CAAC,EAAEd,KAAKc,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YACxEU,gBAAgBnB;YAChBU,gBAAgBA;YAChBC,sBAAsBA;YACtBC,mBAAmBA;YACnBH,IAAId,MAAMc,GAAGW;YACbC,aAAaR;YACbS,cAAcR;YACdS,SAAS;sBAET,cAAA,MAACnD;gBAAkBoD,OAAO;;kCACxB,KAAC/C;wBACC2B,kBAAkBA;wBAClBV,QAAQD,QAAQC,MAAM;wBACtB+B,QAAQ;wBACRjC,MAAMA;wBACNF,aAAaA;;kCAEf,KAACjB;wBAAoBiB,aAAaA;;kCAClC,KAAChB;wBACCoD,iBACE,OAAO3B,2BAA2B,aAAaA,yBAAyB4B;wBAE1EC,kBAAkBhD;wBAClBiD,gBAAgBd;wBAChBe,iBAAiB;4BACftC;4BACAH;4BACAH;4BACAO;4BACAH;4BACAH;4BACAQ;wBACF;;kCAEF,KAACb;;;;IAIT;IAEA,OAAOP;AACT,EAAC"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export declare const APIKey: React.FC<{
3
- enabled: boolean;
4
- readOnly?: boolean;
3
+ readonly enabled: boolean;
4
+ readonly readOnly?: boolean;
5
5
  }>;
6
6
  //# sourceMappingURL=APIKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAgGrE,CAAA"}
1
+ {"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAuHvF,CAAA"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { CopyToClipboard, FieldLabel, GenerateConfirmation, useConfig, useField, useFormFields, useTranslation } from '@payloadcms/ui';
3
+ import { getTranslation } from '@payloadcms/translations';
4
+ import { CopyToClipboard, FieldLabel, GenerateConfirmation, useComponentMap, useConfig, useDocumentInfo, useField, useFormFields, useTranslation } from '@payloadcms/ui';
4
5
  import { text } from 'payload/shared';
5
6
  import React, { useEffect, useMemo, useState } from 'react';
6
7
  import { v4 as uuidv4 } from 'uuid';
@@ -10,9 +11,15 @@ const fieldBaseClass = 'field-type';
10
11
  export const APIKey = ({ enabled, readOnly })=>{
11
12
  const [initialAPIKey] = useState(uuidv4());
12
13
  const [highlightedField, setHighlightedField] = useState(false);
13
- const { t } = useTranslation();
14
+ const { i18n, t } = useTranslation();
14
15
  const config = useConfig();
15
16
  const apiKey = useFormFields(([fields])=>fields && fields[path] || null);
17
+ const { collectionSlug, docPermissions } = useDocumentInfo();
18
+ const { getFieldMap } = useComponentMap();
19
+ const fieldMap = getFieldMap({
20
+ collectionSlug
21
+ });
22
+ const apiKeyField = fieldMap.find((field)=>'name' in field && field.name === 'apiKey');
16
23
  const validate = (val)=>text(val, {
17
24
  name: 'apiKey',
18
25
  type: 'text',
@@ -31,19 +38,39 @@ export const APIKey = ({ enabled, readOnly })=>{
31
38
  siblingData: {}
32
39
  });
33
40
  const apiKeyValue = apiKey?.value;
34
- const APIKeyLabel = useMemo(()=>/*#__PURE__*/ _jsxs("div", {
41
+ const apiKeyLabel = useMemo(()=>{
42
+ let label = 'API Key';
43
+ if (apiKeyField && apiKeyField.fieldComponentProps.label) {
44
+ label = apiKeyField.fieldComponentProps.label;
45
+ }
46
+ return getTranslation(label, i18n);
47
+ }, [
48
+ apiKeyField,
49
+ i18n
50
+ ]);
51
+ const APIKeyLabelComponent = useMemo(()=>{
52
+ return /*#__PURE__*/ _jsxs("div", {
35
53
  className: `${baseClass}__label`,
36
54
  children: [
37
55
  /*#__PURE__*/ _jsx("span", {
38
- children: "API Key"
56
+ children: apiKeyLabel
39
57
  }),
40
58
  /*#__PURE__*/ _jsx(CopyToClipboard, {
41
59
  value: apiKeyValue
42
60
  })
43
61
  ]
44
- }), [
62
+ });
63
+ }, [
64
+ apiKeyLabel,
45
65
  apiKeyValue
46
66
  ]);
67
+ const canUpdateAPIKey = useMemo(()=>{
68
+ if (docPermissions && docPermissions?.fields?.apiKey) {
69
+ return docPermissions.fields.apiKey.update.permission;
70
+ }
71
+ }, [
72
+ docPermissions
73
+ ]);
47
74
  const fieldType = useField({
48
75
  path: 'apiKey',
49
76
  validate
@@ -92,11 +119,11 @@ export const APIKey = ({ enabled, readOnly })=>{
92
119
  ].filter(Boolean).join(' '),
93
120
  children: [
94
121
  /*#__PURE__*/ _jsx(FieldLabel, {
95
- CustomLabel: APIKeyLabel,
122
+ CustomLabel: APIKeyLabelComponent,
96
123
  htmlFor: path
97
124
  }),
98
125
  /*#__PURE__*/ _jsx("input", {
99
- "aria-label": "API Key",
126
+ "aria-label": apiKeyLabel,
100
127
  className: highlightedField ? 'highlight' : undefined,
101
128
  disabled: true,
102
129
  id: "apiKey",
@@ -106,7 +133,7 @@ export const APIKey = ({ enabled, readOnly })=>{
106
133
  })
107
134
  ]
108
135
  }),
109
- !readOnly && /*#__PURE__*/ _jsx(GenerateConfirmation, {
136
+ !readOnly && canUpdateAPIKey && /*#__PURE__*/ _jsx(GenerateConfirmation, {
110
137
  highlightField: highlightField,
111
138
  setKey: ()=>setValue(uuidv4())
112
139
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\n useConfig,\n useField,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ enabled: boolean; readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { t } = useTranslation()\n const config = useConfig()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>API Key</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyValue],\n )\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled && apiKeyValue) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n <FieldLabel CustomLabel={APIKeyLabel} htmlFor={path} />\n <input\n aria-label=\"API Key\"\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\n )\n}\n"],"names":["CopyToClipboard","FieldLabel","GenerateConfirmation","useConfig","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","t","config","apiKey","fields","validate","val","name","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","APIKeyLabel","div","className","span","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","CustomLabel","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"AAAA;;AAGA,SACEA,eAAe,EACfC,UAAU,EACVC,oBAAoB,EACpBC,SAAS,EACTC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,iBAAgB;AACvB,SAASC,IAAI,QAAQ,iBAAgB;AACrC,OAAOC,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAC3D,SAASC,MAAMC,MAAM,QAAQ,OAAM;AAEnC,MAAMC,OAAO;AACb,MAAMC,YAAY;AAClB,MAAMC,iBAAiB;AAEvB,OAAO,MAAMC,SAA6D,CAAC,EACzEC,OAAO,EACPC,QAAQ,EACT;IACC,MAAM,CAACC,cAAc,GAAGT,SAASE;IACjC,MAAM,CAACQ,kBAAkBC,oBAAoB,GAAGX,SAAS;IACzD,MAAM,EAAEY,CAAC,EAAE,GAAGjB;IACd,MAAMkB,SAASrB;IAEf,MAAMsB,SAASpB,cAAc,CAAC,CAACqB,OAAO,GAAK,AAACA,UAAUA,MAAM,CAACZ,KAAK,IAAK;IAEvE,MAAMa,WAAW,CAACC,MAChBrB,KAAKqB,KAAK;YACRC,MAAM;YACNC,MAAM;YACNC,MAAM,CAAC;YACPC,WAAW;YACXC,WAAW;YACXC,aAAa;gBAAER,QAAQ,CAAC;YAAE;YAC1BS,KAAK;gBACHC,SAAS;oBACPZ;gBACF;gBACAD;YACF;YACAc,aAAa,CAAC;QAChB;IAEF,MAAMC,cAAcb,QAAQc;IAE5B,MAAMC,cAAc9B,QAClB,kBACE,MAAC+B;YAAIC,WAAW,CAAC,EAAE3B,UAAU,OAAO,CAAC;;8BACnC,KAAC4B;8BAAK;;8BACN,KAAC3C;oBAAgBuC,OAAOD;;;YAG5B;QAACA;KAAY;IAGf,MAAMM,YAAYxC,SAAS;QACzBU,MAAM;QACNa;IACF;IAEA,MAAMkB,iBAAiB;QACrB,IAAIxB,kBAAkB;YACpBC,oBAAoB;QACtB;QACAwB,WAAW;YACTxB,oBAAoB;QACtB,GAAG;IACL;IAEA,MAAM,EAAEyB,QAAQ,EAAER,KAAK,EAAE,GAAGK;IAE5BnC,UAAU;QACR,IAAI,CAAC6B,eAAepB,SAAS;YAC3B6B,SAAS3B;QACX;QACA,IAAI,CAACF,WAAWoB,aAAa;YAC3BS,SAAS;QACX;IACF,GAAG;QAACT;QAAapB;QAAS6B;QAAU3B;KAAc;IAElDX,UAAU;QACR,IAAIY,kBAAkB;YACpByB,WAAW;gBACTxB,oBAAoB;YACtB,GAAG;QACL;IACF,GAAG;QAACD;KAAiB;IAErB,IAAI,CAACH,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,MAACV,MAAMwC,QAAQ;;0BACb,MAACP;gBAAIC,WAAW;oBAAC1B;oBAAgB;oBAAW;iBAAY,CAACiC,MAAM,CAACC,SAASC,IAAI,CAAC;;kCAC5E,KAAClD;wBAAWmD,aAAaZ;wBAAaa,SAASvC;;kCAC/C,KAACwC;wBACCC,cAAW;wBACXb,WAAWrB,mBAAmB,cAAcmC;wBAC5CC,QAAQ;wBACRC,IAAG;wBACH7B,MAAK;wBACLC,MAAK;wBACLS,OAAO,AAACA,SAAoB;;;;YAG/B,CAACpB,0BACA,KAACjB;gBAAqB2C,gBAAgBA;gBAAgBc,QAAQ,IAAMZ,SAASlC;;;;AAIrF,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap, PayloadRequest } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CopyToClipboard,\n FieldDescription,\n FieldLabel,\n GenerateConfirmation,\n useComponentMap,\n useConfig,\n useDocumentInfo,\n useField,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ readonly enabled: boolean; readonly readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { i18n, t } = useTranslation()\n const config = useConfig()\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n const { collectionSlug, docPermissions } = useDocumentInfo()\n\n const { getFieldMap } = useComponentMap()\n\n const fieldMap: FieldMap = getFieldMap({\n collectionSlug,\n })\n\n const apiKeyField = fieldMap.find((field) => 'name' in field && field.name === 'apiKey')\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const apiKeyLabel = useMemo(() => {\n let label: Record<string, string> | string = 'API Key'\n\n if (apiKeyField && apiKeyField.fieldComponentProps.label) {\n label = apiKeyField.fieldComponentProps.label\n }\n\n return getTranslation(label, i18n)\n }, [apiKeyField, i18n])\n\n const APIKeyLabelComponent = useMemo(() => {\n return (\n <div className={`${baseClass}__label`}>\n <span>{apiKeyLabel}</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n )\n }, [apiKeyLabel, apiKeyValue])\n\n const canUpdateAPIKey = useMemo(() => {\n if (docPermissions && docPermissions?.fields?.apiKey) {\n return docPermissions.fields.apiKey.update.permission\n }\n }, [docPermissions])\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled && apiKeyValue) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n <FieldLabel CustomLabel={APIKeyLabelComponent} htmlFor={path} />\n <input\n aria-label={apiKeyLabel}\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && canUpdateAPIKey && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\n )\n}\n"],"names":["getTranslation","CopyToClipboard","FieldLabel","GenerateConfirmation","useComponentMap","useConfig","useDocumentInfo","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","apiKey","fields","collectionSlug","docPermissions","getFieldMap","fieldMap","apiKeyField","find","field","name","validate","val","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","apiKeyLabel","label","fieldComponentProps","APIKeyLabelComponent","div","className","span","canUpdateAPIKey","update","permission","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","CustomLabel","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAM9D,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAoPnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAM9D,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAuPnC,CAAA"}
@@ -42,7 +42,9 @@ export const DefaultEditView = ()=>{
42
42
  const classes = [
43
43
  baseClass,
44
44
  id && `${baseClass}--is-editing`
45
- ].filter(Boolean).join(' ');
45
+ ];
46
+ if (globalSlug) classes.push(`global-edit--${globalSlug}`);
47
+ if (collectionSlug) classes.push(`collection-edit--${collectionSlug}`);
46
48
  const [schemaPath, setSchemaPath] = React.useState(entitySlug);
47
49
  const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(()=>{
48
50
  if (operation === 'create' && collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) return true;
@@ -119,7 +121,7 @@ export const DefaultEditView = ()=>{
119
121
  serverURL
120
122
  ]);
121
123
  return /*#__PURE__*/ _jsx("main", {
122
- className: classes,
124
+ className: classes.filter(Boolean).join(' '),
123
125
  children: /*#__PURE__*/ _jsx(OperationProvider, {
124
126
  operation: operation,
125
127
  children: /*#__PURE__*/ _jsxs(Form, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n type FormProps,\n OperationProvider,\n Upload,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useEditDepth,\n useUploadEdits,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getFormState } from '@payloadcms/ui/shared'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } 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 getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { getComponentMap, getFieldMap } = useComponentMap()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n\n const locale = params.get('locale')\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\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 componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\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 [schemaPath, setSchemaPath] = React.useState(entitySlug)\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (\n operation === 'create' &&\n collectionConfig.auth &&\n !collectionConfig.auth.disableLocalStrategy\n )\n return true\n return false\n })\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\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 = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n router,\n locale,\n resetUploadEdits,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [apiRoute, collectionSlug, schemaPath, getDocPreferences, globalSlug, id, operation, serverURL],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit={!validateBeforeSubmit}\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\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 hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\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 loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setSchemaPath={setSchemaPath}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {componentMap.Upload !== undefined ? (\n componentMap.Upload\n ) : (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={schemaPath}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","Upload","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useUploadEdits","formatAdminURL","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","useState","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","getComponentMap","getFieldMap","depth","params","reportUpdate","resetUploadEdits","locale","get","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","componentMap","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","schemaPath","setSchemaPath","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","json","updatedAt","result","Date","toISOString","redirectRoute","path","doc","push","onChange","formState","prevFormState","docPreferences","body","main","className","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n type FormProps,\n OperationProvider,\n Upload,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useEditDepth,\n useUploadEdits,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getFormState } from '@payloadcms/ui/shared'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } 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 getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { getComponentMap, getFieldMap } = useComponentMap()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n\n const locale = params.get('locale')\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\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 componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\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`]\n\n if (globalSlug) classes.push(`global-edit--${globalSlug}`)\n if (collectionSlug) classes.push(`collection-edit--${collectionSlug}`)\n\n const [schemaPath, setSchemaPath] = React.useState(entitySlug)\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (\n operation === 'create' &&\n collectionConfig.auth &&\n !collectionConfig.auth.disableLocalStrategy\n )\n return true\n return false\n })\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\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 = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n router,\n locale,\n resetUploadEdits,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [apiRoute, collectionSlug, schemaPath, getDocPreferences, globalSlug, id, operation, serverURL],\n )\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit={!validateBeforeSubmit}\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\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 hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\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 loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setSchemaPath={setSchemaPath}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {componentMap.Upload !== undefined ? (\n componentMap.Upload\n ) : (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={schemaPath}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","Upload","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useUploadEdits","formatAdminURL","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","useState","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","getComponentMap","getFieldMap","depth","params","reportUpdate","resetUploadEdits","locale","get","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","componentMap","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","push","schemaPath","setSchemaPath","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","json","updatedAt","result","Date","toISOString","redirectRoute","path","doc","onChange","formState","prevFormState","docPreferences","body","main","className","filter","Boolean","join","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/Default/index.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA4KnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/Default/index.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA0KnC,CAAA"}
@@ -1,4 +1,4 @@
1
- 'use client';
1
+ /* eslint-disable @typescript-eslint/no-misused-promises */ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
4
  import { Button, DeleteMany, EditMany, Gutter, ListControls, ListSelection, Pagination, PerPage, Pill, PublishMany, RelationshipProvider, SelectionProvider, SetViewActions, StaggeredShimmers, Table, UnpublishMany, useComponentMap, useConfig, useEditDepth, useListInfo, useListQuery, useSearchParams, useStepNav, useTranslation, useWindowInfo } from '@payloadcms/ui';
@@ -46,7 +46,7 @@ export const DefaultListView = ()=>{
46
46
  drawerDepth
47
47
  ]);
48
48
  return /*#__PURE__*/ _jsxs("div", {
49
- className: baseClass,
49
+ className: `${baseClass} ${baseClass}--${collectionSlug}`,
50
50
  children: [
51
51
  /*#__PURE__*/ _jsx(SetViewActions, {
52
52
  actions: actionsMap?.List
@@ -75,10 +75,10 @@ export const DefaultListView = ()=>{
75
75
  !smallBreak && /*#__PURE__*/ _jsx(ListSelection, {
76
76
  label: getTranslation(collectionConfig.labels.plural, i18n)
77
77
  }),
78
- Description && /*#__PURE__*/ _jsx("div", {
78
+ Description ? /*#__PURE__*/ _jsx("div", {
79
79
  className: `${baseClass}__sub-header`,
80
80
  children: Description
81
- })
81
+ }) : null
82
82
  ]
83
83
  })
84
84
  }),
@@ -157,33 +157,31 @@ export const DefaultListView = ()=>{
157
157
  limits: collectionConfig?.admin?.pagination?.limits,
158
158
  resetPage: data.totalDocs <= data.pagingCounter
159
159
  }),
160
- smallBreak && /*#__PURE__*/ _jsx("div", {
160
+ smallBreak && /*#__PURE__*/ _jsxs("div", {
161
161
  className: `${baseClass}__list-selection`,
162
- children: /*#__PURE__*/ _jsxs(Fragment, {
163
- children: [
164
- /*#__PURE__*/ _jsx(ListSelection, {
165
- label: getTranslation(collectionConfig.labels.plural, i18n)
166
- }),
167
- /*#__PURE__*/ _jsxs("div", {
168
- className: `${baseClass}__list-selection-actions`,
169
- children: [
170
- /*#__PURE__*/ _jsx(EditMany, {
171
- collection: collectionConfig,
172
- fieldMap: fieldMap
173
- }),
174
- /*#__PURE__*/ _jsx(PublishMany, {
175
- collection: collectionConfig
176
- }),
177
- /*#__PURE__*/ _jsx(UnpublishMany, {
178
- collection: collectionConfig
179
- }),
180
- /*#__PURE__*/ _jsx(DeleteMany, {
181
- collection: collectionConfig
182
- })
183
- ]
184
- })
185
- ]
186
- })
162
+ children: [
163
+ /*#__PURE__*/ _jsx(ListSelection, {
164
+ label: getTranslation(collectionConfig.labels.plural, i18n)
165
+ }),
166
+ /*#__PURE__*/ _jsxs("div", {
167
+ className: `${baseClass}__list-selection-actions`,
168
+ children: [
169
+ /*#__PURE__*/ _jsx(EditMany, {
170
+ collection: collectionConfig,
171
+ fieldMap: fieldMap
172
+ }),
173
+ /*#__PURE__*/ _jsx(PublishMany, {
174
+ collection: collectionConfig
175
+ }),
176
+ /*#__PURE__*/ _jsx(UnpublishMany, {
177
+ collection: collectionConfig
178
+ }),
179
+ /*#__PURE__*/ _jsx(DeleteMany, {
180
+ collection: collectionConfig
181
+ })
182
+ ]
183
+ })
184
+ ]
187
185
  })
188
186
  ]
189
187
  })