@payloadcms/next 3.0.0-beta.36 → 3.0.0-beta.38

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.
Files changed (111) hide show
  1. package/dist/cjs/withPayload.cjs +3 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/exports/utilities.d.ts +0 -1
  4. package/dist/exports/utilities.d.ts.map +1 -1
  5. package/dist/exports/utilities.js +0 -1
  6. package/dist/exports/utilities.js.map +1 -1
  7. package/dist/layouts/Root/index.d.ts.map +1 -1
  8. package/dist/layouts/Root/index.js.map +1 -1
  9. package/dist/prod/styles.css +1 -1
  10. package/dist/routes/rest/buildFormState.d.ts +0 -2
  11. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  12. package/dist/routes/rest/buildFormState.js +16 -166
  13. package/dist/routes/rest/buildFormState.js.map +1 -1
  14. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  15. package/dist/utilities/getPayloadHMR.js +5 -3
  16. package/dist/utilities/getPayloadHMR.js.map +1 -1
  17. package/dist/utilities/initPage/index.d.ts.map +1 -1
  18. package/dist/utilities/initPage/index.js +10 -0
  19. package/dist/utilities/initPage/index.js.map +1 -1
  20. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  21. package/dist/utilities/initPage/shared.js +0 -1
  22. package/dist/utilities/initPage/shared.js.map +1 -1
  23. package/dist/views/API/LocaleSelector/index.d.ts +9 -0
  24. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -0
  25. package/dist/views/API/LocaleSelector/index.js +16 -0
  26. package/dist/views/API/LocaleSelector/index.js.map +1 -0
  27. package/dist/views/API/index.client.d.ts.map +1 -1
  28. package/dist/views/API/index.client.js +4 -7
  29. package/dist/views/API/index.client.js.map +1 -1
  30. package/dist/views/Account/Settings/LanguageSelector.d.ts +6 -0
  31. package/dist/views/Account/Settings/LanguageSelector.d.ts.map +1 -0
  32. package/dist/views/Account/Settings/LanguageSelector.js +19 -0
  33. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -0
  34. package/dist/views/Account/Settings/index.d.ts +4 -0
  35. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  36. package/dist/views/Account/Settings/index.js +6 -14
  37. package/dist/views/Account/Settings/index.js.map +1 -1
  38. package/dist/views/Account/index.d.ts.map +1 -1
  39. package/dist/views/Account/index.js +15 -3
  40. package/dist/views/Account/index.js.map +1 -1
  41. package/dist/views/Dashboard/Default/index.d.ts +2 -0
  42. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  43. package/dist/views/Dashboard/Default/index.js +73 -7
  44. package/dist/views/Dashboard/Default/index.js.map +1 -1
  45. package/dist/views/Dashboard/index.d.ts.map +1 -1
  46. package/dist/views/Dashboard/index.js +20 -0
  47. package/dist/views/Dashboard/index.js.map +1 -1
  48. package/dist/views/Document/getDocumentData.d.ts +2 -3
  49. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  50. package/dist/views/Document/getDocumentData.js +25 -18
  51. package/dist/views/Document/getDocumentData.js.map +1 -1
  52. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  53. package/dist/views/Document/getViewsFromConfig.js +172 -171
  54. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  55. package/dist/views/Document/index.d.ts.map +1 -1
  56. package/dist/views/Document/index.js +3 -2
  57. package/dist/views/Document/index.js.map +1 -1
  58. package/dist/views/Edit/Default/Auth/APIKey.js +1 -1
  59. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  60. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  61. package/dist/views/Edit/Default/Auth/index.js +11 -5
  62. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  63. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  64. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +25 -22
  65. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  66. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  67. package/dist/views/Edit/Default/index.js +4 -13
  68. package/dist/views/Edit/Default/index.js.map +1 -1
  69. package/dist/views/Edit/index.client.d.ts.map +1 -1
  70. package/dist/views/Edit/index.client.js +2 -4
  71. package/dist/views/Edit/index.client.js.map +1 -1
  72. package/dist/views/List/index.d.ts.map +1 -1
  73. package/dist/views/List/index.js +1 -5
  74. package/dist/views/List/index.js.map +1 -1
  75. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  76. package/dist/views/LivePreview/index.client.js +2 -6
  77. package/dist/views/LivePreview/index.client.js.map +1 -1
  78. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  79. package/dist/views/Login/LoginForm/index.js +0 -5
  80. package/dist/views/Login/LoginForm/index.js.map +1 -1
  81. package/dist/views/Logout/index.d.ts.map +1 -1
  82. package/dist/views/Logout/index.js +6 -10
  83. package/dist/views/Logout/index.js.map +1 -1
  84. package/dist/views/ResetPassword/index.client.js +1 -3
  85. package/dist/views/ResetPassword/index.client.js.map +1 -1
  86. package/dist/views/Root/index.d.ts.map +1 -1
  87. package/dist/views/Root/index.js +8 -4
  88. package/dist/views/Root/index.js.map +1 -1
  89. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  90. package/dist/views/Version/SelectLocales/index.js +1 -0
  91. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  92. package/dist/withPayload.d.ts.map +1 -1
  93. package/dist/withPayload.js +3 -0
  94. package/dist/withPayload.js.map +1 -1
  95. package/package.json +6 -6
  96. package/dist/utilities/buildFieldSchemaMap/index.d.ts +0 -4
  97. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +0 -1
  98. package/dist/utilities/buildFieldSchemaMap/index.js +0 -28
  99. package/dist/utilities/buildFieldSchemaMap/index.js.map +0 -1
  100. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +0 -14
  101. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +0 -1
  102. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +0 -75
  103. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +0 -1
  104. package/dist/utilities/buildFieldSchemaMap/types.d.ts +0 -3
  105. package/dist/utilities/buildFieldSchemaMap/types.d.ts.map +0 -1
  106. package/dist/utilities/buildFieldSchemaMap/types.js +0 -3
  107. package/dist/utilities/buildFieldSchemaMap/types.js.map +0 -1
  108. package/dist/views/Dashboard/Default/index.client.d.ts +0 -10
  109. package/dist/views/Dashboard/Default/index.client.d.ts.map +0 -1
  110. package/dist/views/Dashboard/Default/index.client.js +0 -114
  111. package/dist/views/Dashboard/Default/index.client.js.map +0 -1
