@payloadcms/ui 3.28.0-canary.8f6d2e7 → 3.28.0-internal.2b0876e

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 (106) hide show
  1. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  2. package/dist/elements/CodeEditor/CodeEditor.js +19 -16
  3. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  4. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentControls/index.js +2 -1
  6. package/dist/elements/DocumentControls/index.js.map +1 -1
  7. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  8. package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
  9. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  10. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  11. package/dist/elements/Table/DefaultCell/fields/File/index.js +26 -17
  12. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  13. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +2 -2
  14. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  15. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  16. package/dist/elements/Thumbnail/index.js +2 -0
  17. package/dist/elements/Thumbnail/index.js.map +1 -1
  18. package/dist/elements/ThumbnailCard/index.scss +2 -1
  19. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  20. package/dist/elements/Toasts/fieldErrors.js +2 -1
  21. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  22. package/dist/exports/client/{CodeEditor-L6GW2VQ6.js → CodeEditor-TQ5ADFPC.js} +2 -2
  23. package/dist/exports/client/{chunk-ZZDNSFEW.js → chunk-LMYT7O7U.js} +6 -6
  24. package/dist/exports/client/chunk-LMYT7O7U.js.map +7 -0
  25. package/dist/exports/client/index.js +23 -23
  26. package/dist/exports/client/index.js.map +4 -4
  27. package/dist/fields/Array/index.js +1 -1
  28. package/dist/fields/Array/index.js.map +1 -1
  29. package/dist/fields/Blocks/BlocksDrawer/index.js +5 -5
  30. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  31. package/dist/fields/Blocks/BlocksDrawer/index.scss +11 -2
  32. package/dist/fields/Blocks/index.js +1 -1
  33. package/dist/fields/Blocks/index.js.map +1 -1
  34. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  35. package/dist/fields/Collapsible/index.js +2 -1
  36. package/dist/fields/Collapsible/index.js.map +1 -1
  37. package/dist/fields/Password/index.d.ts.map +1 -1
  38. package/dist/fields/Password/index.js +3 -1
  39. package/dist/fields/Password/index.js.map +1 -1
  40. package/dist/fields/Row/index.d.ts.map +1 -1
  41. package/dist/fields/Row/index.js +3 -1
  42. package/dist/fields/Row/index.js.map +1 -1
  43. package/dist/fields/Row/index.scss +7 -0
  44. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  45. package/dist/fields/Tabs/Tab/index.js +35 -61
  46. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  47. package/dist/fields/Upload/HasMany/index.d.ts +1 -0
  48. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  49. package/dist/fields/Upload/HasMany/index.js +28 -24
  50. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  51. package/dist/fields/Upload/HasOne/index.d.ts +1 -0
  52. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  53. package/dist/fields/Upload/HasOne/index.js +2 -0
  54. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  55. package/dist/fields/Upload/Input.d.ts +1 -0
  56. package/dist/fields/Upload/Input.d.ts.map +1 -1
  57. package/dist/fields/Upload/Input.js +34 -30
  58. package/dist/fields/Upload/Input.js.map +1 -1
  59. package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
  60. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  61. package/dist/fields/Upload/RelationshipContent/index.js +102 -77
  62. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  63. package/dist/fields/Upload/index.d.ts.map +1 -1
  64. package/dist/fields/Upload/index.js +2 -0
  65. package/dist/fields/Upload/index.js.map +1 -1
  66. package/dist/forms/Form/index.d.ts.map +1 -1
  67. package/dist/forms/Form/index.js +2 -0
  68. package/dist/forms/Form/index.js.map +1 -1
  69. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  70. package/dist/forms/Form/mergeServerFormState.js +1 -1
  71. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  72. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  73. package/dist/forms/NullifyField/index.js +4 -2
  74. package/dist/forms/NullifyField/index.js.map +1 -1
  75. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  76. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  77. package/dist/forms/WatchChildErrors/buildPathSegments.js +8 -11
  78. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  79. package/dist/forms/WatchChildErrors/index.d.ts +6 -0
  80. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  81. package/dist/forms/WatchChildErrors/index.js +29 -17
  82. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  83. package/dist/forms/useField/index.d.ts.map +1 -1
  84. package/dist/forms/useField/index.js +102 -91
  85. package/dist/forms/useField/index.js.map +1 -1
  86. package/dist/graphics/DefaultBlockImage/index.d.ts.map +1 -1
  87. package/dist/graphics/DefaultBlockImage/index.js +54 -24
  88. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  89. package/dist/providers/Locale/index.d.ts.map +1 -1
  90. package/dist/providers/Locale/index.js +8 -6
  91. package/dist/providers/Locale/index.js.map +1 -1
  92. package/dist/styles.css +1 -1
  93. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  94. package/dist/views/Edit/Auth/APIKey.js +1 -0
  95. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  96. package/package.json +4 -4
  97. package/dist/exports/client/chunk-ZZDNSFEW.js.map +0 -7
  98. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.d.ts +0 -9
  99. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.d.ts.map +0 -1
  100. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +0 -29
  101. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js.map +0 -1
  102. package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts +0 -12
  103. package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts.map +0 -1
  104. package/dist/forms/WatchChildErrors/getNestedFieldState.js +0 -24
  105. package/dist/forms/WatchChildErrors/getNestedFieldState.js.map +0 -1
  106. /package/dist/exports/client/{CodeEditor-L6GW2VQ6.js.map → CodeEditor-TQ5ADFPC.js.map} +0 -0
