@payloadcms/next 3.0.0-beta.74 → 3.0.0-beta.76
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 +15 -13
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +1 -0
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +5 -3
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.scss +0 -7
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +16 -1
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/meta.d.ts.map +1 -1
- package/dist/utilities/meta.js +2 -4
- package/dist/utilities/meta.js.map +1 -1
- package/dist/views/Account/index.js +3 -4
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +1 -0
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/Dashboard/index.js +3 -4
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +3 -4
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/Default/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/index.js +4 -1
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +20 -7
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +12 -21
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +41 -21
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
- package/dist/views/Version/index.d.ts +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +32 -5
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/getLatestVersion.d.ts +13 -4
- package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
- package/dist/views/Versions/getLatestVersion.js +6 -1
- package/dist/views/Versions/getLatestVersion.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +24 -4
- package/dist/views/Versions/index.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +15 -13
- package/dist/withPayload.js.map +1 -1
- package/package.json +7 -7
package/dist/cjs/withPayload.cjs
CHANGED
|
@@ -31,21 +31,23 @@ const withPayload = (nextConfig = {})=>{
|
|
|
31
31
|
env: {
|
|
32
32
|
...nextConfig?.env || {}
|
|
33
33
|
},
|
|
34
|
+
outputFileTracingExcludes: {
|
|
35
|
+
...nextConfig?.outputFileTracingExcludes || {},
|
|
36
|
+
'**/*': [
|
|
37
|
+
...nextConfig?.outputFileTracingExcludes?.['**/*'] || [],
|
|
38
|
+
'drizzle-kit',
|
|
39
|
+
'drizzle-kit/api'
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
outputFileTracingIncludes: {
|
|
43
|
+
...nextConfig?.outputFileTracingIncludes || {},
|
|
44
|
+
'**/*': [
|
|
45
|
+
...nextConfig?.outputFileTracingIncludes?.['**/*'] || [],
|
|
46
|
+
'@libsql/client'
|
|
47
|
+
]
|
|
48
|
+
},
|
|
34
49
|
experimental: {
|
|
35
50
|
...nextConfig?.experimental || {},
|
|
36
|
-
outputFileTracingExcludes: {
|
|
37
|
-
'**/*': [
|
|
38
|
-
...nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || [],
|
|
39
|
-
'drizzle-kit',
|
|
40
|
-
'drizzle-kit/api'
|
|
41
|
-
]
|
|
42
|
-
},
|
|
43
|
-
outputFileTracingIncludes: {
|
|
44
|
-
'**/*': [
|
|
45
|
-
...nextConfig.experimental?.outputFileTracingIncludes?.['**/*'] || [],
|
|
46
|
-
'@libsql/client'
|
|
47
|
-
]
|
|
48
|
-
},
|
|
49
51
|
turbo: {
|
|
50
52
|
...nextConfig?.experimental?.turbo || {},
|
|
51
53
|
resolveAlias: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/withPayload.js"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/withPayload.js"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;IAyHH,OAA0B;eAA1B;;IAxHa,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,2BAA2B;YACzB,GAAI,YAAY,6BAA6B,CAAC,CAAC;YAC/C,QAAQ;mBACF,YAAY,2BAA2B,CAAC,OAAO,IAAI,EAAE;gBACzD;gBACA;aACD;QACH;QACA,2BAA2B;YACzB,GAAI,YAAY,6BAA6B,CAAC,CAAC;YAC/C,QAAQ;mBAAK,YAAY,2BAA2B,CAAC,OAAO,IAAI,EAAE;gBAAG;aAAiB;QACxF;QACA,cAAc;YACZ,GAAI,YAAY,gBAAgB,CAAC,CAAC;YAClC,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 outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\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/api',\n 'pino',\n 'libsql',\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/api',\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,"sources":["../../../src/elements/EmailAndUsername/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldPermissions, LoginWithUsernameOptions } from 'payload'\n\nimport { EmailField, RenderFields, TextField, useTranslation } from '@payloadcms/ui'\nimport { email, username } from 'payload/shared'\nimport React from 'react'\n\ntype Props = {\n loginWithUsername?: LoginWithUsernameOptions | false\n}\nfunction EmailFieldComponent(props: Props) {\n const { loginWithUsername } = props\n const { t } = useTranslation()\n\n const requireEmail = !loginWithUsername || (loginWithUsername && loginWithUsername.requireEmail)\n const showEmailField =\n !loginWithUsername || loginWithUsername?.requireEmail || loginWithUsername?.allowEmailLogin\n\n if (showEmailField) {\n return (\n <EmailField\n autoComplete=\"off\"\n label={t('general:email')}\n name=\"email\"\n path=\"email\"\n required={requireEmail}\n validate={email}\n />\n )\n }\n\n return null\n}\n\nfunction UsernameFieldComponent(props: Props) {\n const { loginWithUsername } = props\n const { t } = useTranslation()\n\n const requireUsername = loginWithUsername && loginWithUsername.requireUsername\n const showUsernameField = Boolean(loginWithUsername)\n\n if (showUsernameField) {\n return (\n <TextField\n label={t('authentication:username')}\n name=\"username\"\n path=\"username\"\n required={requireUsername}\n validate={username}\n />\n )\n }\n\n return null\n}\n\ntype RenderEmailAndUsernameFieldsProps = {\n className?: string\n loginWithUsername?: LoginWithUsernameOptions | false\n operation?: 'create' | 'update'\n permissions?: {\n [fieldName: string]: FieldPermissions\n }\n readOnly: boolean\n}\nexport function RenderEmailAndUsernameFields(props: RenderEmailAndUsernameFieldsProps) {\n const { className, loginWithUsername, operation, permissions, readOnly } = props\n\n return (\n <RenderFields\n className={className}\n fieldMap={[\n {\n name: 'email',\n type: 'text',\n CustomField: <EmailFieldComponent loginWithUsername={loginWithUsername} />,\n cellComponentProps: null,\n fieldComponentProps: { type: 'email', readOnly },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n localized: false,\n },\n {\n name: 'username',\n type: 'text',\n CustomField: <UsernameFieldComponent loginWithUsername={loginWithUsername} />,\n cellComponentProps: null,\n fieldComponentProps: { type: 'text', readOnly },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n localized: false,\n },\n ]}\n forceRender\n operation={operation}\n path=\"\"\n permissions={permissions}\n readOnly={readOnly}\n schemaPath=\"\"\n />\n )\n}\n"],"names":["EmailField","RenderFields","TextField","useTranslation","email","username","React","EmailFieldComponent","props","loginWithUsername","t","requireEmail","showEmailField","allowEmailLogin","autoComplete","label","name","path","required","validate","UsernameFieldComponent","requireUsername","showUsernameField","Boolean","RenderEmailAndUsernameFields","className","operation","permissions","readOnly","fieldMap","type","CustomField","cellComponentProps","fieldComponentProps","fieldIsPresentational","isFieldAffectingData","localized","forceRender","schemaPath"],"mappings":"AAAA;;AAIA,SAASA,UAAU,EAAEC,YAAY,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACpF,SAASC,KAAK,EAAEC,QAAQ,QAAQ,iBAAgB;AAChD,OAAOC,WAAW,QAAO;AAKzB,SAASC,oBAAoBC,KAAY;IACvC,MAAM,EAAEC,iBAAiB,EAAE,GAAGD;IAC9B,MAAM,EAAEE,CAAC,EAAE,GAAGP;IAEd,MAAMQ,eAAe,CAACF,qBAAsBA,qBAAqBA,kBAAkBE,YAAY;IAC/F,MAAMC,iBACJ,CAACH,qBAAqBA,mBAAmBE,gBAAgBF,mBAAmBI;IAE9E,IAAID,gBAAgB;QAClB,qBACE,KAACZ;YACCc,cAAa;YACbC,OAAOL,EAAE;YACTM,MAAK;YACLC,MAAK;YACLC,UAAUP;YACVQ,UAAUf;;IAGhB;IAEA,OAAO;AACT;AAEA,SAASgB,uBAAuBZ,KAAY;IAC1C,MAAM,EAAEC,iBAAiB,EAAE,GAAGD;IAC9B,MAAM,EAAEE,CAAC,EAAE,GAAGP;IAEd,MAAMkB,kBAAkBZ,qBAAqBA,kBAAkBY,eAAe;IAC9E,MAAMC,oBAAoBC,QAAQd;IAElC,IAAIa,mBAAmB;QACrB,qBACE,KAACpB;YACCa,OAAOL,EAAE;YACTM,MAAK;YACLC,MAAK;YACLC,UAAUG;YACVF,UAAUd;;IAGhB;IAEA,OAAO;AACT;AAWA,OAAO,SAASmB,6BAA6BhB,KAAwC;IACnF,MAAM,EAAEiB,SAAS,EAAEhB,iBAAiB,EAAEiB,SAAS,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAGpB;IAE3E,qBACE,KAACP;QACCwB,WAAWA;QACXI,UAAU;YACR;gBACEb,MAAM;gBACNc,MAAM;gBACNC,2BAAa,KAACxB;oBAAoBE,mBAAmBA;;gBACrDuB,oBAAoB;gBACpBC,qBAAqB;oBAAEH,MAAM;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/EmailAndUsername/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldPermissions, LoginWithUsernameOptions } from 'payload'\n\nimport { EmailField, RenderFields, TextField, useTranslation } from '@payloadcms/ui'\nimport { email, username } from 'payload/shared'\nimport React from 'react'\n\ntype Props = {\n loginWithUsername?: LoginWithUsernameOptions | false\n}\nfunction EmailFieldComponent(props: Props) {\n const { loginWithUsername } = props\n const { t } = useTranslation()\n\n const requireEmail = !loginWithUsername || (loginWithUsername && loginWithUsername.requireEmail)\n const showEmailField =\n !loginWithUsername || loginWithUsername?.requireEmail || loginWithUsername?.allowEmailLogin\n\n if (showEmailField) {\n return (\n <EmailField\n autoComplete=\"off\"\n label={t('general:email')}\n name=\"email\"\n path=\"email\"\n required={requireEmail}\n validate={email}\n />\n )\n }\n\n return null\n}\n\nfunction UsernameFieldComponent(props: Props) {\n const { loginWithUsername } = props\n const { t } = useTranslation()\n\n const requireUsername = loginWithUsername && loginWithUsername.requireUsername\n const showUsernameField = Boolean(loginWithUsername)\n\n if (showUsernameField) {\n return (\n <TextField\n label={t('authentication:username')}\n name=\"username\"\n path=\"username\"\n required={requireUsername}\n validate={username}\n />\n )\n }\n\n return null\n}\n\ntype RenderEmailAndUsernameFieldsProps = {\n className?: string\n loginWithUsername?: LoginWithUsernameOptions | false\n operation?: 'create' | 'update'\n permissions?: {\n [fieldName: string]: FieldPermissions\n }\n readOnly: boolean\n}\nexport function RenderEmailAndUsernameFields(props: RenderEmailAndUsernameFieldsProps) {\n const { className, loginWithUsername, operation, permissions, readOnly } = props\n\n return (\n <RenderFields\n className={className}\n fieldMap={[\n {\n name: 'email',\n type: 'text',\n CustomField: <EmailFieldComponent loginWithUsername={loginWithUsername} />,\n cellComponentProps: null,\n fieldComponentProps: { type: 'email', autoComplete: 'off', readOnly },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n localized: false,\n },\n {\n name: 'username',\n type: 'text',\n CustomField: <UsernameFieldComponent loginWithUsername={loginWithUsername} />,\n cellComponentProps: null,\n fieldComponentProps: { type: 'text', readOnly },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n localized: false,\n },\n ]}\n forceRender\n operation={operation}\n path=\"\"\n permissions={permissions}\n readOnly={readOnly}\n schemaPath=\"\"\n />\n )\n}\n"],"names":["EmailField","RenderFields","TextField","useTranslation","email","username","React","EmailFieldComponent","props","loginWithUsername","t","requireEmail","showEmailField","allowEmailLogin","autoComplete","label","name","path","required","validate","UsernameFieldComponent","requireUsername","showUsernameField","Boolean","RenderEmailAndUsernameFields","className","operation","permissions","readOnly","fieldMap","type","CustomField","cellComponentProps","fieldComponentProps","fieldIsPresentational","isFieldAffectingData","localized","forceRender","schemaPath"],"mappings":"AAAA;;AAIA,SAASA,UAAU,EAAEC,YAAY,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACpF,SAASC,KAAK,EAAEC,QAAQ,QAAQ,iBAAgB;AAChD,OAAOC,WAAW,QAAO;AAKzB,SAASC,oBAAoBC,KAAY;IACvC,MAAM,EAAEC,iBAAiB,EAAE,GAAGD;IAC9B,MAAM,EAAEE,CAAC,EAAE,GAAGP;IAEd,MAAMQ,eAAe,CAACF,qBAAsBA,qBAAqBA,kBAAkBE,YAAY;IAC/F,MAAMC,iBACJ,CAACH,qBAAqBA,mBAAmBE,gBAAgBF,mBAAmBI;IAE9E,IAAID,gBAAgB;QAClB,qBACE,KAACZ;YACCc,cAAa;YACbC,OAAOL,EAAE;YACTM,MAAK;YACLC,MAAK;YACLC,UAAUP;YACVQ,UAAUf;;IAGhB;IAEA,OAAO;AACT;AAEA,SAASgB,uBAAuBZ,KAAY;IAC1C,MAAM,EAAEC,iBAAiB,EAAE,GAAGD;IAC9B,MAAM,EAAEE,CAAC,EAAE,GAAGP;IAEd,MAAMkB,kBAAkBZ,qBAAqBA,kBAAkBY,eAAe;IAC9E,MAAMC,oBAAoBC,QAAQd;IAElC,IAAIa,mBAAmB;QACrB,qBACE,KAACpB;YACCa,OAAOL,EAAE;YACTM,MAAK;YACLC,MAAK;YACLC,UAAUG;YACVF,UAAUd;;IAGhB;IAEA,OAAO;AACT;AAWA,OAAO,SAASmB,6BAA6BhB,KAAwC;IACnF,MAAM,EAAEiB,SAAS,EAAEhB,iBAAiB,EAAEiB,SAAS,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAGpB;IAE3E,qBACE,KAACP;QACCwB,WAAWA;QACXI,UAAU;YACR;gBACEb,MAAM;gBACNc,MAAM;gBACNC,2BAAa,KAACxB;oBAAoBE,mBAAmBA;;gBACrDuB,oBAAoB;gBACpBC,qBAAqB;oBAAEH,MAAM;oBAAShB,cAAc;oBAAOc;gBAAS;gBACpEM,uBAAuB;gBACvBC,sBAAsB;gBACtBC,WAAW;YACb;YACA;gBACEpB,MAAM;gBACNc,MAAM;gBACNC,2BAAa,KAACX;oBAAuBX,mBAAmBA;;gBACxDuB,oBAAoB;gBACpBC,qBAAqB;oBAAEH,MAAM;oBAAQF;gBAAS;gBAC9CM,uBAAuB;gBACvBC,sBAAsB;gBACtBC,WAAW;YACb;SACD;QACDC,WAAW;QACXX,WAAWA;QACXT,MAAK;QACLU,aAAaA;QACbC,UAAUA;QACVU,YAAW;;AAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EA6FpC,CAAA"}
|
|
@@ -4,11 +4,13 @@ import { getTranslation } from '@payloadcms/translations';
|
|
|
4
4
|
import { ChevronIcon, NavGroup, useAuth, useConfig, useEntityVisibility, useNav, useTranslation } from '@payloadcms/ui';
|
|
5
5
|
import { EntityType, formatAdminURL, groupNavItems } from '@payloadcms/ui/shared';
|
|
6
6
|
import LinkWithDefault from 'next/link.js';
|
|
7
|
+
import { usePathname } from 'next/navigation.js';
|
|
7
8
|
import React, { Fragment } from 'react';
|
|
8
9
|
const baseClass = 'nav';
|
|
9
10
|
export const DefaultNavClient = ()=>{
|
|
10
11
|
const { permissions } = useAuth();
|
|
11
12
|
const { isEntityVisible } = useEntityVisibility();
|
|
13
|
+
const pathname = usePathname();
|
|
12
14
|
const { collections, globals, routes: { admin: adminRoute } } = useConfig();
|
|
13
15
|
const { i18n } = useTranslation();
|
|
14
16
|
const { navOpen } = useNav();
|
|
@@ -58,17 +60,17 @@ export const DefaultNavClient = ()=>{
|
|
|
58
60
|
}
|
|
59
61
|
const Link = LinkWithDefault.default || LinkWithDefault;
|
|
60
62
|
const LinkElement = Link || 'a';
|
|
61
|
-
const activeCollection =
|
|
63
|
+
const activeCollection = pathname.endsWith(href);
|
|
62
64
|
return /*#__PURE__*/ _jsxs(LinkElement, {
|
|
63
65
|
className: [
|
|
64
66
|
`${baseClass}__link`,
|
|
65
|
-
activeCollection
|
|
67
|
+
activeCollection && `active`
|
|
66
68
|
].filter(Boolean).join(' '),
|
|
67
69
|
href: href,
|
|
68
70
|
id: id,
|
|
69
71
|
tabIndex: !navOpen ? -1 : undefined,
|
|
70
72
|
children: [
|
|
71
|
-
/*#__PURE__*/ _jsx("span", {
|
|
73
|
+
activeCollection && /*#__PURE__*/ _jsx("span", {
|
|
72
74
|
className: `${baseClass}__link-icon`,
|
|
73
75
|
children: /*#__PURE__*/ _jsx(ChevronIcon, {
|
|
74
76
|
direction: "right"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Nav/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { EntityToGroup } from '@payloadcms/ui/shared'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n ChevronIcon,\n NavGroup,\n useAuth,\n useConfig,\n useEntityVisibility,\n useNav,\n useTranslation,\n} from '@payloadcms/ui'\nimport { EntityType, formatAdminURL, groupNavItems } from '@payloadcms/ui/shared'\nimport LinkWithDefault from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nconst baseClass = 'nav'\n\nexport const DefaultNavClient: React.FC = () => {\n const { permissions } = useAuth()\n const { isEntityVisible } = useEntityVisibility()\n\n const {\n collections,\n globals,\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { navOpen } = useNav()\n\n const groups = groupNavItems(\n [\n ...collections\n .filter(({ slug }) => isEntityVisible({ collectionSlug: slug }))\n .map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }),\n ...globals\n .filter(({ slug }) => isEntityVisible({ globalSlug: slug }))\n .map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n {groups.map(({ entities, label }, key) => {\n return (\n <NavGroup key={key} label={label}>\n {entities.map(({ type, entity }, i) => {\n let entityLabel: string\n let href: string\n let id: string\n\n if (type === EntityType.collection) {\n href = formatAdminURL({ adminRoute, path: `/collections/${entity.slug}` })\n entityLabel = getTranslation(entity.labels.plural, i18n)\n id = `nav-${entity.slug}`\n }\n\n if (type === EntityType.global) {\n href = formatAdminURL({ adminRoute, path: `/globals/${entity.slug}` })\n entityLabel = getTranslation(entity.label, i18n)\n id = `nav-global-${entity.slug}`\n }\n\n const Link = (LinkWithDefault.default ||\n LinkWithDefault) as typeof LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Nav/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { EntityToGroup } from '@payloadcms/ui/shared'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n ChevronIcon,\n NavGroup,\n useAuth,\n useConfig,\n useEntityVisibility,\n useNav,\n useTranslation,\n} from '@payloadcms/ui'\nimport { EntityType, formatAdminURL, groupNavItems } from '@payloadcms/ui/shared'\nimport LinkWithDefault from 'next/link.js'\nimport { usePathname } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nconst baseClass = 'nav'\n\nexport const DefaultNavClient: React.FC = () => {\n const { permissions } = useAuth()\n const { isEntityVisible } = useEntityVisibility()\n const pathname = usePathname()\n\n const {\n collections,\n globals,\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { navOpen } = useNav()\n\n const groups = groupNavItems(\n [\n ...collections\n .filter(({ slug }) => isEntityVisible({ collectionSlug: slug }))\n .map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }),\n ...globals\n .filter(({ slug }) => isEntityVisible({ globalSlug: slug }))\n .map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n {groups.map(({ entities, label }, key) => {\n return (\n <NavGroup key={key} label={label}>\n {entities.map(({ type, entity }, i) => {\n let entityLabel: string\n let href: string\n let id: string\n\n if (type === EntityType.collection) {\n href = formatAdminURL({ adminRoute, path: `/collections/${entity.slug}` })\n entityLabel = getTranslation(entity.labels.plural, i18n)\n id = `nav-${entity.slug}`\n }\n\n if (type === EntityType.global) {\n href = formatAdminURL({ adminRoute, path: `/globals/${entity.slug}` })\n entityLabel = getTranslation(entity.label, i18n)\n id = `nav-global-${entity.slug}`\n }\n\n const Link = (LinkWithDefault.default ||\n LinkWithDefault) as typeof LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n const activeCollection = pathname.endsWith(href)\n\n return (\n <LinkElement\n className={[`${baseClass}__link`, activeCollection && `active`]\n .filter(Boolean)\n .join(' ')}\n href={href}\n id={id}\n key={i}\n tabIndex={!navOpen ? -1 : undefined}\n >\n {activeCollection && (\n <span className={`${baseClass}__link-icon`}>\n <ChevronIcon direction=\"right\" />\n </span>\n )}\n <span className={`${baseClass}__link-label`}>{entityLabel}</span>\n </LinkElement>\n )\n })}\n </NavGroup>\n )\n })}\n </Fragment>\n )\n}\n"],"names":["getTranslation","ChevronIcon","NavGroup","useAuth","useConfig","useEntityVisibility","useNav","useTranslation","EntityType","formatAdminURL","groupNavItems","LinkWithDefault","usePathname","React","Fragment","baseClass","DefaultNavClient","permissions","isEntityVisible","pathname","collections","globals","routes","admin","adminRoute","i18n","navOpen","groups","filter","slug","collectionSlug","map","collection","entityToGroup","type","entity","globalSlug","global","entities","label","key","i","entityLabel","href","id","path","labels","plural","Link","default","LinkElement","activeCollection","endsWith","className","Boolean","join","tabIndex","undefined","span","direction"],"mappings":"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"}
|
|
@@ -110,16 +110,9 @@
|
|
|
110
110
|
&__link {
|
|
111
111
|
display: flex;
|
|
112
112
|
align-items: center;
|
|
113
|
-
|
|
114
|
-
&.active {
|
|
115
|
-
.nav__link-icon {
|
|
116
|
-
display: block;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
113
|
}
|
|
120
114
|
|
|
121
115
|
&__link-icon {
|
|
122
|
-
display: none;
|
|
123
116
|
margin-right: calc(var(--base) * 0.25);
|
|
124
117
|
top: -1px;
|
|
125
118
|
position: relative;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,8BAA8B,CAAA;AAKrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,eAAO,MAAM,UAAU,yCAGpB;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACjC,+BAoGA,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { initI18n, rtlLanguages } from '@payloadcms/translations';
|
|
|
3
3
|
import { RootProvider } from '@payloadcms/ui';
|
|
4
4
|
import { buildComponentMap } from '@payloadcms/ui/utilities/buildComponentMap';
|
|
5
5
|
import { headers as getHeaders, cookies as nextCookies } from 'next/headers.js';
|
|
6
|
-
import { createClientConfig, parseCookies } from 'payload';
|
|
6
|
+
import { createClientConfig, createLocalReq, parseCookies } from 'payload';
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { getPayloadHMR } from '../../utilities/getPayloadHMR.js';
|
|
9
9
|
import { getRequestLanguage } from '../../utilities/getRequestLanguage.js';
|
|
@@ -36,6 +36,19 @@ export const RootLayout = async ({ children, config: configPromise })=>{
|
|
|
36
36
|
context: 'client',
|
|
37
37
|
language: languageCode
|
|
38
38
|
});
|
|
39
|
+
const req = await createLocalReq({
|
|
40
|
+
fallbackLocale: null,
|
|
41
|
+
req: {
|
|
42
|
+
headers,
|
|
43
|
+
host: headers.get('host'),
|
|
44
|
+
i18n,
|
|
45
|
+
url: `${payload.config.serverURL}`
|
|
46
|
+
}
|
|
47
|
+
}, payload);
|
|
48
|
+
const { permissions, user } = await payload.auth({
|
|
49
|
+
headers,
|
|
50
|
+
req
|
|
51
|
+
});
|
|
39
52
|
const clientConfig = await createClientConfig({
|
|
40
53
|
config,
|
|
41
54
|
t: i18n.t
|
|
@@ -79,9 +92,11 @@ export const RootLayout = async ({ children, config: configPromise })=>{
|
|
|
79
92
|
fallbackLang: clientConfig.i18n.fallbackLanguage,
|
|
80
93
|
languageCode: languageCode,
|
|
81
94
|
languageOptions: languageOptions,
|
|
95
|
+
permissions: permissions,
|
|
82
96
|
switchLanguageServerAction: switchLanguageServerAction,
|
|
83
97
|
theme: theme,
|
|
84
98
|
translations: i18n.translations,
|
|
99
|
+
user: user,
|
|
85
100
|
children: wrappedChildren
|
|
86
101
|
}),
|
|
87
102
|
/*#__PURE__*/ _jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages, I18nClient } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n, rtlLanguages } from '@payloadcms/translations'\nimport { RootProvider } from '@payloadcms/ui'\nimport '@payloadcms/ui/scss/app.scss'\nimport { buildComponentMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { createClientConfig, parseCookies } from 'payload'\nimport React from 'react'\n\nimport { getPayloadHMR } from '../../utilities/getPayloadHMR.js'\nimport { getRequestLanguage } from '../../utilities/getRequestLanguage.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { DefaultEditView } from '../../views/Edit/Default/index.js'\nimport { DefaultListView } from '../../views/List/Default/index.js'\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\nexport const RootLayout = async ({\n children,\n config: configPromise,\n}: {\n children: React.ReactNode\n config: Promise<SanitizedConfig>\n}) => {\n const config = await configPromise\n\n const headers = getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const payload = await getPayloadHMR({ config })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const clientConfig = await createClientConfig({ config, t: i18n.t })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n nextCookies().set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n path: '/',\n value: lang,\n })\n }\n\n const { componentMap, wrappedChildren } = buildComponentMap({\n DefaultEditView,\n DefaultListView,\n children,\n i18n,\n payload,\n })\n\n return (\n <html data-theme={theme} dir={dir} lang={languageCode}>\n <body>\n <RootProvider\n componentMap={componentMap}\n config={clientConfig}\n dateFNSKey={i18n.dateFNSKey}\n fallbackLang={clientConfig.i18n.fallbackLanguage}\n languageCode={languageCode}\n languageOptions={languageOptions}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={i18n.translations}\n >\n {wrappedChildren}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"names":["initI18n","rtlLanguages","RootProvider","buildComponentMap","headers","getHeaders","cookies","nextCookies","createClientConfig","parseCookies","React","getPayloadHMR","getRequestLanguage","getRequestTheme","DefaultEditView","DefaultListView","metadata","description","title","RootLayout","children","config","configPromise","languageCode","theme","payload","i18n","context","language","clientConfig","t","dir","includes","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","componentMap","wrappedChildren","html","data-theme","body","dateFNSKey","fallbackLang","fallbackLanguage","div","id"],"mappings":";AAGA,SAASA,QAAQ,EAAEC,YAAY,QAAQ,2BAA0B;AACjE,SAASC,YAAY,QAAQ,iBAAgB;AAE7C,SAASC,iBAAiB,QAAQ,6CAA4C;AAC9E,SAASC,WAAWC,UAAU,EAAEC,WAAWC,WAAW,QAAQ,kBAAiB;AAC/E,SAASC,kBAAkB,EAAEC,YAAY,QAAQ,UAAS;
|
|
1
|
+
{"version":3,"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages, I18nClient } from '@payloadcms/translations'\nimport type { PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { initI18n, rtlLanguages } from '@payloadcms/translations'\nimport { RootProvider } from '@payloadcms/ui'\nimport '@payloadcms/ui/scss/app.scss'\nimport { buildComponentMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { createClientConfig, createLocalReq, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\nimport React from 'react'\n\nimport { getPayloadHMR } from '../../utilities/getPayloadHMR.js'\nimport { getRequestLanguage } from '../../utilities/getRequestLanguage.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { DefaultEditView } from '../../views/Edit/Default/index.js'\nimport { DefaultListView } from '../../views/List/Default/index.js'\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\nexport const RootLayout = async ({\n children,\n config: configPromise,\n}: {\n children: React.ReactNode\n config: Promise<SanitizedConfig>\n}) => {\n const config = await configPromise\n\n const headers = getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const payload = await getPayloadHMR({ config })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n url: `${payload.config.serverURL}`,\n } as PayloadRequest,\n },\n payload,\n )\n const { permissions, user } = await payload.auth({ headers, req })\n\n const clientConfig = await createClientConfig({ config, t: i18n.t })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n nextCookies().set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n path: '/',\n value: lang,\n })\n }\n\n const { componentMap, wrappedChildren } = buildComponentMap({\n DefaultEditView,\n DefaultListView,\n children,\n i18n,\n payload,\n })\n\n return (\n <html data-theme={theme} dir={dir} lang={languageCode}>\n <body>\n <RootProvider\n componentMap={componentMap}\n config={clientConfig}\n dateFNSKey={i18n.dateFNSKey}\n fallbackLang={clientConfig.i18n.fallbackLanguage}\n languageCode={languageCode}\n languageOptions={languageOptions}\n permissions={permissions}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={i18n.translations}\n user={user}\n >\n {wrappedChildren}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"names":["initI18n","rtlLanguages","RootProvider","buildComponentMap","headers","getHeaders","cookies","nextCookies","createClientConfig","createLocalReq","parseCookies","React","getPayloadHMR","getRequestLanguage","getRequestTheme","DefaultEditView","DefaultListView","metadata","description","title","RootLayout","children","config","configPromise","languageCode","theme","payload","i18n","context","language","req","fallbackLocale","host","get","url","serverURL","permissions","user","auth","clientConfig","t","dir","includes","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","componentMap","wrappedChildren","html","data-theme","body","dateFNSKey","fallbackLang","fallbackLanguage","div","id"],"mappings":"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"}
|