@@ -7,6 +7,7 @@ import { Email } from '@payloadcms/ui/fields/Email';
7
7
  import { Password } from '@payloadcms/ui/fields/Password';
8
8
  import { useFormFields, useFormModified } from '@payloadcms/ui/forms/Form';
9
9
  import { useConfig } from '@payloadcms/ui/providers/Config';
10
+ import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo';
10
11
  import { useTranslation } from '@payloadcms/ui/providers/Translation';
11
12
  import React, { useCallback, useEffect, useState } from 'react';
12
13
  import { toast } from 'react-toastify';
@@ -15,10 +16,11 @@ const baseClass = 'auth-fields';
15
16
  export const Auth = (props)=>{
16
17
  const { className, collectionSlug, disableLocalStrategy, email, operation, readOnly, requirePassword, useAPIKey, verify } = props;
17
18
  const [changingPassword, setChangingPassword] = useState(requirePassword);
18
- const enableAPIKey = useFormFields(([fields])=>fields.enableAPIKey);
19
+ const enableAPIKey = useFormFields(([fields])=>fields && fields?.enableAPIKey || null);
19
20
  const dispatchFields = useFormFields((reducer)=>reducer[1]);
20
21
  const modified = useFormModified();
21
22
  const { i18n, t } = useTranslation();
23
+ const { isInitializing } = useDocumentInfo();
22
24
  const { routes: { api }, serverURL } = useConfig();
23
25
  const handleChangePassword = useCallback((state)=>{
24
26
  if (!state) {
@@ -73,6 +75,7 @@ export const Auth = (props)=>{
73
75
  if (disableLocalStrategy && !useAPIKey) {
74
76
  return null;
75
77
  }
78
+ const disabled = readOnly || isInitializing;
76
79
  return /*#__PURE__*/ _jsxs("div", {
77
80
  className: [
78
81
  baseClass,
@@ -83,6 +86,7 @@ export const Auth = (props)=>{
83
86
  children: [
84
87
  /*#__PURE__*/ _jsx(Email, {
85
88
  autoComplete: "email",
89
+ disabled: disabled,
86
90
  label: t('general:email'),
87
91
  name: "email",
88
92
  readOnly: readOnly,
@@ -93,7 +97,7 @@ export const Auth = (props)=>{
93
97
  children: [
94
98
  /*#__PURE__*/ _jsx(Password, {
95
99
  autoComplete: "off",
96
- disabled: readOnly,
100
+ disabled: disabled,
97
101
  label: t('authentication:newPassword'),
98
102
  name: "password",
99
103
  required: true
@@ -108,14 +112,14 @@ export const Auth = (props)=>{
108
112
  children: [
109
113
  changingPassword && !requirePassword && /*#__PURE__*/ _jsx(Button, {
110
114
  buttonStyle: "secondary",
111
- disabled: readOnly,
115
+ disabled: disabled,
112
116
  onClick: ()=>handleChangePassword(false),
113
117
  size: "small",
114
118
  children: t('general:cancel')
115
119
  }),
116
120
  !changingPassword && !requirePassword && /*#__PURE__*/ _jsx(Button, {
117
121
  buttonStyle: "secondary",
118
- disabled: readOnly,
122
+ disabled: disabled,
119
123
  id: "change-password",
120
124
  onClick: ()=>handleChangePassword(true),
121
125
  size: "small",
@@ -123,7 +127,7 @@ export const Auth = (props)=>{
123
127
  }),
124
128
  operation === 'update' && /*#__PURE__*/ _jsx(Button, {
125
129
  buttonStyle: "secondary",
126
- disabled: readOnly,
130
+ disabled: disabled,
127
131
  onClick: ()=>unlock(),
128
132
  size: "small",
129
133
  children: t('authentication:forceUnlock')
@@ -136,6 +140,7 @@ export const Auth = (props)=>{
136
140
  className: `${baseClass}__api-key`,
137
141
  children: [
138
142
  /*#__PURE__*/ _jsx(Checkbox, {
143
+ disabled: disabled,
139
144
  label: t('authentication:enableAPIKey'),
140
145
  name: "enableAPIKey",
141
146
  readOnly: readOnly
@@ -147,6 +152,7 @@ export const Auth = (props)=>{
147
152
  ]
148
153
  }),
149
154
  verify && /*#__PURE__*/ _jsx(Checkbox, {
155
+ disabled: disabled,
150
156
  label: t('authentication:verified'),
151
157
  name: "_verified",
152
158
  readOnly: readOnly
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { ConfirmPassword } from '@payloadcms/ui/fields/ConfirmPassword'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { useFormFields, useFormModified } from '@payloadcms/ui/forms/Form'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type { Props } from './types.js'\n\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n operation,\n readOnly,\n requirePassword,\n useAPIKey,\n verify,\n } = props\n\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => fields.enableAPIKey)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n\n const handleChangePassword = useCallback(\n (state: boolean) => {\n if (!state) {\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(state)\n },\n [dispatchFields],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body: JSON.stringify({\n email,\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'), { autoClose: 3000 })\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, t])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !useAPIKey) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {!disableLocalStrategy && (\n <React.Fragment>\n <Email\n autoComplete=\"email\"\n label={t('general:email')}\n name=\"email\"\n readOnly={readOnly}\n required\n />\n {(changingPassword || requirePassword) && (\n <div className={`${baseClass}__changing-password`}>\n <Password\n autoComplete=\"off\"\n disabled={readOnly}\n label={t('authentication:newPassword')}\n name=\"password\"\n required\n />\n <ConfirmPassword disabled={readOnly} />\n </div>\n )}\n\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={readOnly}\n onClick={() => handleChangePassword(false)}\n size=\"small\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={readOnly}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"small\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && (\n <Button\n buttonStyle=\"secondary\"\n disabled={readOnly}\n onClick={() => unlock()}\n size=\"small\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n <Checkbox\n label={t('authentication:enableAPIKey')}\n name=\"enableAPIKey\"\n readOnly={readOnly}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={readOnly} />\n </div>\n )}\n {verify && (\n <Checkbox label={t('authentication:verified')} name=\"_verified\" readOnly={readOnly} />\n )}\n </div>\n )\n}\n"],"names":["Button","Checkbox","ConfirmPassword","Email","Password","useFormFields","useFormModified","useConfig","useTranslation","React","useCallback","useEffect","useState","toast","APIKey","baseClass","Auth","props","className","collectionSlug","disableLocalStrategy","email","operation","readOnly","requirePassword","useAPIKey","verify","changingPassword","setChangingPassword","enableAPIKey","fields","dispatchFields","reducer","modified","i18n","t","routes","api","serverURL","handleChangePassword","state","type","path","unlock","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","autoClose","error","div","filter","Boolean","join","Fragment","autoComplete","label","name","required","disabled","buttonStyle","onClick","size","id","enabled","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { ConfirmPassword } from '@payloadcms/ui/fields/ConfirmPassword'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { useFormFields, useFormModified } from '@payloadcms/ui/forms/Form'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type { Props } from './types.js'\n\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n operation,\n readOnly,\n requirePassword,\n useAPIKey,\n verify,\n } = props\n\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => (fields && fields?.enableAPIKey) || null)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { isInitializing } = useDocumentInfo()\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n\n const handleChangePassword = useCallback(\n (state: boolean) => {\n if (!state) {\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(state)\n },\n [dispatchFields],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body: JSON.stringify({\n email,\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'), { autoClose: 3000 })\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, t])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !useAPIKey) {\n return null\n }\n\n const disabled = readOnly || isInitializing\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {!disableLocalStrategy && (\n <React.Fragment>\n <Email\n autoComplete=\"email\"\n disabled={disabled}\n label={t('general:email')}\n name=\"email\"\n readOnly={readOnly}\n required\n />\n {(changingPassword || requirePassword) && (\n <div className={`${baseClass}__changing-password`}>\n <Password\n autoComplete=\"off\"\n disabled={disabled}\n label={t('authentication:newPassword')}\n name=\"password\"\n required\n />\n <ConfirmPassword disabled={readOnly} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => handleChangePassword(false)}\n size=\"small\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"small\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => unlock()}\n size=\"small\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n <Checkbox\n disabled={disabled}\n label={t('authentication:enableAPIKey')}\n name=\"enableAPIKey\"\n readOnly={readOnly}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={readOnly} />\n </div>\n )}\n {verify && (\n <Checkbox\n disabled={disabled}\n label={t('authentication:verified')}\n name=\"_verified\"\n readOnly={readOnly}\n />\n )}\n </div>\n )\n}\n"],"names":["Button","Checkbox","ConfirmPassword","Email","Password","useFormFields","useFormModified","useConfig","useDocumentInfo","useTranslation","React","useCallback","useEffect","useState","toast","APIKey","baseClass","Auth","props","className","collectionSlug","disableLocalStrategy","email","operation","readOnly","requirePassword","useAPIKey","verify","changingPassword","setChangingPassword","enableAPIKey","fields","dispatchFields","reducer","modified","i18n","t","isInitializing","routes","api","serverURL","handleChangePassword","state","type","path","unlock","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","autoClose","error","disabled","div","filter","Boolean","join","Fragment","autoComplete","label","name","required","buttonStyle","onClick","size","id","enabled","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAWrF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAsEA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAWrF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAyEA,CAAA"}
@@ -10,7 +10,7 @@ import { useEffect } from 'react';
10
10
  export const SetDocumentStepNav = (props)=>{
11
11
  const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props;
12
12
  const view = props?.view || undefined;
13
- const { isEditing, title } = useDocumentInfo();
13
+ const { isEditing, isInitializing, title } = useDocumentInfo();
14
14
  const { isEntityVisible } = useEntityVisibility();
15
15
  const isVisible = isEntityVisible({
16
16
  collectionSlug,
@@ -22,35 +22,38 @@ export const SetDocumentStepNav = (props)=>{
22
22
  const drawerDepth = useEditDepth();
23
23
  useEffect(()=>{
24
24
  const nav = [];
25
- if (collectionSlug) {
26
- nav.push({
27
- label: getTranslation(pluralLabel, i18n),
28
- url: isVisible ? `${admin}/collections/${collectionSlug}` : undefined
29
- });
30
- if (isEditing) {
25
+ if (!isInitializing) {
26
+ if (collectionSlug) {
31
27
  nav.push({
32
- label: useAsTitle && useAsTitle !== 'id' && title || `${id}`,
33
- url: isVisible ? `${admin}/collections/${collectionSlug}/${id}` : undefined
28
+ label: getTranslation(pluralLabel, i18n),
29
+ url: isVisible ? `${admin}/collections/${collectionSlug}` : undefined
34
30
  });
35
- } else {
31
+ if (isEditing) {
32
+ nav.push({
33
+ label: useAsTitle && useAsTitle !== 'id' && title || `${id}`,
34
+ url: isVisible ? `${admin}/collections/${collectionSlug}/${id}` : undefined
35
+ });
36
+ } else {
37
+ nav.push({
38
+ label: t('general:createNew')
39
+ });
40
+ }
41
+ } else if (globalSlug) {
36
42
  nav.push({
37
- label: t('general:createNew')
43
+ label: title,
44
+ url: isVisible ? `${admin}/globals/${globalSlug}` : undefined
38
45
  });
39
46
  }
40
- } else if (globalSlug) {
41
- nav.push({
42
- label: title,
43
- url: isVisible ? `${admin}/globals/${globalSlug}` : undefined
44
- });
45
- }
46
- if (view) {
47
- nav.push({
48
- label: view
49
- });
47
+ if (view) {
48
+ nav.push({
49
+ label: view
50
+ });
51
+ }
52
+ if (drawerDepth <= 1) setStepNav(nav);
50
53
  }
51
- if (drawerDepth <= 1) setStepNav(nav);
52
54
  }, [
53
55
  setStepNav,
56
+ isInitializing,
54
57
  isEditing,
55
58
  pluralLabel,
56
59
  id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { StepNavItem } from '@payloadcms/ui/elements/StepNav'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useStepNav } from '@payloadcms/ui/elements/StepNav'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useEffect } from 'react'\n\nexport const SetDocumentStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, title } = useDocumentInfo()\n const { isEntityVisible } = useEntityVisibility()\n const isVisible = isEntityVisible({ collectionSlug, globalSlug })\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n routes: { admin },\n } = useConfig()\n\n const drawerDepth = useEditDepth()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (collectionSlug) {\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: isVisible ? `${admin}/collections/${collectionSlug}` : undefined,\n })\n\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: isVisible ? `${admin}/collections/${collectionSlug}/${id}` : undefined,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: isVisible ? `${admin}/globals/${globalSlug}` : undefined,\n })\n }\n\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n if (drawerDepth <= 1) setStepNav(nav)\n }, [\n setStepNav,\n isEditing,\n pluralLabel,\n id,\n useAsTitle,\n admin,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n drawerDepth,\n isVisible,\n ])\n\n return null\n}\n"],"names":["getTranslation","useStepNav","useConfig","useDocumentInfo","useEditDepth","useEntityVisibility","useTranslation","useEffect","SetDocumentStepNav","props","id","collectionSlug","globalSlug","pluralLabel","useAsTitle","view","undefined","isEditing","title","isEntityVisible","isVisible","setStepNav","i18n","t","routes","admin","drawerDepth","nav","push","label","url"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,mBAAmB,QAAQ,4CAA2C;AAC/E,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,QAAO;AAEjC,OAAO,MAAMC,qBAQR,CAACC;IACJ,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGL;IAEpE,MAAMM,OAA2BN,OAAOM,QAAQC;IAEhD,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGf;IAC7B,MAAM,EAAEgB,eAAe,EAAE,GAAGd;IAC5B,MAAMe,YAAYD,gBAAgB;QAAER;QAAgBC;IAAW;IAE/D,MAAM,EAAES,UAAU,EAAE,GAAGpB;IAEvB,MAAM,EAAEqB,IAAI,EAAEC,CAAC,EAAE,GAAGjB;IAEpB,MAAM,EACJkB,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGvB;IAEJ,MAAMwB,cAActB;IAEpBG,UAAU;QACR,MAAMoB,MAAqB,EAAE;QAE7B,IAAIhB,gBAAgB;YAClBgB,IAAIC,IAAI,CAAC;gBACPC,OAAO7B,eAAea,aAAaS;gBACnCQ,KAAKV,YAAY,CAAC,EAAEK,MAAM,aAAa,EAAEd,eAAe,CAAC,GAAGK;YAC9D;YAEA,IAAIC,WAAW;gBACbU,IAAIC,IAAI,CAAC;oBACPC,OAAO,AAACf,cAAcA,eAAe,QAAQI,SAAU,CAAC,EAAER,GAAG,CAAC;oBAC9DoB,KAAKV,YAAY,CAAC,EAAEK,MAAM,aAAa,EAAEd,eAAe,CAAC,EAAED,GAAG,CAAC,GAAGM;gBACpE;YACF,OAAO;gBACLW,IAAIC,IAAI,CAAC;oBACPC,OAAON,EAAE;gBACX;YACF;QACF,OAAO,IAAIX,YAAY;YACrBe,IAAIC,IAAI,CAAC;gBACPC,OAAOX;gBACPY,KAAKV,YAAY,CAAC,EAAEK,MAAM,SAAS,EAAEb,WAAW,CAAC,GAAGI;YACtD;QACF;QAEA,IAAID,MAAM;YACRY,IAAIC,IAAI,CAAC;gBACPC,OAAOd;YACT;QACF;QAEA,IAAIW,eAAe,GAAGL,WAAWM;IACnC,GAAG;QACDN;QACAJ;QACAJ;QACAH;QACAI;QACAW;QACAF;QACAD;QACAJ;QACAP;QACAC;QACAG;QACAW;QACAN;KACD;IAED,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { StepNavItem } from '@payloadcms/ui/elements/StepNav'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useStepNav } from '@payloadcms/ui/elements/StepNav'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useEffect } from 'react'\n\nexport const SetDocumentStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, isInitializing, title } = useDocumentInfo()\n const { isEntityVisible } = useEntityVisibility()\n const isVisible = isEntityVisible({ collectionSlug, globalSlug })\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n routes: { admin },\n } = useConfig()\n\n const drawerDepth = useEditDepth()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (!isInitializing) {\n if (collectionSlug) {\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: isVisible ? `${admin}/collections/${collectionSlug}` : undefined,\n })\n\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: isVisible ? `${admin}/collections/${collectionSlug}/${id}` : undefined,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: isVisible ? `${admin}/globals/${globalSlug}` : undefined,\n })\n }\n\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n if (drawerDepth <= 1) setStepNav(nav)\n }\n }, [\n setStepNav,\n isInitializing,\n isEditing,\n pluralLabel,\n id,\n useAsTitle,\n admin,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n drawerDepth,\n isVisible,\n ])\n\n return null\n}\n"],"names":["getTranslation","useStepNav","useConfig","useDocumentInfo","useEditDepth","useEntityVisibility","useTranslation","useEffect","SetDocumentStepNav","props","id","collectionSlug","globalSlug","pluralLabel","useAsTitle","view","undefined","isEditing","isInitializing","title","isEntityVisible","isVisible","setStepNav","i18n","t","routes","admin","drawerDepth","nav","push","label","url"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,mBAAmB,QAAQ,4CAA2C;AAC/E,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,QAAO;AAEjC,OAAO,MAAMC,qBAQR,CAACC;IACJ,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGL;IAEpE,MAAMM,OAA2BN,OAAOM,QAAQC;IAEhD,MAAM,EAAEC,SAAS,EAAEC,cAAc,EAAEC,KAAK,EAAE,GAAGhB;IAC7C,MAAM,EAAEiB,eAAe,EAAE,GAAGf;IAC5B,MAAMgB,YAAYD,gBAAgB;QAAET;QAAgBC;IAAW;IAE/D,MAAM,EAAEU,UAAU,EAAE,GAAGrB;IAEvB,MAAM,EAAEsB,IAAI,EAAEC,CAAC,EAAE,GAAGlB;IAEpB,MAAM,EACJmB,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGxB;IAEJ,MAAMyB,cAAcvB;IAEpBG,UAAU;QACR,MAAMqB,MAAqB,EAAE;QAE7B,IAAI,CAACV,gBAAgB;YACnB,IAAIP,gBAAgB;gBAClBiB,IAAIC,IAAI,CAAC;oBACPC,OAAO9B,eAAea,aAAaU;oBACnCQ,KAAKV,YAAY,CAAC,EAAEK,MAAM,aAAa,EAAEf,eAAe,CAAC,GAAGK;gBAC9D;gBAEA,IAAIC,WAAW;oBACbW,IAAIC,IAAI,CAAC;wBACPC,OAAO,AAAChB,cAAcA,eAAe,QAAQK,SAAU,CAAC,EAAET,GAAG,CAAC;wBAC9DqB,KAAKV,YAAY,CAAC,EAAEK,MAAM,aAAa,EAAEf,eAAe,CAAC,EAAED,GAAG,CAAC,GAAGM;oBACpE;gBACF,OAAO;oBACLY,IAAIC,IAAI,CAAC;wBACPC,OAAON,EAAE;oBACX;gBACF;YACF,OAAO,IAAIZ,YAAY;gBACrBgB,IAAIC,IAAI,CAAC;oBACPC,OAAOX;oBACPY,KAAKV,YAAY,CAAC,EAAEK,MAAM,SAAS,EAAEd,WAAW,CAAC,GAAGI;gBACtD;YACF;YAEA,IAAID,MAAM;gBACRa,IAAIC,IAAI,CAAC;oBACPC,OAAOf;gBACT;YACF;YAEA,IAAIY,eAAe,GAAGL,WAAWM;QACnC;IACF,GAAG;QACDN;QACAJ;QACAD;QACAJ;QACAH;QACAI;QACAY;QACAF;QACAD;QACAJ;QACAR;QACAC;QACAG;QACAY;QACAN;KACD;IAED,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAMpD,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA2OnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAMpD,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAgOnC,CAAA"}
@@ -2,7 +2,6 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { DocumentControls } from '@payloadcms/ui/elements/DocumentControls';
4
4
  import { DocumentFields } from '@payloadcms/ui/elements/DocumentFields';
5
- import { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading';
6
5
  import { Upload } from '@payloadcms/ui/elements/Upload';
7
6
  import { Form } from '@payloadcms/ui/forms/Form';
8
7
  import { useAuth } from '@payloadcms/ui/providers/Auth';
@@ -13,7 +12,6 @@ import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo';
13
12
  import { useEditDepth } from '@payloadcms/ui/providers/EditDepth';
14
13
  import { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams';
15
14
  import { OperationProvider } from '@payloadcms/ui/providers/Operation';
16
- import { useTranslation } from '@payloadcms/ui/providers/Translation';
17
15
  import { getFormState } from '@payloadcms/ui/utilities/getFormState';
18
16
  import { useRouter } from 'next/navigation.js';
19
17
  import { useSearchParams } from 'next/navigation.js';
@@ -27,7 +25,7 @@ const baseClass = 'collection-edit';
27
25
  // When rendered within a drawer, props are empty
28
26
  // This is solely to support custom edit views which get server-rendered
29
27
  export const DefaultEditView = ()=>{
30
- const { id, AfterDocument, AfterFields, BeforeDocument, BeforeFields, action, apiURL, collectionSlug, disableActions, disableLeaveWithoutSaving, docPermissions, getDocPreferences, getVersions, globalSlug, hasPublishPermission, hasSavePermission, initialData: data, initialState, isEditing, onSave: onSaveFromContext } = useDocumentInfo();
28
+ const { id, AfterDocument, AfterFields, BeforeDocument, BeforeFields, action, apiURL, collectionSlug, disableActions, disableLeaveWithoutSaving, docPermissions, getDocPreferences, getVersions, globalSlug, hasPublishPermission, hasSavePermission, initialData: data, initialState, isEditing, isInitializing, onSave: onSaveFromContext } = useDocumentInfo();
31
29
  const { refreshCookieAsync, user } = useAuth();
32
30
  const config = useConfig();
33
31
  const router = useRouter();
@@ -36,7 +34,6 @@ export const DefaultEditView = ()=>{
36
34
  const params = useSearchParams();
37
35
  const depth = useEditDepth();
38
36
  const { reportUpdate } = useDocumentEvents();
39
- const { i18n } = useTranslation();
40
37
  const { admin: { user: userSlug }, collections, globals, routes: { admin: adminRoute, api: apiRoute }, serverURL } = config;
41
38
  const locale = params.get('locale');
42
39
  const collectionConfig = collectionSlug && collections.find((collection)=>collection.slug === collectionSlug);
@@ -134,21 +131,15 @@ export const DefaultEditView = ()=>{
134
131
  action: action,
135
132
  className: `${baseClass}__form`,
136
133
  disableValidationOnSubmit: true,
137
- disabled: !hasSavePermission,
138
- initialState: initialState,
134
+ disabled: isInitializing || !hasSavePermission,
135
+ initialState: !isInitializing && initialState,
136
+ isInitializing: isInitializing,
139
137
  method: id ? 'PATCH' : 'POST',
140
138
  onChange: [
141
139
  onChange
142
140
  ],
143
141
  onSuccess: onSave,
144
142
  children: [
145
- /*#__PURE__*/ _jsx(FormLoadingOverlayToggle, {
146
- action: operation,
147
- // formIsLoading={isLoading}
148
- // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}
149
- name: `collection-edit--${typeof collectionConfig?.labels?.singular === 'string' ? collectionConfig.labels.singular : i18n.t('general:document')}`,
150
- type: "withoutNav"
151
- }),
152
143
  BeforeDocument,
153
144
  preventLeaveWithoutSaving && /*#__PURE__*/ _jsx(LeaveWithoutSaving, {}),
154
145
  /*#__PURE__*/ _jsx(SetDocumentStepNav, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Upload } from '@payloadcms/ui/elements/Upload'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport { useRouter } from 'next/navigation.js'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const { i18n } = useTranslation()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n <FormLoadingOverlayToggle\n action={operation}\n // formIsLoading={isLoading}\n // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}\n name={`collection-edit--${\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : i18n.t('general:document')\n }`}\n type=\"withoutNav\"\n />\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","FormLoadingOverlayToggle","Upload","Form","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","OperationProvider","useTranslation","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","i18n","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","name","labels","singular","t","pluralLabel","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { Upload } from '@payloadcms/ui/elements/Upload'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport { useRouter } from 'next/navigation.js'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Upload","Form","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","OperationProvider","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.client.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAqBlC,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAoBlC,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { LoadingOverlay } from '@payloadcms/ui/elements/Loading';
4
3
  import { SetViewActions } from '@payloadcms/ui/providers/Actions';
5
4
  import { useComponentMap } from '@payloadcms/ui/providers/ComponentMap';
6
5
  import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo';
@@ -12,9 +11,8 @@ export const EditViewClient = ()=>{
12
11
  collectionSlug,
13
12
  globalSlug
14
13
  });
15
- // Allow the `DocumentInfoProvider` to hydrate
16
- if (!Edit || !collectionSlug && !globalSlug) {
17
- return /*#__PURE__*/ _jsx(LoadingOverlay, {});
14
+ if (!Edit) {
15
+ return null;
18
16
  }
19
17
  return /*#__PURE__*/ _jsxs(Fragment, {
20
18
  children: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Edit/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { LoadingOverlay } from '@payloadcms/ui/elements/Loading'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport React, { Fragment } from 'react'\n\nexport const EditViewClient: React.FC = () => {\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const { getComponentMap } = useComponentMap()\n\n const { Edit, actionsMap } = getComponentMap({\n collectionSlug,\n globalSlug,\n })\n\n // Allow the `DocumentInfoProvider` to hydrate\n if (!Edit || (!collectionSlug && !globalSlug)) {\n return <LoadingOverlay />\n }\n\n return (\n <Fragment>\n <SetViewActions actions={actionsMap?.Edit?.Default} />\n {Edit}\n </Fragment>\n )\n}\n"],"names":["LoadingOverlay","SetViewActions","useComponentMap","useDocumentInfo","React","Fragment","EditViewClient","collectionSlug","globalSlug","getComponentMap","Edit","actionsMap","actions","Default"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAEA,SAASA,cAAc,QAAQ,kCAAiC;AAChE,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,OAAO,MAAMC,iBAA2B;IACtC,MAAM,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGL;IAEvC,MAAM,EAAEM,eAAe,EAAE,GAAGP;IAE5B,MAAM,EAAEQ,IAAI,EAAEC,UAAU,EAAE,GAAGF,gBAAgB;QAC3CF;QACAC;IACF;IAEA,8CAA8C;IAC9C,IAAI,CAACE,QAAS,CAACH,kBAAkB,CAACC,YAAa;QAC7C,qBAAO,KAACR;IACV;IAEA,qBACE,MAACK;;0BACC,KAACJ;gBAAeW,SAASD,YAAYD,MAAMG;;YAC1CH;;;AAGP,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Edit/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport React, { Fragment } from 'react'\n\nexport const EditViewClient: React.FC = () => {\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const { getComponentMap } = useComponentMap()\n\n const { Edit, actionsMap } = getComponentMap({\n collectionSlug,\n globalSlug,\n })\n\n if (!Edit) {\n return null\n }\n\n return (\n <Fragment>\n <SetViewActions actions={actionsMap?.Edit?.Default} />\n {Edit}\n </Fragment>\n )\n}\n"],"names":["SetViewActions","useComponentMap","useDocumentInfo","React","Fragment","EditViewClient","collectionSlug","globalSlug","getComponentMap","Edit","actionsMap","actions","Default"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAEA,SAASA,cAAc,QAAQ,mCAAkC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,OAAO,MAAMC,iBAA2B;IACtC,MAAM,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGL;IAEvC,MAAM,EAAEM,eAAe,EAAE,GAAGP;IAE5B,MAAM,EAAEQ,IAAI,EAAEC,UAAU,EAAE,GAAGF,gBAAgB;QAC3CF;QACAC;IACF;IAEA,IAAI,CAACE,MAAM;QACT,OAAO;IACT;IAEA,qBACE,MAACL;;0BACC,KAACJ;gBAAeW,SAASD,YAAYD,MAAMG;;YAC1CH;;;AAGP,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2J7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2J7C,CAAA"}
@@ -8,17 +8,13 @@ import { notFound } from 'next/navigation.js';
8
8
  import { createClientCollectionConfig } from 'payload/config';
9
9
  import { isNumber, isReactComponentOrFunction, mergeListSearchAndWhere } from 'payload/utilities';
10
10
  import React, { Fragment } from 'react';
11
- import { UnauthorizedView } from '../Unauthorized/index.js';
12
11
  import { DefaultListView } from './Default/index.js';
13
12
  export { generateListMetadata } from './meta.js';
14
13
  export const ListView = async ({ initPageResult, params, searchParams })=>{
15
14
  const { collectionConfig, locale: fullLocale, permissions, req: { i18n, locale, payload, payload: { config }, query, user }, visibleEntities } = initPageResult;
16
15
  const collectionSlug = collectionConfig?.slug;
17
16
  if (!permissions?.collections?.[collectionSlug]?.read?.permission) {
18
- return /*#__PURE__*/ _jsx(UnauthorizedView, {
19
- initPageResult: initPageResult,
20
- searchParams: searchParams
21
- });
17
+ notFound();
22
18
  }
23
19
  let listPreferences;
24
20
  const preferenceKey = `${collectionSlug}-list`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { TableColumnsProvider } from '@payloadcms/ui/elements/TableColumns'\nimport { ListInfoProvider } from '@payloadcms/ui/providers/ListInfo'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig } from 'payload/config'\nimport { type AdminViewProps } from 'payload/types'\nimport { isNumber, isReactComponentOrFunction, mergeListSearchAndWhere } from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n return <UnauthorizedView initPageResult={initPageResult} searchParams={searchParams} />\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n key: {\n equals: preferenceKey,\n },\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin },\n } = config\n\n if (collectionConfig) {\n const {\n admin: { components: { views: { List: CustomList } = {} } = {} },\n } = collectionConfig\n\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n let CustomListView = null\n\n if (CustomList && typeof CustomList === 'function') {\n CustomListView = CustomList\n } else if (typeof CustomList === 'object' && isReactComponentOrFunction(CustomList.Component)) {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort || undefined\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n limit,\n locale,\n overrideAccess: false,\n page,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const viewComponentProps: DefaultListViewProps = {\n collectionSlug,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n }\n\n return (\n <Fragment>\n <HydrateClientUser permissions={permissions} user={user} />\n <ListInfoProvider\n collectionConfig={createClientCollectionConfig({\n collection: collectionConfig,\n t: initPageResult.req.i18n.t,\n })}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={`${admin}/collections/${collectionSlug}/create`}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderCustomComponent\n CustomComponent={CustomListView}\n DefaultComponent={DefaultListView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n collectionConfig,\n data,\n hasCreatePermission:\n permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n locale: fullLocale,\n newDocumentURL: `${admin}/collections/${collectionSlug}/create`,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","RenderCustomComponent","TableColumnsProvider","ListInfoProvider","ListQueryProvider","notFound","createClientCollectionConfig","isNumber","isReactComponentOrFunction","mergeListSearchAndWhere","React","Fragment","UnauthorizedView","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","key","equals","then","res","docs","value","error","routes","admin","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","hasCreatePermission","create","newDocumentURL","defaultSort","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { TableColumnsProvider } from '@payloadcms/ui/elements/TableColumns'\nimport { ListInfoProvider } from '@payloadcms/ui/providers/ListInfo'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig } from 'payload/config'\nimport { type AdminViewProps } from 'payload/types'\nimport { isNumber, isReactComponentOrFunction, mergeListSearchAndWhere } from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n notFound()\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n key: {\n equals: preferenceKey,\n },\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin },\n } = config\n\n if (collectionConfig) {\n const {\n admin: { components: { views: { List: CustomList } = {} } = {} },\n } = collectionConfig\n\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n let CustomListView = null\n\n if (CustomList && typeof CustomList === 'function') {\n CustomListView = CustomList\n } else if (typeof CustomList === 'object' && isReactComponentOrFunction(CustomList.Component)) {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort || undefined\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n limit,\n locale,\n overrideAccess: false,\n page,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const viewComponentProps: DefaultListViewProps = {\n collectionSlug,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n }\n\n return (\n <Fragment>\n <HydrateClientUser permissions={permissions} user={user} />\n <ListInfoProvider\n collectionConfig={createClientCollectionConfig({\n collection: collectionConfig,\n t: initPageResult.req.i18n.t,\n })}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={`${admin}/collections/${collectionSlug}/create`}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderCustomComponent\n CustomComponent={CustomListView}\n DefaultComponent={DefaultListView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n collectionConfig,\n data,\n hasCreatePermission:\n permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n locale: fullLocale,\n newDocumentURL: `${admin}/collections/${collectionSlug}/create`,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","RenderCustomComponent","TableColumnsProvider","ListInfoProvider","ListQueryProvider","notFound","createClientCollectionConfig","isNumber","isReactComponentOrFunction","mergeListSearchAndWhere","React","Fragment","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","key","equals","then","res","docs","value","error","routes","admin","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","hasCreatePermission","create","newDocumentURL","defaultSort","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAA4D,IAAI,EAAE,MAAM,eAAe,CAAA;AAanG,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,OAAO,cAAc,CAAA;AAkLrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC7C,WAAW,EAAE,IAAI,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ,CA2DA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAA4D,IAAI,EAAE,MAAM,eAAe,CAAA;AAYnG,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,OAAO,cAAc,CAAA;AA+KrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC7C,WAAW,EAAE,IAAI,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ,CA2DA,CAAA"}
@@ -2,7 +2,6 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { DocumentControls } from '@payloadcms/ui/elements/DocumentControls';
4
4
  import { DocumentFields } from '@payloadcms/ui/elements/DocumentFields';
5
- import { LoadingOverlay } from '@payloadcms/ui/elements/Loading';
6
5
  import { Form } from '@payloadcms/ui/forms/Form';
7
6
  import { SetViewActions } from '@payloadcms/ui/providers/Actions';
8
7
  import { useComponentMap } from '@payloadcms/ui/providers/ComponentMap';
@@ -21,7 +20,7 @@ import { LivePreview } from './Preview/index.js';
21
20
  import { usePopupWindow } from './usePopupWindow.js';
22
21
  const baseClass = 'live-preview';
23
22
  const PreviewView = ({ apiRoute, collectionConfig, config, fieldMap, globalConfig, schemaPath, serverURL })=>{
24
- const { id, AfterDocument, AfterFields, BeforeDocument, BeforeFields, action, apiURL, collectionSlug, disableActions, disableLeaveWithoutSaving, docPermissions, getDocPreferences, globalSlug, hasPublishPermission, hasSavePermission, initialData, initialState, isEditing, onSave: onSaveFromProps } = useDocumentInfo();
23
+ const { id, AfterDocument, AfterFields, BeforeDocument, BeforeFields, action, apiURL, collectionSlug, disableActions, disableLeaveWithoutSaving, docPermissions, getDocPreferences, globalSlug, hasPublishPermission, hasSavePermission, initialData, initialState, isEditing, isInitializing, onSave: onSaveFromProps } = useDocumentInfo();
25
24
  const operation = id ? 'update' : 'create';
26
25
  const { t } = useTranslation();
27
26
  const { previewWindowType } = useLivePreviewContext();
@@ -65,10 +64,6 @@ const PreviewView = ({ apiRoute, collectionConfig, config, fieldMap, globalConfi
65
64
  schemaPath,
66
65
  getDocPreferences
67
66
  ]);
68
- // Allow the `DocumentInfoProvider` to hydrate
69
- if (!collectionSlug && !globalSlug) {
70
- return /*#__PURE__*/ _jsx(LoadingOverlay, {});
71
- }
72
67
  return /*#__PURE__*/ _jsx(Fragment, {
73
68
  children: /*#__PURE__*/ _jsx(OperationProvider, {
74
69
  operation: operation,
@@ -77,6 +72,7 @@ const PreviewView = ({ apiRoute, collectionConfig, config, fieldMap, globalConfi
77
72
  className: `${baseClass}__form`,
78
73
  disabled: !hasSavePermission,
79
74
  initialState: initialState,
75
+ isInitializing: isInitializing,
80
76
  method: id ? 'PATCH' : 'POST',
81
77
  onChange: [
82
78
  onChange