@payloadcms/next 3.0.0-beta.86 → 3.0.0-beta.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/views/Account/Settings/index.d.ts +3 -3
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +1 -0
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js +0 -1
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +1 -0
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,YAAY,EAAE,qBAAqB,CAAA;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;CACzB,CAoGA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n Payload,\n Permissions,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { RenderComponent, getCreateMappedComponent } from '@payloadcms/ui/shared'\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n Payload,\n Permissions,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { RenderComponent, getCreateMappedComponent } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { ShouldRenderTabs } from './ShouldRenderTabs.js'\nimport { DocumentTab } from './Tab/index.js'\nimport { getCustomViews } from './getCustomViews.js'\nimport { getViewConfig } from './getViewConfig.js'\nimport './index.scss'\nimport { tabs as defaultTabs } from './tabs/index.js'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n globalConfig: SanitizedGlobalConfig\n i18n: I18n\n payload: Payload\n permissions: Permissions\n}> = (props) => {\n const { collectionConfig, globalConfig, i18n, payload, permissions } = props\n const { config } = payload\n\n const customViews = getCustomViews({ collectionConfig, globalConfig })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {Object.entries(defaultTabs)\n // sort `defaultViews` based on `order` property from smallest to largest\n // if no `order`, append the view to the end\n // TODO: open `order` to the config and merge `defaultViews` with `customViews`\n ?.sort(([, a], [, b]) => {\n if (a.order === undefined && b.order === undefined) return 0\n else if (a.order === undefined) return 1\n else if (b.order === undefined) return -1\n return a.order - b.order\n })\n ?.map(([name, tab], index) => {\n const viewConfig = getViewConfig({ name, collectionConfig, globalConfig })\n const tabFromConfig = viewConfig && 'tab' in viewConfig ? viewConfig.tab : undefined\n\n const { condition } = tabFromConfig || {}\n\n const meetsCondition =\n !condition ||\n (condition &&\n Boolean(condition({ collectionConfig, config, globalConfig, permissions })))\n\n if (meetsCondition) {\n return (\n <DocumentTab\n key={`tab-${index}`}\n {...{\n ...props,\n ...(tab || {}),\n ...(tabFromConfig || {}),\n }}\n />\n )\n }\n\n return null\n })}\n {customViews?.map((CustomView, index) => {\n if ('tab' in CustomView) {\n const { path, tab } = CustomView\n\n if (tab.Component) {\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n i18n,\n payload,\n permissions,\n ...props,\n key: `tab-custom-${index}`,\n path,\n },\n })\n\n const mappedTab = createMappedComponent(\n tab.Component,\n undefined,\n undefined,\n 'tab.Component',\n )\n\n return (\n <RenderComponent\n clientProps={{\n key: `tab-custom-${index}`,\n path,\n }}\n key={`tab-custom-${index}`}\n mappedComponent={mappedTab}\n />\n )\n }\n\n return (\n <DocumentTab\n key={`tab-custom-${index}`}\n {...{\n ...props,\n ...tab,\n }}\n />\n )\n }\n return null\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"names":["RenderComponent","getCreateMappedComponent","React","ShouldRenderTabs","DocumentTab","getCustomViews","getViewConfig","tabs","defaultTabs","baseClass","DocumentTabs","props","collectionConfig","globalConfig","i18n","payload","permissions","config","customViews","div","className","ul","Object","entries","sort","a","b","order","undefined","map","name","tab","index","viewConfig","tabFromConfig","condition","meetsCondition","Boolean","CustomView","path","Component","createMappedComponent","importMap","serverProps","key","mappedTab","clientProps","mappedComponent"],"mappings":";AAQA,SAASA,eAAe,EAAEC,wBAAwB,QAAQ,wBAAuB;AACjF,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,WAAW,QAAQ,iBAAgB;AAC5C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,aAAa,QAAQ,qBAAoB;AAElD,SAASC,QAAQC,WAAW,QAAQ,kBAAiB;AAErD,MAAMC,YAAY;AAElB,OAAO,MAAMC,eAMR,CAACC;IACJ,MAAM,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,IAAI,EAAEC,OAAO,EAAEC,WAAW,EAAE,GAAGL;IACvE,MAAM,EAAEM,MAAM,EAAE,GAAGF;IAEnB,MAAMG,cAAcb,eAAe;QAAEO;QAAkBC;IAAa;IAEpE,qBACE,KAACV;kBACC,cAAA,KAACgB;YAAIC,WAAWX;sBACd,cAAA,KAACU;gBAAIC,WAAW,CAAC,EAAEX,UAAU,gBAAgB,CAAC;0BAC5C,cAAA,MAACY;oBAAGD,WAAW,CAAC,EAAEX,UAAU,MAAM,CAAC;;wBAChCa,OAAOC,OAAO,CAACf,cAIZgB,KAAK,CAAC,GAAGC,EAAE,EAAE,GAAGC,EAAE;4BAClB,IAAID,EAAEE,KAAK,KAAKC,aAAaF,EAAEC,KAAK,KAAKC,WAAW,OAAO;iCACtD,IAAIH,EAAEE,KAAK,KAAKC,WAAW,OAAO;iCAClC,IAAIF,EAAEC,KAAK,KAAKC,WAAW,OAAO,CAAC;4BACxC,OAAOH,EAAEE,KAAK,GAAGD,EAAEC,KAAK;wBAC1B,IACEE,IAAI,CAAC,CAACC,MAAMC,IAAI,EAAEC;4BAClB,MAAMC,aAAa3B,cAAc;gCAAEwB;gCAAMlB;gCAAkBC;4BAAa;4BACxE,MAAMqB,gBAAgBD,cAAc,SAASA,aAAaA,WAAWF,GAAG,GAAGH;4BAE3E,MAAM,EAAEO,SAAS,EAAE,GAAGD,iBAAiB,CAAC;4BAExC,MAAME,iBACJ,CAACD,aACAA,aACCE,QAAQF,UAAU;gCAAEvB;gCAAkBK;gCAAQJ;gCAAcG;4BAAY;4BAE5E,IAAIoB,gBAAgB;gCAClB,qBACE,KAAChC;oCAGG,GAAGO,KAAK;oCACR,GAAIoB,OAAO,CAAC,CAAC;oCACb,GAAIG,iBAAiB,CAAC,CAAC;mCAJpB,CAAC,IAAI,EAAEF,MAAM,CAAC;4BAQzB;4BAEA,OAAO;wBACT;wBACDd,aAAaW,IAAI,CAACS,YAAYN;4BAC7B,IAAI,SAASM,YAAY;gCACvB,MAAM,EAAEC,IAAI,EAAER,GAAG,EAAE,GAAGO;gCAEtB,IAAIP,IAAIS,SAAS,EAAE;oCACjB,MAAMC,wBAAwBxC,yBAAyB;wCACrDyC,WAAW3B,QAAQ2B,SAAS;wCAC5BC,aAAa;4CACX7B;4CACAC;4CACAC;4CACA,GAAGL,KAAK;4CACRiC,KAAK,CAAC,WAAW,EAAEZ,MAAM,CAAC;4CAC1BO;wCACF;oCACF;oCAEA,MAAMM,YAAYJ,sBAChBV,IAAIS,SAAS,EACbZ,WACAA,WACA;oCAGF,qBACE,KAAC5B;wCACC8C,aAAa;4CACXF,KAAK,CAAC,WAAW,EAAEZ,MAAM,CAAC;4CAC1BO;wCACF;wCAEAQ,iBAAiBF;uCADZ,CAAC,WAAW,EAAEb,MAAM,CAAC;gCAIhC;gCAEA,qBACE,KAAC5B;oCAGG,GAAGO,KAAK;oCACR,GAAGoB,GAAG;mCAHH,CAAC,WAAW,EAAEC,MAAM,CAAC;4BAOhC;4BACA,OAAO;wBACT;;;;;;AAMZ,EAAC"}
|
|
@@ -3,8 +3,8 @@ import type { LanguageOptions } from 'payload';
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import './index.scss';
|
|
5
5
|
export declare const Settings: React.FC<{
|
|
6
|
-
className?: string;
|
|
7
|
-
i18n: I18n;
|
|
8
|
-
languageOptions: LanguageOptions;
|
|
6
|
+
readonly className?: string;
|
|
7
|
+
readonly i18n: I18n;
|
|
8
|
+
readonly languageOptions: LanguageOptions;
|
|
9
9
|
}>;
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;CAC1C,CAaA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { LanguageOptions } from 'payload'\n\nimport { FieldLabel } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport { LanguageSelector } from './LanguageSelector.js'\nimport './index.scss'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n className?: string\n i18n: I18n\n languageOptions: LanguageOptions\n}> = (props) => {\n const { className, i18n, languageOptions } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n <ToggleTheme />\n </div>\n )\n}\n"],"names":["FieldLabel","React","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","div","filter","Boolean","join","h3","t","htmlFor","label"],"mappings":";AAGA,SAASA,UAAU,QAAQ,iBAAgB;AAC3C,OAAOC,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,0BAAyB;AACrD,SAASC,gBAAgB,QAAQ,wBAAuB;AAGxD,MAAMC,YAAY;AAElB,OAAO,MAAMC,WAIR,CAACC;IACJ,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAEC,eAAe,EAAE,GAAGH;IAE7C,qBACE,MAACI;QAAIH,WAAW;YAACH;YAAWG;SAAU,CAACI,MAAM,CAACC,SAASC,IAAI,CAAC;;0BAC1D,KAACC;0BAAIN,KAAKO,CAAC,CAAC;;0BACZ,MAACL;gBAAIH,WAAW,CAAC,EAAEH,UAAU,UAAU,CAAC;;kCACtC,KAACJ;wBAAWgB,SAAQ;wBAAkBC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { LanguageOptions } from 'payload'\n\nimport { FieldLabel } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport { LanguageSelector } from './LanguageSelector.js'\nimport './index.scss'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n readonly className?: string\n readonly i18n: I18n\n readonly languageOptions: LanguageOptions\n}> = (props) => {\n const { className, i18n, languageOptions } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel field={null} htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n <ToggleTheme />\n </div>\n )\n}\n"],"names":["FieldLabel","React","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","div","filter","Boolean","join","h3","t","field","htmlFor","label"],"mappings":";AAGA,SAASA,UAAU,QAAQ,iBAAgB;AAC3C,OAAOC,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,0BAAyB;AACrD,SAASC,gBAAgB,QAAQ,wBAAuB;AAGxD,MAAMC,YAAY;AAElB,OAAO,MAAMC,WAIR,CAACC;IACJ,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAEC,eAAe,EAAE,GAAGH;IAE7C,qBACE,MAACI;QAAIH,WAAW;YAACH;YAAWG;SAAU,CAACI,MAAM,CAACC,SAASC,IAAI,CAAC;;0BAC1D,KAACC;0BAAIN,KAAKO,CAAC,CAAC;;0BACZ,MAACL;gBAAIH,WAAW,CAAC,EAAEH,UAAU,UAAU,CAAC;;kCACtC,KAACJ;wBAAWgB,OAAO;wBAAMC,SAAQ;wBAAkBC,OAAOV,KAAKO,CAAC,CAAC;;kCACjE,KAACZ;wBAAiBM,iBAAiBA;;;;0BAErC,KAACP;;;AAGP,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,
|
|
1
|
+
{"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAoXH,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n CollectionPermission,\n GlobalPermission,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n payloadComponent?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: CollectionPermission | GlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (\n !overrideDocPermissions &&\n 'create' in docPermissions &&\n docPermissions?.create?.permission\n ) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n console.log('CustomViewComponent', customViewKey)\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read?.permission) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"names":["notFound","APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","permission","length","create","payloadComponent","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","console","log","hideAPIURL","readVersions","globalEntity","globalSlug"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n CollectionPermission,\n GlobalPermission,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n payloadComponent?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: CollectionPermission | GlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (\n !overrideDocPermissions &&\n 'create' in docPermissions &&\n docPermissions?.create?.permission\n ) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read?.permission) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"names":["notFound","APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","permission","length","create","payloadComponent","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","hideAPIURL","readVersions","globalEntity","globalSlug"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAeA,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,
|
|
1
|
+
{"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAeA,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,CA+HvF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest, TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\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 { collectionSlug, docPermissions } = useDocumentInfo()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const apiKeyField: TextFieldClient = config.collections\n .find((collection) => {\n return collection.slug === collectionSlug\n })\n ?.fields?.find((field) => 'name' in field && field.name === 'apiKey') as TextFieldClient\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 unknown 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?.label) {\n label = apiKeyField.label\n }\n\n return getTranslation(label, i18n)\n }, [apiKeyField, i18n])\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>{apiKeyLabel}</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyLabel, apiKeyValue],\n )\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\n Label={{\n type: 'client',\n Component: null,\n RenderedComponent: APIKeyLabel,\n }}\n htmlFor={path}\n />\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","useConfig","useDocumentInfo","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","collectionSlug","docPermissions","apiKey","fields","apiKeyField","collections","find","collection","slug","field","name","validate","val","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","apiKeyLabel","label","APIKeyLabel","div","className","span","canUpdateAPIKey","update","permission","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","Label","Component","RenderedComponent","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest, TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\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 { collectionSlug, docPermissions } = useDocumentInfo()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const apiKeyField: TextFieldClient = config.collections\n .find((collection) => {\n return collection.slug === collectionSlug\n })\n ?.fields?.find((field) => 'name' in field && field.name === 'apiKey') as TextFieldClient\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 unknown 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?.label) {\n label = apiKeyField.label\n }\n\n return getTranslation(label, i18n)\n }, [apiKeyField, i18n])\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>{apiKeyLabel}</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyLabel, apiKeyValue],\n )\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\n Label={{\n type: 'client',\n Component: null,\n RenderedComponent: APIKeyLabel,\n }}\n field={null}\n htmlFor={path}\n />\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","useConfig","useDocumentInfo","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","collectionSlug","docPermissions","apiKey","fields","apiKeyField","collections","find","collection","slug","field","name","validate","val","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","apiKeyLabel","label","APIKeyLabel","div","className","span","canUpdateAPIKey","update","permission","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","Label","Component","RenderedComponent","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.87",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -63,9 +63,9 @@
|
|
|
63
63
|
"sonner": "^1.5.0",
|
|
64
64
|
"uuid": "10.0.0",
|
|
65
65
|
"ws": "^8.16.0",
|
|
66
|
-
"@payloadcms/graphql": "3.0.0-beta.
|
|
67
|
-
"@payloadcms/ui": "3.0.0-beta.
|
|
68
|
-
"@payloadcms/translations": "3.0.0-beta.
|
|
66
|
+
"@payloadcms/graphql": "3.0.0-beta.87",
|
|
67
|
+
"@payloadcms/ui": "3.0.0-beta.87",
|
|
68
|
+
"@payloadcms/translations": "3.0.0-beta.87"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@next/eslint-plugin-next": "^14.1.0",
|
|
@@ -77,13 +77,13 @@
|
|
|
77
77
|
"esbuild": "0.23.0",
|
|
78
78
|
"esbuild-sass-plugin": "3.3.1",
|
|
79
79
|
"swc-plugin-transform-remove-imports": "1.15.0",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
80
|
+
"@payloadcms/eslint-config": "3.0.0-beta.59",
|
|
81
|
+
"payload": "3.0.0-beta.87"
|
|
82
82
|
},
|
|
83
83
|
"peerDependencies": {
|
|
84
84
|
"graphql": "^16.8.1",
|
|
85
85
|
"next": "^15.0.0-canary.104",
|
|
86
|
-
"payload": "3.0.0-beta.
|
|
86
|
+
"payload": "3.0.0-beta.87"
|
|
87
87
|
},
|
|
88
88
|
"engines": {
|
|
89
89
|
"node": "^18.20.2 || >=20.9.0"
|