@payloadcms/next 3.0.0-beta.42 → 3.0.0-beta.44
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/cjs/withPayload.cjs +7 -0
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
- package/dist/utilities/getPayloadHMR.js +11 -0
- package/dist/utilities/getPayloadHMR.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +2 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/LivePreview/Device/index.d.ts.map +1 -1
- package/dist/views/LivePreview/Device/index.js +43 -15
- package/dist/views/LivePreview/Device/index.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +7 -0
- package/dist/withPayload.js.map +1 -1
- package/package.json +7 -7
package/dist/cjs/withPayload.cjs
CHANGED
|
@@ -40,6 +40,13 @@ const withPayload = (nextConfig = {})=>{
|
|
|
40
40
|
'drizzle-kit/payload',
|
|
41
41
|
'libsql'
|
|
42
42
|
]
|
|
43
|
+
},
|
|
44
|
+
turbo: {
|
|
45
|
+
...nextConfig?.experimental?.turbo || {},
|
|
46
|
+
resolveAlias: {
|
|
47
|
+
...nextConfig?.experimental?.turbo?.resolveAlias || {},
|
|
48
|
+
'payload-mock-package': 'payload-mock-package'
|
|
49
|
+
}
|
|
43
50
|
}
|
|
44
51
|
},
|
|
45
52
|
headers: async ()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/withPayload.js"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/withPayload.js"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;IAqHH,OAA0B;eAA1B;;IApHa,WAAW;eAAX;;;AAAN,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,WAAW,YAAY,EAAE,YAAY,SAAS;QAChD,QAAQ,IAAI,CACV;IAEJ;IAEA;;GAEC,GACD,MAAM,WAAW;QACf,GAAG,UAAU;QACb,KAAK;YACH,GAAI,YAAY,OAAO,CAAC,CAAC;QAC3B;QACA,cAAc;YACZ,GAAI,YAAY,gBAAgB,CAAC,CAAC;YAClC,2BAA2B;gBACzB,QAAQ;uBACF,WAAW,YAAY,EAAE,2BAA2B,CAAC,OAAO,IAAI,EAAE;oBACtE;oBACA;oBACA;iBACD;YACH;YACA,OAAO;gBACL,GAAI,YAAY,cAAc,SAAS,CAAC,CAAC;gBACzC,cAAc;oBACZ,GAAI,YAAY,cAAc,OAAO,gBAAgB,CAAC,CAAC;oBACvD,wBAAwB;gBAC1B;YACF;QACF;QACA,SAAS;YACP,MAAM,oBAAoB,aAAa,aAAa,MAAM,WAAW,OAAO,KAAK,EAAE;YAEnF,OAAO;mBACD,qBAAqB,EAAE;gBAC3B;oBACE,QAAQ;oBACR,SAAS;wBACP;4BACE,KAAK;4BACL,OAAO;wBACT;wBACA;4BACE,KAAK;4BACL,OAAO;wBACT;wBACA;4BACE,KAAK;4BACL,OAAO;wBACT;qBACD;gBACH;aACD;QACH;QACA,wBAAwB;eAClB,YAAY,0BAA0B,EAAE;YAC5C;YACA;YACA;YACA;YACA;YACA;SACD;QACD,SAAS,CAAC,eAAe;YACvB,MAAM,wBACJ,OAAO,WAAW,OAAO,KAAK,aAC1B,WAAW,OAAO,CAAC,eAAe,kBAClC;YAEN,OAAO;gBACL,GAAG,qBAAqB;gBACxB,WAAW;uBACL,uBAAuB,aAAa,EAAE;oBAC1C;oBACA;oBACA;oBACA;iBACD;gBACD,gBAAgB;uBACV,uBAAuB,kBAAkB,EAAE;oBAC/C;wBAAE,QAAQ;oBAAwC;oBAClD;wBAAE,MAAM;oBAAwC;oBAChD;wBAAE,QAAQ;oBAAuC;oBACjD;wBAAE,MAAM;oBAAuC;iBAChD;gBACD,SAAS;oBACP,GAAI,uBAAuB,WAAW,CAAC,CAAC;oBACxC,OAAO;wBACL,GAAI,uBAAuB,SAAS,SAAS,CAAC,CAAC;oBACjD;oBACA,UAAU;wBACR,GAAI,uBAAuB,SAAS,YAAY,CAAC,CAAC;wBAClD,iCAAiC;wBACjC,oBAAoB;wBACpB,MAAM;wBACN,UAAU;wBACV,6BAA6B;wBAC7B,QAAQ;wBACR,kBAAkB;wBAClB,eAAe;oBACjB;gBACF;YACF;QACF;IACF;IAEA,IAAI,WAAW,QAAQ,EAAE;QACvB,SAAS,GAAG,CAAC,cAAc,GAAG,WAAW,QAAQ;IACnD;IAEA,OAAO;AACT;MAEA,WAAe","file":"withPayload.cjs","sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This may cause stale data to load in the Admin Panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env: {\n ...(nextConfig?.env || {}),\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n outputFileTracingExcludes: {\n '**/*': [\n ...(nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'libsql',\n ],\n },\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'libsql',\n 'pino',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgBlE,eAAO,MAAM,MAAM,WAAkB,eAAe,uBAAqB,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgBlE,eAAO,MAAM,MAAM,WAAkB,eAAe,uBAAqB,QAAQ,IAAI,CAmCpF,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,QAAQ,OAAO,CA8DzE,CAAA"}
|
|
@@ -25,6 +25,17 @@ export const reload = async (config, payload)=>{
|
|
|
25
25
|
config: config.globals
|
|
26
26
|
};
|
|
27
27
|
// TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton
|
|
28
|
+
// Generate types
|
|
29
|
+
if (config.typescript.autoGenerate !== false) {
|
|
30
|
+
// We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.
|
|
31
|
+
// see: https://github.com/vercel/next.js/issues/66723
|
|
32
|
+
void payload.bin({
|
|
33
|
+
args: [
|
|
34
|
+
'generate:types'
|
|
35
|
+
],
|
|
36
|
+
log: false
|
|
37
|
+
});
|
|
38
|
+
}
|
|
28
39
|
await payload.db.init();
|
|
29
40
|
if (payload.db.connect) {
|
|
30
41
|
await payload.db.connect({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { GeneratedTypes, Payload } from 'payload'\nimport type { InitOptions, SanitizedConfig } from 'payload/config'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<boolean> | boolean\n} = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null, reload: false }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): 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 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 getPayload to work.')\n }\n\n if (cached.payload) {\n const config = await options.config // TODO: check if we can move this inside the cached.reload === true condition\n\n if (cached.reload === true) {\n let resolve\n\n cached.reload = new Promise((res) => (resolve = res))\n\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\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 const ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n 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 return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","ws","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { GeneratedTypes, Payload } from 'payload'\nimport type { InitOptions, SanitizedConfig } from 'payload/config'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<boolean> | boolean\n} = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null, reload: false }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): 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 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 getPayload to work.')\n }\n\n if (cached.payload) {\n const config = await options.config // TODO: check if we can move this inside the cached.reload === true condition\n\n if (cached.reload === true) {\n let resolve\n\n cached.reload = new Promise((res) => (resolve = res))\n\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\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 const ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n 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 return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","ws","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAUnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAQrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAUnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAQrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuN7C,CAAA"}
|
|
@@ -94,7 +94,8 @@ export const Document = async ({ initPageResult, params, searchParams })=>{
|
|
|
94
94
|
* Handle case where autoSave is enabled and the document is being created
|
|
95
95
|
* => create document and redirect
|
|
96
96
|
*/ const shouldAutosave = hasSavePermission && (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave || globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave);
|
|
97
|
-
|
|
97
|
+
const validateDraftData = collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate;
|
|
98
|
+
if (shouldAutosave && !validateDraftData && !id && collectionSlug) {
|
|
98
99
|
const doc = await payload.create({
|
|
99
100
|
collection: collectionSlug,
|
|
100
101
|
data: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type { EditViewComponent } from 'payload/config'\nimport type { AdminViewComponent, ServerSideEditViewProps } from 'payload/types'\nimport type { AdminViewProps } from 'payload/types'\n\nimport { DocumentHeader } from '@payloadcms/ui/elements/DocumentHeader'\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { DocumentInfoProvider } from '@payloadcms/ui/providers/DocumentInfo'\nimport { EditDepthProvider } from '@payloadcms/ui/providers/EditDepth'\nimport { FormQueryParamsProvider } from '@payloadcms/ui/providers/FormQueryParams'\nimport { isEditing as getIsEditing } from '@payloadcms/ui/utilities/isEditing'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport const Document: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n\n let ViewOverride: EditViewComponent\n let CustomView: EditViewComponent\n let DefaultView: EditViewComponent\n let ErrorView: AdminViewComponent\n\n let apiURL: string\n let action: string\n\n const { data, formState } = await getDocumentData({\n id,\n collectionConfig,\n globalConfig,\n locale,\n req,\n })\n\n const { docPermissions, hasPublishPermission, hasSavePermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data,\n globalConfig,\n req,\n })\n\n if (collectionConfig) {\n if (!visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) {\n notFound()\n }\n\n action = `${serverURL}${apiRoute}/${collectionSlug}${isEditing ? `/${id}` : ''}`\n\n apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${id}?locale=${locale.code}${\n collectionConfig.versions?.drafts ? '&draft=true' : ''\n }`\n\n const editConfig = collectionConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const collectionViews = getViewsFromConfig({\n collectionConfig,\n config,\n docPermissions,\n routeSegments: segments,\n })\n\n CustomView = collectionViews?.CustomView\n DefaultView = collectionViews?.DefaultView\n ErrorView = collectionViews?.ErrorView\n }\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n\n if (globalConfig) {\n if (!visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)) {\n notFound()\n }\n\n action = `${serverURL}${apiRoute}/globals/${globalSlug}`\n\n apiURL = `${serverURL}${apiRoute}/${globalSlug}?locale=${locale.code}${\n globalConfig.versions?.drafts ? '&draft=true' : ''\n }`\n\n const editConfig = globalConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const globalViews = getViewsFromConfig({\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n })\n\n CustomView = globalViews?.CustomView\n DefaultView = globalViews?.DefaultView\n ErrorView = globalViews?.ErrorView\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n\n if (shouldAutosave && !id && collectionSlug) {\n const doc = await payload.create({\n collection: collectionSlug,\n data: {},\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale: locale.code,\n req,\n user,\n })\n\n if (doc?.id) {\n const redirectURL = `${serverURL}${adminRoute}/collections/${collectionSlug}/${doc.id}`\n redirect(redirectURL)\n } else {\n notFound()\n }\n }\n\n const viewComponentProps: ServerSideEditViewProps = {\n initPageResult,\n params,\n routeSegments: segments,\n searchParams,\n }\n\n return (\n <DocumentInfoProvider\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n disableActions={false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={data}\n initialState={formState}\n isEditing={isEditing}\n >\n {!ViewOverride && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n globalConfig={globalConfig}\n i18n={i18n}\n permissions={permissions}\n />\n )}\n <HydrateClientUser permissions={permissions} user={user} />\n <EditDepthProvider depth={1} key={`${collectionSlug || globalSlug}-${locale.code}`}>\n <FormQueryParamsProvider\n initialParams={{\n depth: 0,\n 'fallback-locale': 'null',\n locale: locale.code,\n uploadEdits: undefined,\n }}\n >\n {ErrorView ? (\n <ErrorView initPageResult={initPageResult} searchParams={searchParams} />\n ) : (\n <RenderCustomComponent\n CustomComponent={ViewOverride || CustomView}\n DefaultComponent={DefaultView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n </FormQueryParamsProvider>\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n}\n"],"names":["DocumentHeader","HydrateClientUser","RenderCustomComponent","DocumentInfoProvider","EditDepthProvider","FormQueryParamsProvider","isEditing","getIsEditing","notFound","redirect","React","NotFoundView","getDocumentData","getDocumentPermissions","getMetaBySegment","getViewsFromConfig","generateMetadata","args","Document","initPageResult","params","searchParams","collectionConfig","docID","id","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","ViewOverride","CustomView","DefaultView","ErrorView","apiURL","action","data","formState","docPermissions","hasPublishPermission","hasSavePermission","collections","find","visibleSlug","code","versions","drafts","editConfig","components","views","Edit","collectionViews","routeSegments","globals","globalViews","shouldAutosave","autosave","doc","create","collection","depth","draft","fallbackLocale","redirectURL","viewComponentProps","disableActions","initialData","initialState","initialParams","uploadEdits","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type { EditViewComponent } from 'payload/config'\nimport type { AdminViewComponent, ServerSideEditViewProps } from 'payload/types'\nimport type { AdminViewProps } from 'payload/types'\n\nimport { DocumentHeader } from '@payloadcms/ui/elements/DocumentHeader'\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { DocumentInfoProvider } from '@payloadcms/ui/providers/DocumentInfo'\nimport { EditDepthProvider } from '@payloadcms/ui/providers/EditDepth'\nimport { FormQueryParamsProvider } from '@payloadcms/ui/providers/FormQueryParams'\nimport { isEditing as getIsEditing } from '@payloadcms/ui/utilities/isEditing'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport const Document: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n\n let ViewOverride: EditViewComponent\n let CustomView: EditViewComponent\n let DefaultView: EditViewComponent\n let ErrorView: AdminViewComponent\n\n let apiURL: string\n let action: string\n\n const { data, formState } = await getDocumentData({\n id,\n collectionConfig,\n globalConfig,\n locale,\n req,\n })\n\n const { docPermissions, hasPublishPermission, hasSavePermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data,\n globalConfig,\n req,\n })\n\n if (collectionConfig) {\n if (!visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) {\n notFound()\n }\n\n action = `${serverURL}${apiRoute}/${collectionSlug}${isEditing ? `/${id}` : ''}`\n\n apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${id}?locale=${locale.code}${\n collectionConfig.versions?.drafts ? '&draft=true' : ''\n }`\n\n const editConfig = collectionConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const collectionViews = getViewsFromConfig({\n collectionConfig,\n config,\n docPermissions,\n routeSegments: segments,\n })\n\n CustomView = collectionViews?.CustomView\n DefaultView = collectionViews?.DefaultView\n ErrorView = collectionViews?.ErrorView\n }\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n\n if (globalConfig) {\n if (!visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)) {\n notFound()\n }\n\n action = `${serverURL}${apiRoute}/globals/${globalSlug}`\n\n apiURL = `${serverURL}${apiRoute}/${globalSlug}?locale=${locale.code}${\n globalConfig.versions?.drafts ? '&draft=true' : ''\n }`\n\n const editConfig = globalConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const globalViews = getViewsFromConfig({\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n })\n\n CustomView = globalViews?.CustomView\n DefaultView = globalViews?.DefaultView\n ErrorView = globalViews?.ErrorView\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n if (shouldAutosave && !validateDraftData && !id && collectionSlug) {\n const doc = await payload.create({\n collection: collectionSlug,\n data: {},\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale: locale.code,\n req,\n user,\n })\n\n if (doc?.id) {\n const redirectURL = `${serverURL}${adminRoute}/collections/${collectionSlug}/${doc.id}`\n redirect(redirectURL)\n } else {\n notFound()\n }\n }\n\n const viewComponentProps: ServerSideEditViewProps = {\n initPageResult,\n params,\n routeSegments: segments,\n searchParams,\n }\n\n return (\n <DocumentInfoProvider\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n disableActions={false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={data}\n initialState={formState}\n isEditing={isEditing}\n >\n {!ViewOverride && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n globalConfig={globalConfig}\n i18n={i18n}\n permissions={permissions}\n />\n )}\n <HydrateClientUser permissions={permissions} user={user} />\n <EditDepthProvider depth={1} key={`${collectionSlug || globalSlug}-${locale.code}`}>\n <FormQueryParamsProvider\n initialParams={{\n depth: 0,\n 'fallback-locale': 'null',\n locale: locale.code,\n uploadEdits: undefined,\n }}\n >\n {ErrorView ? (\n <ErrorView initPageResult={initPageResult} searchParams={searchParams} />\n ) : (\n <RenderCustomComponent\n CustomComponent={ViewOverride || CustomView}\n DefaultComponent={DefaultView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n </FormQueryParamsProvider>\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n}\n"],"names":["DocumentHeader","HydrateClientUser","RenderCustomComponent","DocumentInfoProvider","EditDepthProvider","FormQueryParamsProvider","isEditing","getIsEditing","notFound","redirect","React","NotFoundView","getDocumentData","getDocumentPermissions","getMetaBySegment","getViewsFromConfig","generateMetadata","args","Document","initPageResult","params","searchParams","collectionConfig","docID","id","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","ViewOverride","CustomView","DefaultView","ErrorView","apiURL","action","data","formState","docPermissions","hasPublishPermission","hasSavePermission","collections","find","visibleSlug","code","versions","drafts","editConfig","components","views","Edit","collectionViews","routeSegments","globals","globalViews","shouldAutosave","autosave","validateDraftData","validate","doc","create","collection","depth","draft","fallbackLocale","redirectURL","viewComponentProps","disableActions","initialData","initialState","initialParams","uploadEdits","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Device/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Device/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA4FA,CAAA"}
|
|
@@ -6,13 +6,16 @@ import { useLivePreviewContext } from '../Context/context.js';
|
|
|
6
6
|
export const DeviceContainer = (props)=>{
|
|
7
7
|
const { children } = props;
|
|
8
8
|
const deviceFrameRef = React.useRef(null);
|
|
9
|
-
const
|
|
9
|
+
const outerFrameRef = React.useRef(null);
|
|
10
|
+
const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext();
|
|
10
11
|
// Keep an accurate measurement of the actual device size as it is truly rendered
|
|
11
12
|
// This is helpful when `sizes` are non-number units like percentages, etc.
|
|
12
|
-
const { size: measuredDeviceSize } = useResize(deviceFrameRef);
|
|
13
|
+
const { size: measuredDeviceSize } = useResize(deviceFrameRef.current);
|
|
14
|
+
const { size: outerFrameSize } = useResize(outerFrameRef.current);
|
|
15
|
+
let deviceIsLargerThanFrame = false;
|
|
13
16
|
// Sync the measured device size with the context so that other components can use it
|
|
14
17
|
// This happens from the bottom up so that as this component mounts and unmounts,
|
|
15
|
-
//
|
|
18
|
+
// its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe
|
|
16
19
|
useEffect(()=>{
|
|
17
20
|
if (measuredDeviceSize) {
|
|
18
21
|
setMeasuredDeviceSize(measuredDeviceSize);
|
|
@@ -25,28 +28,53 @@ export const DeviceContainer = (props)=>{
|
|
|
25
28
|
let margin = '0';
|
|
26
29
|
if (breakpoint && breakpoint !== 'responsive') {
|
|
27
30
|
x = '-50%';
|
|
28
|
-
if (typeof zoom === 'number' && typeof
|
|
29
|
-
const scaledWidth = size.width / zoom;
|
|
30
|
-
const difference = scaledWidth - size.width;
|
|
31
|
-
x = `${difference / 2}px`;
|
|
31
|
+
if (typeof zoom === 'number' && typeof desiredSize.width === 'number' && typeof desiredSize.height === 'number' && typeof measuredDeviceSize.width === 'number' && typeof measuredDeviceSize.height === 'number') {
|
|
32
32
|
margin = '0 auto';
|
|
33
|
+
const scaledDesiredWidth = desiredSize.width / zoom;
|
|
34
|
+
const scaledDeviceWidth = measuredDeviceSize.width * zoom;
|
|
35
|
+
const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width;
|
|
36
|
+
deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width;
|
|
37
|
+
if (deviceIsLargerThanFrame) {
|
|
38
|
+
if (zoom > 1) {
|
|
39
|
+
const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width;
|
|
40
|
+
if (differenceFromDeviceToFrame < 0) x = `${differenceFromDeviceToFrame / 2}px`;
|
|
41
|
+
else x = '0';
|
|
42
|
+
} else {
|
|
43
|
+
x = '0';
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
if (zoom >= 1) {
|
|
47
|
+
x = `${scaledDeviceDifferencePixels / 2}px`;
|
|
48
|
+
} else {
|
|
49
|
+
const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth;
|
|
50
|
+
x = `${differenceFromDeviceToFrame / 2}px`;
|
|
51
|
+
margin = '0';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
33
54
|
}
|
|
34
55
|
}
|
|
35
56
|
let width = zoom ? `${100 / zoom}%` : '100%';
|
|
36
57
|
let height = zoom ? `${100 / zoom}%` : '100%';
|
|
37
58
|
if (breakpoint !== 'responsive') {
|
|
38
|
-
width = `${
|
|
39
|
-
height = `${
|
|
59
|
+
width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`;
|
|
60
|
+
height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`;
|
|
40
61
|
}
|
|
41
62
|
return /*#__PURE__*/ _jsx("div", {
|
|
42
|
-
ref:
|
|
63
|
+
ref: outerFrameRef,
|
|
43
64
|
style: {
|
|
44
|
-
height,
|
|
45
|
-
|
|
46
|
-
transform: `translate3d(${x}, 0, 0)`,
|
|
47
|
-
width
|
|
65
|
+
height: '100%',
|
|
66
|
+
width: '100%'
|
|
48
67
|
},
|
|
49
|
-
children:
|
|
68
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
69
|
+
ref: deviceFrameRef,
|
|
70
|
+
style: {
|
|
71
|
+
height,
|
|
72
|
+
margin,
|
|
73
|
+
transform: `translate3d(${x}, 0, 0)`,
|
|
74
|
+
width
|
|
75
|
+
},
|
|
76
|
+
children: children
|
|
77
|
+
})
|
|
50
78
|
});
|
|
51
79
|
};
|
|
52
80
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/LivePreview/Device/index.tsx"],"sourcesContent":["'use client'\nimport { useResize } from '@payloadcms/ui/hooks/useResize'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\n\nexport const DeviceContainer: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const deviceFrameRef = React.useRef<HTMLDivElement>(null)\n\n const { breakpoint, setMeasuredDeviceSize, size, zoom } = useLivePreviewContext()\n\n // Keep an accurate measurement of the actual device size as it is truly rendered\n // This is helpful when `sizes` are non-number units like percentages, etc.\n const { size: measuredDeviceSize } = useResize(deviceFrameRef)\n\n // Sync the measured device size with the context so that other components can use it\n // This happens from the bottom up so that as this component mounts and unmounts,\n //
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/LivePreview/Device/index.tsx"],"sourcesContent":["'use client'\nimport { useResize } from '@payloadcms/ui/hooks/useResize'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\n\nexport const DeviceContainer: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const deviceFrameRef = React.useRef<HTMLDivElement>(null)\n const outerFrameRef = React.useRef<HTMLDivElement>(null)\n\n const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext()\n\n // Keep an accurate measurement of the actual device size as it is truly rendered\n // This is helpful when `sizes` are non-number units like percentages, etc.\n const { size: measuredDeviceSize } = useResize(deviceFrameRef.current)\n const { size: outerFrameSize } = useResize(outerFrameRef.current)\n\n let deviceIsLargerThanFrame: boolean = false\n\n // Sync the measured device size with the context so that other components can use it\n // This happens from the bottom up so that as this component mounts and unmounts,\n // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe\n useEffect(() => {\n if (measuredDeviceSize) {\n setMeasuredDeviceSize(measuredDeviceSize)\n }\n }, [measuredDeviceSize, setMeasuredDeviceSize])\n\n let x = '0'\n let margin = '0'\n\n if (breakpoint && breakpoint !== 'responsive') {\n x = '-50%'\n\n if (\n typeof zoom === 'number' &&\n typeof desiredSize.width === 'number' &&\n typeof desiredSize.height === 'number' &&\n typeof measuredDeviceSize.width === 'number' &&\n typeof measuredDeviceSize.height === 'number'\n ) {\n margin = '0 auto'\n const scaledDesiredWidth = desiredSize.width / zoom\n const scaledDeviceWidth = measuredDeviceSize.width * zoom\n const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width\n deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width\n\n if (deviceIsLargerThanFrame) {\n if (zoom > 1) {\n const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width\n if (differenceFromDeviceToFrame < 0) x = `${differenceFromDeviceToFrame / 2}px`\n else x = '0'\n } else {\n x = '0'\n }\n } else {\n if (zoom >= 1) {\n x = `${scaledDeviceDifferencePixels / 2}px`\n } else {\n const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth\n x = `${differenceFromDeviceToFrame / 2}px`\n margin = '0'\n }\n }\n }\n }\n\n let width = zoom ? `${100 / zoom}%` : '100%'\n let height = zoom ? `${100 / zoom}%` : '100%'\n\n if (breakpoint !== 'responsive') {\n width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`\n height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`\n }\n\n return (\n <div\n ref={outerFrameRef}\n style={{\n height: '100%',\n width: '100%',\n }}\n >\n <div\n ref={deviceFrameRef}\n style={{\n height,\n margin,\n transform: `translate3d(${x}, 0, 0)`,\n width,\n }}\n >\n {children}\n </div>\n </div>\n )\n}\n"],"names":["useResize","React","useEffect","useLivePreviewContext","DeviceContainer","props","children","deviceFrameRef","useRef","outerFrameRef","breakpoint","setMeasuredDeviceSize","size","desiredSize","zoom","measuredDeviceSize","current","outerFrameSize","deviceIsLargerThanFrame","x","margin","width","height","scaledDesiredWidth","scaledDeviceWidth","scaledDeviceDifferencePixels","differenceFromDeviceToFrame","div","ref","style","transform"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,SAAS,QAAQ,iCAAgC;AAC1D,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAExC,SAASC,qBAAqB,QAAQ,wBAAuB;AAE7D,OAAO,MAAMC,kBAER,CAACC;IACJ,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,MAAME,iBAAiBN,MAAMO,MAAM,CAAiB;IACpD,MAAMC,gBAAgBR,MAAMO,MAAM,CAAiB;IAEnD,MAAM,EAAEE,UAAU,EAAEC,qBAAqB,EAAEC,MAAMC,WAAW,EAAEC,IAAI,EAAE,GAAGX;IAEvE,iFAAiF;IACjF,2EAA2E;IAC3E,MAAM,EAAES,MAAMG,kBAAkB,EAAE,GAAGf,UAAUO,eAAeS,OAAO;IACrE,MAAM,EAAEJ,MAAMK,cAAc,EAAE,GAAGjB,UAAUS,cAAcO,OAAO;IAEhE,IAAIE,0BAAmC;IAEvC,qFAAqF;IACrF,iFAAiF;IACjF,8FAA8F;IAC9FhB,UAAU;QACR,IAAIa,oBAAoB;YACtBJ,sBAAsBI;QACxB;IACF,GAAG;QAACA;QAAoBJ;KAAsB;IAE9C,IAAIQ,IAAI;IACR,IAAIC,SAAS;IAEb,IAAIV,cAAcA,eAAe,cAAc;QAC7CS,IAAI;QAEJ,IACE,OAAOL,SAAS,YAChB,OAAOD,YAAYQ,KAAK,KAAK,YAC7B,OAAOR,YAAYS,MAAM,KAAK,YAC9B,OAAOP,mBAAmBM,KAAK,KAAK,YACpC,OAAON,mBAAmBO,MAAM,KAAK,UACrC;YACAF,SAAS;YACT,MAAMG,qBAAqBV,YAAYQ,KAAK,GAAGP;YAC/C,MAAMU,oBAAoBT,mBAAmBM,KAAK,GAAGP;YACrD,MAAMW,+BAA+BF,qBAAqBV,YAAYQ,KAAK;YAC3EH,0BAA0BM,oBAAoBP,eAAeI,KAAK;YAElE,IAAIH,yBAAyB;gBAC3B,IAAIJ,OAAO,GAAG;oBACZ,MAAMY,8BAA8BX,mBAAmBM,KAAK,GAAGJ,eAAeI,KAAK;oBACnF,IAAIK,8BAA8B,GAAGP,IAAI,CAAC,EAAEO,8BAA8B,EAAE,EAAE,CAAC;yBAC1EP,IAAI;gBACX,OAAO;oBACLA,IAAI;gBACN;YACF,OAAO;gBACL,IAAIL,QAAQ,GAAG;oBACbK,IAAI,CAAC,EAAEM,+BAA+B,EAAE,EAAE,CAAC;gBAC7C,OAAO;oBACL,MAAMC,8BAA8BT,eAAeI,KAAK,GAAGG;oBAC3DL,IAAI,CAAC,EAAEO,8BAA8B,EAAE,EAAE,CAAC;oBAC1CN,SAAS;gBACX;YACF;QACF;IACF;IAEA,IAAIC,QAAQP,OAAO,CAAC,EAAE,MAAMA,KAAK,CAAC,CAAC,GAAG;IACtC,IAAIQ,SAASR,OAAO,CAAC,EAAE,MAAMA,KAAK,CAAC,CAAC,GAAG;IAEvC,IAAIJ,eAAe,cAAc;QAC/BW,QAAQ,CAAC,EAAER,aAAaQ,QAAS,CAAA,OAAOP,SAAS,WAAWA,OAAO,CAAA,EAAG,EAAE,CAAC;QACzEQ,SAAS,CAAC,EAAET,aAAaS,SAAU,CAAA,OAAOR,SAAS,WAAWA,OAAO,CAAA,EAAG,EAAE,CAAC;IAC7E;IAEA,qBACE,KAACa;QACCC,KAAKnB;QACLoB,OAAO;YACLP,QAAQ;YACRD,OAAO;QACT;kBAEA,cAAA,KAACM;YACCC,KAAKrB;YACLsB,OAAO;gBACLP;gBACAF;gBACAU,WAAW,CAAC,YAAY,EAAEX,EAAE,OAAO,CAAC;gBACpCE;YACF;sBAECf;;;AAIT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,CAoHrC"}
|
package/dist/withPayload.js
CHANGED
|
@@ -22,6 +22,13 @@
|
|
|
22
22
|
'drizzle-kit/payload',
|
|
23
23
|
'libsql'
|
|
24
24
|
]
|
|
25
|
+
},
|
|
26
|
+
turbo: {
|
|
27
|
+
...nextConfig?.experimental?.turbo || {},
|
|
28
|
+
resolveAlias: {
|
|
29
|
+
...nextConfig?.experimental?.turbo?.resolveAlias || {},
|
|
30
|
+
'payload-mock-package': 'payload-mock-package'
|
|
31
|
+
}
|
|
25
32
|
}
|
|
26
33
|
},
|
|
27
34
|
headers: async ()=>{
|
package/dist/withPayload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This may cause stale data to load in the Admin Panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env: {\n ...(nextConfig?.env || {}),\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n outputFileTracingExcludes: {\n '**/*': [\n ...(nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'libsql',\n ],\n },\n },\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'libsql',\n 'pino',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"names":["withPayload","nextConfig","experimental","staleTimes","dynamic","console","warn","toReturn","env","outputFileTracingExcludes","headers","headersFromConfig","source","key","value","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This may cause stale data to load in the Admin Panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env: {\n ...(nextConfig?.env || {}),\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n outputFileTracingExcludes: {\n '**/*': [\n ...(nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'libsql',\n ],\n },\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'libsql',\n 'pino',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/payload',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"names":["withPayload","nextConfig","experimental","staleTimes","dynamic","console","warn","toReturn","env","outputFileTracingExcludes","turbo","resolveAlias","headers","headersFromConfig","source","key","value","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;;;GAIG,GACH,OAAO,MAAMA,cAAc,CAACC,aAAa,CAAC,CAAC;IACzC,IAAIA,WAAWC,YAAY,EAAEC,YAAYC,SAAS;QAChDC,QAAQC,IAAI,CACV;IAEJ;IAEA;;GAEC,GACD,MAAMC,WAAW;QACf,GAAGN,UAAU;QACbO,KAAK;YACH,GAAIP,YAAYO,OAAO,CAAC,CAAC;QAC3B;QACAN,cAAc;YACZ,GAAID,YAAYC,gBAAgB,CAAC,CAAC;YAClCO,2BAA2B;gBACzB,QAAQ;uBACFR,WAAWC,YAAY,EAAEO,2BAA2B,CAAC,OAAO,IAAI,EAAE;oBACtE;oBACA;oBACA;iBACD;YACH;YACAC,OAAO;gBACL,GAAIT,YAAYC,cAAcQ,SAAS,CAAC,CAAC;gBACzCC,cAAc;oBACZ,GAAIV,YAAYC,cAAcQ,OAAOC,gBAAgB,CAAC,CAAC;oBACvD,wBAAwB;gBAC1B;YACF;QACF;QACAC,SAAS;YACP,MAAMC,oBAAoB,aAAaZ,aAAa,MAAMA,WAAWW,OAAO,KAAK,EAAE;YAEnF,OAAO;mBACDC,qBAAqB,EAAE;gBAC3B;oBACEC,QAAQ;oBACRF,SAAS;wBACP;4BACEG,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;qBACD;gBACH;aACD;QACH;QACAC,wBAAwB;eAClBhB,YAAYgB,0BAA0B,EAAE;YAC5C;YACA;YACA;YACA;YACA;YACA;SACD;QACDC,SAAS,CAACC,eAAeC;YACvB,MAAMC,wBACJ,OAAOpB,WAAWiB,OAAO,KAAK,aAC1BjB,WAAWiB,OAAO,CAACC,eAAeC,kBAClCD;YAEN,OAAO;gBACL,GAAGE,qBAAqB;gBACxBC,WAAW;uBACLD,uBAAuBC,aAAa,EAAE;oBAC1C;oBACA;oBACA;oBACA;iBACD;gBACDC,gBAAgB;uBACVF,uBAAuBE,kBAAkB,EAAE;oBAC/C;wBAAEC,QAAQ;oBAAwC;oBAClD;wBAAEC,MAAM;oBAAwC;oBAChD;wBAAED,QAAQ;oBAAuC;oBACjD;wBAAEC,MAAM;oBAAuC;iBAChD;gBACDC,SAAS;oBACP,GAAIL,uBAAuBK,WAAW,CAAC,CAAC;oBACxCC,OAAO;wBACL,GAAIN,uBAAuBK,SAASC,SAAS,CAAC,CAAC;oBACjD;oBACAC,UAAU;wBACR,GAAIP,uBAAuBK,SAASE,YAAY,CAAC,CAAC;wBAClD,iCAAiC;wBACjC,oBAAoB;wBACpBC,MAAM;wBACNC,UAAU;wBACV,6BAA6B;wBAC7BC,QAAQ;wBACR,kBAAkB;wBAClB,eAAe;oBACjB;gBACF;YACF;QACF;IACF;IAEA,IAAI9B,WAAW+B,QAAQ,EAAE;QACvBzB,SAASC,GAAG,CAACyB,cAAc,GAAGhC,WAAW+B,QAAQ;IACnD;IAEA,OAAOzB;AACT,EAAC;AAED,eAAeP,YAAW"}
|
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.44",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"react-toastify": "10.0.5",
|
|
43
43
|
"sass": "1.77.4",
|
|
44
44
|
"ws": "^8.16.0",
|
|
45
|
-
"@payloadcms/
|
|
46
|
-
"@payloadcms/
|
|
47
|
-
"@payloadcms/
|
|
45
|
+
"@payloadcms/graphql": "3.0.0-beta.44",
|
|
46
|
+
"@payloadcms/translations": "3.0.0-beta.44",
|
|
47
|
+
"@payloadcms/ui": "3.0.0-beta.44"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@next/eslint-plugin-next": "^14.1.0",
|
|
@@ -64,15 +64,15 @@
|
|
|
64
64
|
"webpack": "^5.78.0",
|
|
65
65
|
"webpack-cli": "^5.1.4",
|
|
66
66
|
"@payloadcms/eslint-config": "1.1.1",
|
|
67
|
-
"payload": "3.0.0-beta.
|
|
67
|
+
"payload": "3.0.0-beta.44"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"graphql": "^16.8.1",
|
|
71
71
|
"next": "^15.0.0-rc.0",
|
|
72
|
-
"payload": "3.0.0-beta.
|
|
72
|
+
"payload": "3.0.0-beta.44"
|
|
73
73
|
},
|
|
74
74
|
"engines": {
|
|
75
|
-
"node": "
|
|
75
|
+
"node": "^18.20.2 || >=20.9.0"
|
|
76
76
|
},
|
|
77
77
|
"publishConfig": {
|
|
78
78
|
"registry": "https://registry.npmjs.org/"
|