@payloadcms/next 3.0.0-beta.85 → 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/prod/styles.css +1 -1
- package/dist/utilities/getPayloadHMR.d.ts +1 -1
- package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
- package/dist/utilities/getPayloadHMR.js +3 -2
- package/dist/utilities/getPayloadHMR.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 +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { InitOptions, Payload, SanitizedConfig } from 'payload';
|
|
2
|
-
export declare const reload: (config: SanitizedConfig, payload: Payload) => Promise<void>;
|
|
2
|
+
export declare const reload: (config: SanitizedConfig, payload: Payload, skipImportMapGeneration?: boolean) => Promise<void>;
|
|
3
3
|
export declare const getPayloadHMR: (options: InitOptions) => Promise<Payload>;
|
|
4
4
|
//# sourceMappingURL=getPayloadHMR.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,WACT,eAAe,WACd,OAAO,4BACU,OAAO,KAChC,OAAO,CAAC,IAAI,CA0Cd,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CAyEzE,CAAA"}
|
|
@@ -9,7 +9,7 @@ if (!cached) {
|
|
|
9
9
|
ws: null
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
export const reload = async (config, payload)=>{
|
|
12
|
+
export const reload = async (config, payload, skipImportMapGeneration)=>{
|
|
13
13
|
if (typeof payload.db.destroy === 'function') {
|
|
14
14
|
await payload.db.destroy();
|
|
15
15
|
}
|
|
@@ -37,7 +37,7 @@ export const reload = async (config, payload)=>{
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
// Generate component map
|
|
40
|
-
if (config.admin?.importMap?.autoGenerate !== false) {
|
|
40
|
+
if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {
|
|
41
41
|
await generateImportMap(config, {
|
|
42
42
|
log: true
|
|
43
43
|
});
|
|
@@ -72,6 +72,7 @@ export const getPayloadHMR = async (options)=>{
|
|
|
72
72
|
}
|
|
73
73
|
return cached.payload;
|
|
74
74
|
}
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
75
76
|
if (!cached.promise) {
|
|
76
77
|
// no need to await options.config here, as it's already awaited in the BasePayload.init
|
|
77
78
|
cached.promise = new BasePayload().init(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload, generateImportMap } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (config: SanitizedConfig
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload, generateImportMap } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","generateImportMap","WebSocket","cached","global","_payload","payload","promise","reload","ws","config","skipImportMapGeneration","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","admin","importMap","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"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"}
|
|
@@ -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/
|
|
68
|
-
"@payloadcms/
|
|
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",
|
|
@@ -78,12 +78,12 @@
|
|
|
78
78
|
"esbuild-sass-plugin": "3.3.1",
|
|
79
79
|
"swc-plugin-transform-remove-imports": "1.15.0",
|
|
80
80
|
"@payloadcms/eslint-config": "3.0.0-beta.59",
|
|
81
|
-
"payload": "3.0.0-beta.
|
|
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"
|