@@ -15,7 +15,7 @@ import { useDocumentForm, useForm, useFormFields, useFormInitializing, useFormMo
15
15
  * @see https://payloadcms.com/docs/admin/react-hooks#usefield
16
16
  */
17
17
  export const useField = options => {
18
- const $ = _c(58);
18
+ const $ = _c(61);
19
19
  const {
20
20
  disableFormData: t0,
21
21
  hasRows,
@@ -69,9 +69,18 @@ export const useField = options => {
69
69
  const prevValid = useRef(valid);
70
70
  const prevErrorMessage = useRef(field?.errorMessage);
71
71
  let t2;
72
- if ($[2] !== disableFormData || $[3] !== dispatchField || $[4] !== hasRows || $[5] !== modified || $[6] !== path || $[7] !== setModified) {
73
- t2 = (e, t3) => {
74
- const disableModifyingForm = t3 === undefined ? false : t3;
72
+ if ($[2] !== path) {
73
+ t2 = path ? path.split(".") : [];
74
+ $[2] = path;
75
+ $[3] = t2;
76
+ } else {
77
+ t2 = $[3];
78
+ }
79
+ const pathSegments = t2;
80
+ let t3;
81
+ if ($[4] !== disableFormData || $[5] !== dispatchField || $[6] !== hasRows || $[7] !== modified || $[8] !== path || $[9] !== setModified) {
82
+ t3 = (e, t4) => {
83
+ const disableModifyingForm = t4 === undefined ? false : t4;
75
84
  const val = e && e.target ? e.target.value : e;
76
85
  dispatchField({
77
86
  type: "UPDATE",
@@ -89,71 +98,71 @@ export const useField = options => {
89
98
  }
90
99
  }
91
100
  };
92
- $[2] = disableFormData;
93
- $[3] = dispatchField;
94
- $[4] = hasRows;
95
- $[5] = modified;
96
- $[6] = path;
97
- $[7] = setModified;
98
- $[8] = t2;
101
+ $[4] = disableFormData;
102
+ $[5] = dispatchField;
103
+ $[6] = hasRows;
104
+ $[7] = modified;
105
+ $[8] = path;
106
+ $[9] = setModified;
107
+ $[10] = t3;
99
108
  } else {
100
- t2 = $[8];
109
+ t3 = $[10];
101
110
  }
102
- const setValue = t2;
103
- let t3;
104
- const t4 = field?.customComponents;
105
- const t5 = field?.errorMessage;
106
- let t6;
107
- if ($[9] !== field?.errorPaths) {
108
- t6 = field?.errorPaths || [];
109
- $[9] = field?.errorPaths;
110
- $[10] = t6;
111
+ const setValue = t3;
112
+ let t4;
113
+ const t5 = field?.customComponents;
114
+ const t6 = field?.errorMessage;
115
+ let t7;
116
+ if ($[11] !== field?.errorPaths) {
117
+ t7 = field?.errorPaths || [];
118
+ $[11] = field?.errorPaths;
119
+ $[12] = t7;
111
120
  } else {
112
- t6 = $[10];
121
+ t7 = $[12];
113
122
  }
114
- const t7 = field?.rows;
115
- const t8 = field?.valid;
116
- let t9;
117
- if ($[11] !== filterOptions || $[12] !== initialValue || $[13] !== initializing || $[14] !== path || $[15] !== processing || $[16] !== setValue || $[17] !== showError || $[18] !== submitted || $[19] !== t4 || $[20] !== t5 || $[21] !== t6 || $[22] !== t7 || $[23] !== t8 || $[24] !== value) {
118
- t9 = {
119
- customComponents: t4,
120
- errorMessage: t5,
121
- errorPaths: t6,
123
+ const t8 = field?.rows;
124
+ const t9 = field?.valid;
125
+ let t10;
126
+ if ($[13] !== filterOptions || $[14] !== initialValue || $[15] !== initializing || $[16] !== path || $[17] !== processing || $[18] !== setValue || $[19] !== showError || $[20] !== submitted || $[21] !== t5 || $[22] !== t6 || $[23] !== t7 || $[24] !== t8 || $[25] !== t9 || $[26] !== value) {
127
+ t10 = {
128
+ customComponents: t5,
129
+ errorMessage: t6,
130
+ errorPaths: t7,
122
131
  filterOptions,
123
132
  formInitializing: initializing,
124
133
  formProcessing: processing,
125
134
  formSubmitted: submitted,
126
135
  initialValue,
127
136
  path,
128
- rows: t7,
137
+ rows: t8,
129
138
  setValue,
130
139
  showError,
131
- valid: t8,
140
+ valid: t9,
132
141
  value
133
142
  };
134
- $[11] = filterOptions;
135
- $[12] = initialValue;
136
- $[13] = initializing;
137
- $[14] = path;
138
- $[15] = processing;
139
- $[16] = setValue;
140
- $[17] = showError;
141
- $[18] = submitted;
142
- $[19] = t4;
143
- $[20] = t5;
144
- $[21] = t6;
145
- $[22] = t7;
146
- $[23] = t8;
147
- $[24] = value;
143
+ $[13] = filterOptions;
144
+ $[14] = initialValue;
145
+ $[15] = initializing;
146
+ $[16] = path;
147
+ $[17] = processing;
148
+ $[18] = setValue;
149
+ $[19] = showError;
150
+ $[20] = submitted;
151
+ $[21] = t5;
152
+ $[22] = t6;
153
+ $[23] = t7;
154
+ $[24] = t8;
148
155
  $[25] = t9;
156
+ $[26] = value;
157
+ $[27] = t10;
149
158
  } else {
150
- t9 = $[25];
159
+ t10 = $[27];
151
160
  }
152
- t3 = t9;
153
- const result = t3;
154
- let t10;
155
- if ($[26] !== collectionSlug || $[27] !== config || $[28] !== disableFormData || $[29] !== dispatchField || $[30] !== documentForm || $[31] !== field || $[32] !== getData || $[33] !== getDataByPath || $[34] !== getSiblingData || $[35] !== hasRows || $[36] !== id || $[37] !== operation || $[38] !== path || $[39] !== t || $[40] !== user || $[41] !== validate || $[42] !== value) {
156
- t10 = () => {
161
+ t4 = t10;
162
+ const result = t4;
163
+ let t11;
164
+ if ($[28] !== collectionSlug || $[29] !== config || $[30] !== disableFormData || $[31] !== dispatchField || $[32] !== documentForm || $[33] !== field || $[34] !== getData || $[35] !== getDataByPath || $[36] !== getSiblingData || $[37] !== hasRows || $[38] !== id || $[39] !== operation || $[40] !== path || $[41] !== pathSegments || $[42] !== t || $[43] !== user || $[44] !== validate || $[45] !== value) {
165
+ t11 = () => {
157
166
  const validateField = async () => {
158
167
  let valueToValidate = value;
159
168
  if (field?.rows && Array.isArray(field.rows)) {
@@ -169,6 +178,7 @@ export const useField = options => {
169
178
  data: documentForm?.getData ? documentForm.getData() : data,
170
179
  event: "onChange",
171
180
  operation,
181
+ path: pathSegments,
172
182
  preferences: {},
173
183
  req: {
174
184
  payload: {
@@ -210,49 +220,50 @@ export const useField = options => {
210
220
  };
211
221
  validateField();
212
222
  };
213
- $[26] = collectionSlug;
214
- $[27] = config;
215
- $[28] = disableFormData;
216
- $[29] = dispatchField;
217
- $[30] = documentForm;
218
- $[31] = field;
219
- $[32] = getData;
220
- $[33] = getDataByPath;
221
- $[34] = getSiblingData;
222
- $[35] = hasRows;
223
- $[36] = id;
224
- $[37] = operation;
225
- $[38] = path;
226
- $[39] = t;
227
- $[40] = user;
228
- $[41] = validate;
229
- $[42] = value;
230
- $[43] = t10;
223
+ $[28] = collectionSlug;
224
+ $[29] = config;
225
+ $[30] = disableFormData;
226
+ $[31] = dispatchField;
227
+ $[32] = documentForm;
228
+ $[33] = field;
229
+ $[34] = getData;
230
+ $[35] = getDataByPath;
231
+ $[36] = getSiblingData;
232
+ $[37] = hasRows;
233
+ $[38] = id;
234
+ $[39] = operation;
235
+ $[40] = path;
236
+ $[41] = pathSegments;
237
+ $[42] = t;
238
+ $[43] = user;
239
+ $[44] = validate;
240
+ $[45] = value;
241
+ $[46] = t11;
231
242
  } else {
232
- t10 = $[43];
243
+ t11 = $[46];
233
244
  }
234
- const t11 = field?.rows;
235
- let t12;
236
- if ($[44] !== collectionSlug || $[45] !== disableFormData || $[46] !== dispatchField || $[47] !== getData || $[48] !== getDataByPath || $[49] !== getSiblingData || $[50] !== id || $[51] !== operation || $[52] !== path || $[53] !== t11 || $[54] !== user || $[55] !== validate || $[56] !== value) {
237
- t12 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t11, collectionSlug];
238
- $[44] = collectionSlug;
239
- $[45] = disableFormData;
240
- $[46] = dispatchField;
241
- $[47] = getData;
242
- $[48] = getDataByPath;
243
- $[49] = getSiblingData;
244
- $[50] = id;
245
- $[51] = operation;
246
- $[52] = path;
247
- $[53] = t11;
248
- $[54] = user;
249
- $[55] = validate;
250
- $[56] = value;
251
- $[57] = t12;
245
+ const t12 = field?.rows;
246
+ let t13;
247
+ if ($[47] !== collectionSlug || $[48] !== disableFormData || $[49] !== dispatchField || $[50] !== getData || $[51] !== getDataByPath || $[52] !== getSiblingData || $[53] !== id || $[54] !== operation || $[55] !== path || $[56] !== t12 || $[57] !== user || $[58] !== validate || $[59] !== value) {
248
+ t13 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t12, collectionSlug];
249
+ $[47] = collectionSlug;
250
+ $[48] = disableFormData;
251
+ $[49] = dispatchField;
252
+ $[50] = getData;
253
+ $[51] = getDataByPath;
254
+ $[52] = getSiblingData;
255
+ $[53] = id;
256
+ $[54] = operation;
257
+ $[55] = path;
258
+ $[56] = t12;
259
+ $[57] = user;
260
+ $[58] = validate;
261
+ $[59] = value;
262
+ $[60] = t13;
252
263
  } else {
253
- t12 = $[57];
264
+ t13 = $[60];
254
265
  }
255
- useThrottledEffect(t10, 150, t12);
266
+ useThrottledEffect(t11, 150, t13);
256
267
  return result;
257
268
  };
258
269
  function _temp(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useDocumentForm","useForm","useFormFields","useFormInitializing","useFormModified","useFormProcessing","useFormSubmitted","useField","options","$","disableFormData","t0","hasRows","path","validate","undefined","submitted","processing","initializing","user","id","collectionSlug","operation","dispatchField","_temp","t1","t2","fields","field","t","config","getData","getDataByPath","getSiblingData","setModified","documentForm","modified","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","e","t3","disableModifyingForm","val","target","type","setTimeout","setValue","t4","customComponents","t5","t6","errorPaths","t7","rows","t8","t9","formInitializing","formProcessing","formSubmitted","result","t10","validateField","valueToValidate","Array","isArray","current","valid_0","data","isValid","blockData","event","preferences","req","payload","siblingData","update","t11","t12","dispatch"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#usefield\n */\nexport const useField = <TValue,>(options: Options): FieldType<TValue> => {\n const { disableFormData = false, hasRows, path, validate } = options\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const documentForm = useDocumentForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const data = getData()\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n collectionSlug,\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'onChange',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useDocumentForm","useForm","useFormFields","useFormInitializing","useFormModified","useFormProcessing","useFormSubmitted","useField","options","$","disableFormData","t0","hasRows","path","validate","undefined","submitted","processing","initializing","user","id","collectionSlug","operation","dispatchField","_temp","t1","t2","fields","field","t","config","getData","getDataByPath","getSiblingData","setModified","documentForm","modified","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","split","pathSegments","t3","e","t4","disableModifyingForm","val","target","type","setTimeout","setValue","t5","customComponents","t6","t7","errorPaths","t8","rows","t9","t10","formInitializing","formProcessing","formSubmitted","result","t11","validateField","valueToValidate","Array","isArray","current","valid_0","data","isValid","blockData","event","preferences","req","payload","siblingData","update","t12","t13","dispatch"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#usefield\n */\nexport const useField = <TValue,>(options: Options): FieldType<TValue> => {\n const { disableFormData = false, hasRows, path, validate } = options\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const documentForm = useDocumentForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n const pathSegments = path ? path.split('.') : []\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const data = getData()\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n collectionSlug,\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'onChange',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/DefaultBlockImage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAoBrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/DefaultBlockImage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAyCrC,CAAA"}
@@ -2,34 +2,64 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useState } from 'react';
3
3
  import { v4 as uuid } from 'uuid';
4
4
  export const DefaultBlockImage = () => {
5
- const [patternID] = useState(`pattern${uuid()}`);
6
- const [imageID] = useState(`image${uuid()}`);
5
+ const [patternID] = useState(() => `pattern${uuid()}`);
7
6
  return /*#__PURE__*/_jsxs("svg", {
8
7
  fill: "none",
9
- height: "53",
10
- viewBox: "0 0 82 53",
11
- width: "82",
12
- children: [/*#__PURE__*/_jsx("rect", {
13
- fill: `url(#${patternID})`,
14
- height: "52.7791",
15
- width: "80.574",
16
- x: "0.713013"
17
- }), /*#__PURE__*/_jsxs("defs", {
18
- children: [/*#__PURE__*/_jsx("pattern", {
19
- height: "1",
8
+ height: "151",
9
+ preserveAspectRatio: "xMidYMid slice",
10
+ viewBox: "0 0 231 151",
11
+ width: "231",
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ children: [/*#__PURE__*/_jsxs("g", {
14
+ clipPath: `url(#${patternID})`,
15
+ children: [/*#__PURE__*/_jsx("rect", {
16
+ fill: "#D9D9D9",
17
+ height: "100%",
18
+ rx: "2",
19
+ width: "100%"
20
+ }), /*#__PURE__*/_jsx("rect", {
21
+ fill: "#BCBCBC",
22
+ height: "116.063",
23
+ transform: "rotate(52.0687 33.7051 79.3051)",
24
+ width: "85.8593",
25
+ x: "33.7051",
26
+ y: "79.3051"
27
+ }), /*#__PURE__*/_jsx("rect", {
28
+ fill: "#BCBCBC",
29
+ height: "116.063",
30
+ transform: "rotate(52.0687 86.1219 92.6272)",
31
+ width: "85.8593",
32
+ x: "86.1219",
33
+ y: "92.6272"
34
+ }), /*#__PURE__*/_jsx("circle", {
35
+ cx: "189",
36
+ cy: "45",
37
+ fill: "#BCBCBC",
38
+ r: "19"
39
+ }), /*#__PURE__*/_jsx("rect", {
40
+ fill: "#B8B8B8",
41
+ height: "5",
42
+ rx: "2.5",
43
+ width: "98",
44
+ x: "66",
45
+ y: "70"
46
+ }), /*#__PURE__*/_jsx("rect", {
47
+ fill: "#B8B8B8",
48
+ height: "5",
49
+ rx: "2.5",
50
+ width: "76",
51
+ x: "77",
52
+ y: "82"
53
+ })]
54
+ }), /*#__PURE__*/_jsx("defs", {
55
+ children: /*#__PURE__*/_jsx("clipPath", {
20
56
  id: `${patternID}`,
21
- patternContentUnits: "objectBoundingBox",
22
- width: "1",
23
- children: /*#__PURE__*/_jsx("use", {
24
- transform: "scale(0.00387597 0.00591716)",
25
- xlinkHref: `#${imageID}`
57
+ children: /*#__PURE__*/_jsx("rect", {
58
+ fill: "white",
59
+ height: "151",
60
+ width: "231"
26
61
  })
27
- }), /*#__PURE__*/_jsx("image", {
28
- height: "169",
29
- id: imageID,
30
- width: "258",
31
- xlinkHref: "data:image/png;base64,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"
32
- })]
62
+ })
33
63
  })]
34
64
  });
35
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","v4","uuid","DefaultBlockImage","patternID","imageID","_jsxs","fill","height","viewBox","width","_jsx","x","id","patternContentUnits","transform","xlinkHref"],"sources":["../../../src/graphics/DefaultBlockImage/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nexport const DefaultBlockImage: React.FC = () => {\n const [patternID] = useState(`pattern${uuid()}`)\n const [imageID] = useState(`image${uuid()}`)\n\n return (\n <svg fill=\"none\" height=\"53\" viewBox=\"0 0 82 53\" width=\"82\">\n <rect fill={`url(#${patternID})`} height=\"52.7791\" width=\"80.574\" x=\"0.713013\" />\n <defs>\n <pattern height=\"1\" id={`${patternID}`} patternContentUnits=\"objectBoundingBox\" width=\"1\">\n <use transform=\"scale(0.00387597 0.00591716)\" xlinkHref={`#${imageID}`} />\n </pattern>\n <image\n height=\"169\"\n id={imageID}\n width=\"258\"\n xlinkHref=\"data:image/png;base64,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\"\n />\n </defs>\n </svg>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,IAASC,QAAQ,QAAQ;AAChC,SAASC,EAAA,IAAMC,IAAI,QAAQ;AAE3B,OAAO,MAAMC,iBAAA,GAA8BA,CAAA;EACzC,MAAM,CAACC,SAAA,CAAU,GAAGJ,QAAA,CAAS,UAAUE,IAAA,IAAQ;EAC/C,MAAM,CAACG,OAAA,CAAQ,GAAGL,QAAA,CAAS,QAAQE,IAAA,IAAQ;EAE3C,oBACEI,KAAA,CAAC;IAAIC,IAAA,EAAK;IAAOC,MAAA,EAAO;IAAKC,OAAA,EAAQ;IAAYC,KAAA,EAAM;4BACrDC,IAAA,CAAC;MAAKJ,IAAA,EAAM,QAAQH,SAAA,GAAY;MAAEI,MAAA,EAAO;MAAUE,KAAA,EAAM;MAASE,CAAA,EAAE;qBACpEN,KAAA,CAAC;8BACCK,IAAA,CAAC;QAAQH,MAAA,EAAO;QAAIK,EAAA,EAAI,GAAGT,SAAA,EAAW;QAAEU,mBAAA,EAAoB;QAAoBJ,KAAA,EAAM;kBACpF,aAAAC,IAAA,CAAC;UAAII,SAAA,EAAU;UAA+BC,SAAA,EAAW,IAAIX,OAAA;;uBAE/DM,IAAA,CAAC;QACCH,MAAA,EAAO;QACPK,EAAA,EAAIR,OAAA;QACJK,KAAA,EAAM;QACNM,SAAA,EAAU;;;;AAKpB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useState","v4","uuid","DefaultBlockImage","patternID","_jsxs","fill","height","preserveAspectRatio","viewBox","width","xmlns","clipPath","_jsx","rx","transform","x","y","cx","cy","r","id"],"sources":["../../../src/graphics/DefaultBlockImage/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nexport const DefaultBlockImage: React.FC = () => {\n const [patternID] = useState(() => `pattern${uuid()}`)\n\n return (\n <svg\n fill=\"none\"\n height=\"151\"\n preserveAspectRatio=\"xMidYMid slice\"\n viewBox=\"0 0 231 151\"\n width=\"231\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath={`url(#${patternID})`}>\n <rect fill=\"#D9D9D9\" height=\"100%\" rx=\"2\" width=\"100%\" />\n <rect\n fill=\"#BCBCBC\"\n height=\"116.063\"\n transform=\"rotate(52.0687 33.7051 79.3051)\"\n width=\"85.8593\"\n x=\"33.7051\"\n y=\"79.3051\"\n />\n <rect\n fill=\"#BCBCBC\"\n height=\"116.063\"\n transform=\"rotate(52.0687 86.1219 92.6272)\"\n width=\"85.8593\"\n x=\"86.1219\"\n y=\"92.6272\"\n />\n <circle cx=\"189\" cy=\"45\" fill=\"#BCBCBC\" r=\"19\" />\n <rect fill=\"#B8B8B8\" height=\"5\" rx=\"2.5\" width=\"98\" x=\"66\" y=\"70\" />\n <rect fill=\"#B8B8B8\" height=\"5\" rx=\"2.5\" width=\"76\" x=\"77\" y=\"82\" />\n </g>\n <defs>\n <clipPath id={`${patternID}`}>\n <rect fill=\"white\" height=\"151\" width=\"231\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,IAASC,QAAQ,QAAQ;AAChC,SAASC,EAAA,IAAMC,IAAI,QAAQ;AAE3B,OAAO,MAAMC,iBAAA,GAA8BA,CAAA;EACzC,MAAM,CAACC,SAAA,CAAU,GAAGJ,QAAA,CAAS,MAAM,UAAUE,IAAA,IAAQ;EAErD,oBACEG,KAAA,CAAC;IACCC,IAAA,EAAK;IACLC,MAAA,EAAO;IACPC,mBAAA,EAAoB;IACpBC,OAAA,EAAQ;IACRC,KAAA,EAAM;IACNC,KAAA,EAAM;4BAENN,KAAA,CAAC;MAAEO,QAAA,EAAU,QAAQR,SAAA,GAAY;8BAC/BS,IAAA,CAAC;QAAKP,IAAA,EAAK;QAAUC,MAAA,EAAO;QAAOO,EAAA,EAAG;QAAIJ,KAAA,EAAM;uBAChDG,IAAA,CAAC;QACCP,IAAA,EAAK;QACLC,MAAA,EAAO;QACPQ,SAAA,EAAU;QACVL,KAAA,EAAM;QACNM,CAAA,EAAE;QACFC,CAAA,EAAE;uBAEJJ,IAAA,CAAC;QACCP,IAAA,EAAK;QACLC,MAAA,EAAO;QACPQ,SAAA,EAAU;QACVL,KAAA,EAAM;QACNM,CAAA,EAAE;QACFC,CAAA,EAAE;uBAEJJ,IAAA,CAAC;QAAOK,EAAA,EAAG;QAAMC,EAAA,EAAG;QAAKb,IAAA,EAAK;QAAUc,CAAA,EAAE;uBAC1CP,IAAA,CAAC;QAAKP,IAAA,EAAK;QAAUC,MAAA,EAAO;QAAIO,EAAA,EAAG;QAAMJ,KAAA,EAAM;QAAKM,CAAA,EAAE;QAAKC,CAAA,EAAE;uBAC7DJ,IAAA,CAAC;QAAKP,IAAA,EAAK;QAAUC,MAAA,EAAO;QAAIO,EAAA,EAAG;QAAMJ,KAAA,EAAM;QAAKM,CAAA,EAAE;QAAKC,CAAA,EAAE;;qBAE/DJ,IAAA,CAAC;gBACC,aAAAA,IAAA,CAAC;QAASQ,EAAA,EAAI,GAAGjB,SAAA,EAAW;kBAC1B,aAAAS,IAAA,CAAC;UAAKP,IAAA,EAAK;UAAQC,MAAA,EAAO;UAAMG,KAAA,EAAM;;;;;AAKhD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Locale/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,KAAiE,MAAM,OAAO,CAAA;AASrF,eAAO,MAAM,oBAAoB;;4BAEP,OAAO;EAC/B,CAAA;AAcF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;CAAE,CAyF5F,CAAA;AAED,eAAO,MAAM,gBAAgB;;4BA1GH,OAAO;CA0GqC,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Locale/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,KAAiE,MAAM,OAAO,CAAA;AASrF,eAAO,MAAM,oBAAoB;;4BAEP,OAAO;EAC/B,CAAA;AAcF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;CAAE,CA2F5F,CAAA;AAED,eAAO,MAAM,gBAAgB;;4BA5GH,OAAO;CA4GqC,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,CAAA"}
@@ -41,7 +41,7 @@ export const LocaleProvider = t0 => {
41
41
  const {
42
42
  user
43
43
  } = useAuth();
44
- const defaultLocale = localization && localization.defaultLocale ? localization.defaultLocale : "en";
44
+ const defaultLocale = localization ? localization.defaultLocale : "en";
45
45
  const {
46
46
  getPreference
47
47
  } = usePreferences();
@@ -58,10 +58,10 @@ export const LocaleProvider = t0 => {
58
58
  let t6;
59
59
  if ($[2] !== defaultLocale || $[3] !== initialLocaleFromPrefs || $[4] !== localeFromParams || $[5] !== localization) {
60
60
  t6 = () => {
61
- if (!localization) {
61
+ if (!localization || localization && !localization.locales.length) {
62
62
  return {};
63
63
  }
64
- return findLocaleFromCode(localization, localeFromParams) || findLocaleFromCode(localization, initialLocaleFromPrefs) || findLocaleFromCode(localization, defaultLocale);
64
+ return findLocaleFromCode(localization, localeFromParams) || findLocaleFromCode(localization, initialLocaleFromPrefs) || findLocaleFromCode(localization, defaultLocale) || findLocaleFromCode(localization, localization.locales[0].code);
65
65
  };
66
66
  $[2] = defaultLocale;
67
67
  $[3] = initialLocaleFromPrefs;
@@ -98,9 +98,11 @@ export const LocaleProvider = t0 => {
98
98
  t9 = () => {
99
99
  const resetLocale = async function resetLocale() {
100
100
  if (localization && user?.id) {
101
- const localeToUse = localeFromParams || (await fetchPreferences("locale", fetchURL)?.then(_temp)) || defaultLocale;
102
- const newLocale = findLocaleFromCode(localization, localeToUse) || findLocaleFromCode(localization, defaultLocale);
103
- setLocale(newLocale);
101
+ const localeToUse = localeFromParams || (await fetchPreferences("locale", fetchURL)?.then(_temp));
102
+ const newLocale = findLocaleFromCode(localization, localeToUse) || findLocaleFromCode(localization, defaultLocale) || findLocaleFromCode(localization, localization?.locales?.[0]?.code);
103
+ if (newLocale) {
104
+ setLocale(newLocale);
105
+ }
104
106
  }
105
107
  };
106
108
  resetLocale();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useSearchParams","React","createContext","useContext","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","t0","$","children","locale","initialLocaleFromPrefs","config","t1","localization","t2","routes","t3","serverURL","api","apiRoute","user","defaultLocale","getPreference","t4","t5","get","localeFromParams","t6","setLocale","isLoading","prevLocale","t7","t8","code","current","fetchURL","t9","id","resetLocale","localeToUse","_temp","newLocale","t10","t11","t12","_jsx","Provider","value","useLocaleLoading","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { createContext, useContext, useEffect, useRef, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { usePreferences } from '../Preferences/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { user } = useAuth()\n\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const { getPreference, setPreference } = usePreferences()\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale>(() => {\n if (!localization) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale>(locale)\n\n useEffect(() => {\n /**\n * We need to set `isLoading` back to false once the locale is detected to be different\n * This happens when the user clicks an anchor link which appends the `?locale=` query param\n * This triggers a client-side navigation, which re-renders the page with the new locale\n * In Next.js, local state is persisted during this type of navigation because components are not unmounted\n */\n if (locale.code !== prevLocale.current.code) {\n setLocaleIsLoading(false)\n }\n\n prevLocale.current = locale\n }, [locale])\n\n const fetchURL = `${serverURL}${apiRoute}`\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value)) ||\n defaultLocale\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale)\n\n setLocale(newLocale)\n }\n }\n\n void resetLocale()\n }, [defaultLocale, getPreference, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext.Provider value={locale}>\n <LocaleLoadingContext.Provider value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext.Provider>\n </LocaleContext.Provider>\n )\n}\n\nexport const useLocaleLoading = () => useContext(LocaleLoadingContext)\n\n/**\n * TODO: V4\n * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useSearchParams","React","createContext","useContext","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","t0","$","children","locale","initialLocaleFromPrefs","config","t1","localization","t2","routes","t3","serverURL","api","apiRoute","user","defaultLocale","getPreference","t4","t5","get","localeFromParams","t6","locales","length","code","setLocale","isLoading","prevLocale","t7","t8","current","fetchURL","t9","id","resetLocale","localeToUse","_temp","newLocale","t10","t11","t12","_jsx","Provider","value","useLocaleLoading","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { createContext, useContext, useEffect, useRef, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { usePreferences } from '../Preferences/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { user } = useAuth()\n\n const defaultLocale = localization ? localization.defaultLocale : 'en'\n\n const { getPreference, setPreference } = usePreferences()\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale>(() => {\n if (!localization || (localization && !localization.locales.length)) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization.locales[0].code)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale>(locale)\n\n useEffect(() => {\n /**\n * We need to set `isLoading` back to false once the locale is detected to be different\n * This happens when the user clicks an anchor link which appends the `?locale=` query param\n * This triggers a client-side navigation, which re-renders the page with the new locale\n * In Next.js, local state is persisted during this type of navigation because components are not unmounted\n */\n if (locale.code !== prevLocale.current.code) {\n setLocaleIsLoading(false)\n }\n\n prevLocale.current = locale\n }, [locale])\n\n const fetchURL = `${serverURL}${apiRoute}`\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value))\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization?.locales?.[0]?.code)\n\n if (newLocale) {\n setLocale(newLocale)\n }\n }\n }\n\n void resetLocale()\n }, [defaultLocale, getPreference, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext.Provider value={locale}>\n <LocaleLoadingContext.Provider value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext.Provider>\n </LocaleContext.Provider>\n )\n}\n\nexport const useLocaleLoading = () => useContext(LocaleLoadingContext)\n\n/**\n * TODO: V4\n * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}