@payloadcms/ui 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f1f97ff

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 (356) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +5 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -1
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +1 -1
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +53 -28
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/Collapsible/index.d.ts +1 -1
  12. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  13. package/dist/elements/Collapsible/index.js +1 -1
  14. package/dist/elements/Collapsible/index.js.map +1 -1
  15. package/dist/elements/DatePicker/index.scss +3 -1
  16. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  17. package/dist/elements/DeleteDocument/index.js +7 -3
  18. package/dist/elements/DeleteDocument/index.js.map +1 -1
  19. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  20. package/dist/elements/DeleteMany/index.js +4 -2
  21. package/dist/elements/DeleteMany/index.js.map +1 -1
  22. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentControls/index.js +5 -1
  24. package/dist/elements/DocumentControls/index.js.map +1 -1
  25. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  26. package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
  27. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  28. package/dist/elements/DocumentFields/index.d.ts +1 -2
  29. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  30. package/dist/elements/DocumentFields/index.js +46 -48
  31. package/dist/elements/DocumentFields/index.js.map +1 -1
  32. package/dist/elements/Drawer/index.d.ts.map +1 -1
  33. package/dist/elements/Drawer/index.js +3 -0
  34. package/dist/elements/Drawer/index.js.map +1 -1
  35. package/dist/elements/Drawer/index.scss +2 -1
  36. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  37. package/dist/elements/DuplicateDocument/index.js +10 -6
  38. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  39. package/dist/elements/EditMany/index.d.ts +1 -2
  40. package/dist/elements/EditMany/index.d.ts.map +1 -1
  41. package/dist/elements/EditMany/index.js.map +1 -1
  42. package/dist/elements/EditUpload/index.d.ts +3 -6
  43. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  44. package/dist/elements/EditUpload/index.js +20 -25
  45. package/dist/elements/EditUpload/index.js.map +1 -1
  46. package/dist/elements/FieldSelect/index.d.ts +1 -2
  47. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  48. package/dist/elements/FieldSelect/index.js.map +1 -1
  49. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  50. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  51. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  52. package/dist/elements/ListControls/index.d.ts +1 -2
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +38 -3
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/Localizer/index.d.ts.map +1 -1
  57. package/dist/elements/Localizer/index.js +6 -13
  58. package/dist/elements/Localizer/index.js.map +1 -1
  59. package/dist/elements/Logout/index.d.ts.map +1 -1
  60. package/dist/elements/Logout/index.js +6 -3
  61. package/dist/elements/Logout/index.js.map +1 -1
  62. package/dist/elements/SearchFilter/index.d.ts +5 -3
  63. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  64. package/dist/elements/SearchFilter/index.js +14 -53
  65. package/dist/elements/SearchFilter/index.js.map +1 -1
  66. package/dist/elements/SortColumn/index.d.ts +2 -2
  67. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  68. package/dist/elements/SortColumn/index.js +4 -4
  69. package/dist/elements/SortColumn/index.js.map +1 -1
  70. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  71. package/dist/elements/StayLoggedIn/index.js +6 -2
  72. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  73. package/dist/elements/StepNav/types.d.ts +2 -2
  74. package/dist/elements/StepNav/types.d.ts.map +1 -1
  75. package/dist/elements/StepNav/types.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  77. package/dist/elements/Table/DefaultCell/index.js +5 -1
  78. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  79. package/dist/elements/Table/index.d.ts +1 -2
  80. package/dist/elements/Table/index.d.ts.map +1 -1
  81. package/dist/elements/Table/index.js.map +1 -1
  82. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  83. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  84. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  85. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  86. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  87. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  88. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  89. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  90. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  91. package/dist/elements/Upload/index.d.ts.map +1 -1
  92. package/dist/elements/Upload/index.js +13 -28
  93. package/dist/elements/Upload/index.js.map +1 -1
  94. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  95. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -5
  96. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  97. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  98. package/dist/elements/WhereBuilder/Condition/index.js +4 -2
  99. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  100. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  101. package/dist/elements/WhereBuilder/index.js +7 -4
  102. package/dist/elements/WhereBuilder/index.js.map +1 -1
  103. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
  104. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  105. package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
  106. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  107. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  108. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  109. package/dist/elements/WhereBuilder/types.js.map +1 -1
  110. package/dist/elements/withMergedProps/index.js +8 -2
  111. package/dist/elements/withMergedProps/index.js.map +1 -1
  112. package/dist/exports/client/index.d.ts +6 -7
  113. package/dist/exports/client/index.d.ts.map +1 -1
  114. package/dist/exports/client/index.js +19 -18
  115. package/dist/exports/client/index.js.map +4 -4
  116. package/dist/exports/shared/index.d.ts +1 -0
  117. package/dist/exports/shared/index.d.ts.map +1 -1
  118. package/dist/exports/shared/index.js +2 -2
  119. package/dist/exports/shared/index.js.map +4 -4
  120. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  121. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  122. package/dist/fields/Array/ArrayRow.js.map +1 -1
  123. package/dist/fields/Array/index.d.ts +2 -15
  124. package/dist/fields/Array/index.d.ts.map +1 -1
  125. package/dist/fields/Array/index.js +25 -8
  126. package/dist/fields/Array/index.js.map +1 -1
  127. package/dist/fields/Blocks/BlockRow.d.ts +2 -3
  128. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  129. package/dist/fields/Blocks/BlockRow.js +5 -1
  130. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  131. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  132. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  133. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  134. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  135. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  136. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  137. package/dist/fields/Blocks/RowActions.js +1 -1
  138. package/dist/fields/Blocks/RowActions.js.map +1 -1
  139. package/dist/fields/Blocks/index.d.ts +1 -14
  140. package/dist/fields/Blocks/index.d.ts.map +1 -1
  141. package/dist/fields/Blocks/index.js +22 -9
  142. package/dist/fields/Blocks/index.js.map +1 -1
  143. package/dist/fields/Checkbox/Input.d.ts +1 -1
  144. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  145. package/dist/fields/Checkbox/Input.js.map +1 -1
  146. package/dist/fields/Checkbox/index.d.ts +1 -1
  147. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  148. package/dist/fields/Checkbox/index.js +2 -2
  149. package/dist/fields/Checkbox/index.js.map +1 -1
  150. package/dist/fields/Code/index.d.ts +1 -9
  151. package/dist/fields/Code/index.d.ts.map +1 -1
  152. package/dist/fields/Code/index.js +2 -2
  153. package/dist/fields/Code/index.js.map +1 -1
  154. package/dist/fields/Collapsible/index.d.ts +1 -7
  155. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  156. package/dist/fields/Collapsible/index.js +2 -2
  157. package/dist/fields/Collapsible/index.js.map +1 -1
  158. package/dist/fields/DateTime/index.d.ts +1 -9
  159. package/dist/fields/DateTime/index.d.ts.map +1 -1
  160. package/dist/fields/DateTime/index.js +2 -2
  161. package/dist/fields/DateTime/index.js.map +1 -1
  162. package/dist/fields/Email/index.d.ts +1 -9
  163. package/dist/fields/Email/index.d.ts.map +1 -1
  164. package/dist/fields/Email/index.js +2 -2
  165. package/dist/fields/Email/index.js.map +1 -1
  166. package/dist/fields/FieldDescription/index.d.ts +2 -2
  167. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  168. package/dist/fields/FieldDescription/index.js.map +1 -1
  169. package/dist/fields/FieldError/index.d.ts +2 -2
  170. package/dist/fields/FieldError/index.d.ts.map +1 -1
  171. package/dist/fields/FieldError/index.js.map +1 -1
  172. package/dist/fields/FieldLabel/index.d.ts +2 -2
  173. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  174. package/dist/fields/FieldLabel/index.js.map +1 -1
  175. package/dist/fields/Group/index.d.ts +2 -10
  176. package/dist/fields/Group/index.d.ts.map +1 -1
  177. package/dist/fields/Group/index.js +2 -2
  178. package/dist/fields/Group/index.js.map +1 -1
  179. package/dist/fields/Hidden/index.d.ts +2 -9
  180. package/dist/fields/Hidden/index.d.ts.map +1 -1
  181. package/dist/fields/Hidden/index.js +2 -2
  182. package/dist/fields/Hidden/index.js.map +1 -1
  183. package/dist/fields/JSON/index.d.ts +1 -9
  184. package/dist/fields/JSON/index.d.ts.map +1 -1
  185. package/dist/fields/JSON/index.js +2 -2
  186. package/dist/fields/JSON/index.js.map +1 -1
  187. package/dist/fields/Number/index.d.ts +1 -14
  188. package/dist/fields/Number/index.d.ts.map +1 -1
  189. package/dist/fields/Number/index.js +2 -2
  190. package/dist/fields/Number/index.js.map +1 -1
  191. package/dist/fields/Password/index.d.ts +1 -2
  192. package/dist/fields/Password/index.d.ts.map +1 -1
  193. package/dist/fields/Password/index.js +2 -2
  194. package/dist/fields/Password/index.js.map +1 -1
  195. package/dist/fields/Point/index.d.ts +2 -9
  196. package/dist/fields/Point/index.d.ts.map +1 -1
  197. package/dist/fields/Point/index.js +2 -2
  198. package/dist/fields/Point/index.js.map +1 -1
  199. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  200. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  201. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  202. package/dist/fields/RadioGroup/index.d.ts +1 -12
  203. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  204. package/dist/fields/RadioGroup/index.js +2 -2
  205. package/dist/fields/RadioGroup/index.js.map +1 -1
  206. package/dist/fields/Relationship/index.d.ts +1 -2
  207. package/dist/fields/Relationship/index.d.ts.map +1 -1
  208. package/dist/fields/Relationship/index.js +2 -2
  209. package/dist/fields/Relationship/index.js.map +1 -1
  210. package/dist/fields/Relationship/types.d.ts +1 -11
  211. package/dist/fields/Relationship/types.d.ts.map +1 -1
  212. package/dist/fields/Relationship/types.js.map +1 -1
  213. package/dist/fields/RichText/index.d.ts +2 -8
  214. package/dist/fields/RichText/index.d.ts.map +1 -1
  215. package/dist/fields/RichText/index.js.map +1 -1
  216. package/dist/fields/Row/index.d.ts +1 -2
  217. package/dist/fields/Row/index.d.ts.map +1 -1
  218. package/dist/fields/Row/index.js +2 -2
  219. package/dist/fields/Row/index.js.map +1 -1
  220. package/dist/fields/Row/index.scss +1 -5
  221. package/dist/fields/Select/Input.d.ts +1 -2
  222. package/dist/fields/Select/Input.d.ts.map +1 -1
  223. package/dist/fields/Select/Input.js.map +1 -1
  224. package/dist/fields/Select/index.d.ts +1 -13
  225. package/dist/fields/Select/index.d.ts.map +1 -1
  226. package/dist/fields/Select/index.js +2 -2
  227. package/dist/fields/Select/index.js.map +1 -1
  228. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  229. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  230. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  231. package/dist/fields/Tabs/index.d.ts +1 -9
  232. package/dist/fields/Tabs/index.d.ts.map +1 -1
  233. package/dist/fields/Tabs/index.js +24 -24
  234. package/dist/fields/Tabs/index.js.map +1 -1
  235. package/dist/fields/Text/index.d.ts +3 -2
  236. package/dist/fields/Text/index.d.ts.map +1 -1
  237. package/dist/fields/Text/index.js +2 -2
  238. package/dist/fields/Text/index.js.map +1 -1
  239. package/dist/fields/Text/types.d.ts +1 -15
  240. package/dist/fields/Text/types.d.ts.map +1 -1
  241. package/dist/fields/Text/types.js.map +1 -1
  242. package/dist/fields/Textarea/index.d.ts +3 -2
  243. package/dist/fields/Textarea/index.d.ts.map +1 -1
  244. package/dist/fields/Textarea/index.js +2 -2
  245. package/dist/fields/Textarea/index.js.map +1 -1
  246. package/dist/fields/Textarea/types.d.ts +1 -11
  247. package/dist/fields/Textarea/types.d.ts.map +1 -1
  248. package/dist/fields/Textarea/types.js.map +1 -1
  249. package/dist/fields/Upload/Input.d.ts +5 -2
  250. package/dist/fields/Upload/Input.d.ts.map +1 -1
  251. package/dist/fields/Upload/Input.js +2 -2
  252. package/dist/fields/Upload/Input.js.map +1 -1
  253. package/dist/fields/Upload/index.d.ts +1 -1
  254. package/dist/fields/Upload/index.d.ts.map +1 -1
  255. package/dist/fields/Upload/index.js +20 -5
  256. package/dist/fields/Upload/index.js.map +1 -1
  257. package/dist/fields/shared/index.d.ts +1 -25
  258. package/dist/fields/shared/index.d.ts.map +1 -1
  259. package/dist/fields/shared/index.js.map +1 -1
  260. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  261. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  262. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  263. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  264. package/dist/forms/Form/fieldReducer.js +11 -38
  265. package/dist/forms/Form/fieldReducer.js.map +1 -1
  266. package/dist/forms/Form/index.d.ts.map +1 -1
  267. package/dist/forms/Form/index.js +5 -15
  268. package/dist/forms/Form/index.js.map +1 -1
  269. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  270. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  271. package/dist/forms/Form/rowHelpers.js +24 -0
  272. package/dist/forms/Form/rowHelpers.js.map +1 -0
  273. package/dist/forms/Form/types.d.ts +3 -10
  274. package/dist/forms/Form/types.d.ts.map +1 -1
  275. package/dist/forms/Form/types.js.map +1 -1
  276. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  277. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  278. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  279. package/dist/forms/RenderFields/types.d.ts +1 -2
  280. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  281. package/dist/forms/RenderFields/types.js.map +1 -1
  282. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  283. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  284. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  285. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  286. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  287. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  288. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  289. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +39 -18
  290. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  291. package/dist/graphics/Account/index.d.ts.map +1 -1
  292. package/dist/graphics/Account/index.js +5 -1
  293. package/dist/graphics/Account/index.js.map +1 -1
  294. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  295. package/dist/hooks/usePayloadAPI.js +5 -1
  296. package/dist/hooks/usePayloadAPI.js.map +1 -1
  297. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  298. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  299. package/dist/hooks/useUseAsTitle.js.map +1 -1
  300. package/dist/providers/Auth/index.d.ts +1 -1
  301. package/dist/providers/Auth/index.d.ts.map +1 -1
  302. package/dist/providers/Auth/index.js +47 -76
  303. package/dist/providers/Auth/index.js.map +1 -1
  304. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +1 -2
  305. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  306. package/dist/providers/ComponentMap/buildComponentMap/fields.js +128 -95
  307. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  308. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -55
  309. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  310. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  311. package/dist/providers/ComponentMap/index.d.ts +2 -1
  312. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  313. package/dist/providers/ComponentMap/index.js.map +1 -1
  314. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  315. package/dist/providers/DocumentInfo/index.js +58 -16
  316. package/dist/providers/DocumentInfo/index.js.map +1 -1
  317. package/dist/providers/ListQuery/index.d.ts +16 -9
  318. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  319. package/dist/providers/ListQuery/index.js +8 -6
  320. package/dist/providers/ListQuery/index.js.map +1 -1
  321. package/dist/providers/UploadEdits/index.d.ts +12 -0
  322. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  323. package/dist/providers/UploadEdits/index.js +30 -0
  324. package/dist/providers/UploadEdits/index.js.map +1 -0
  325. package/dist/styles.css +1 -1
  326. package/dist/utilities/buildFormState.d.ts.map +1 -1
  327. package/dist/utilities/buildFormState.js +3 -2
  328. package/dist/utilities/buildFormState.js.map +1 -1
  329. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  330. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  331. package/dist/utilities/flattenFieldMap.js.map +1 -1
  332. package/dist/utilities/formatAdminURL.d.ts +8 -0
  333. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  334. package/dist/utilities/formatAdminURL.js +15 -0
  335. package/dist/utilities/formatAdminURL.js.map +1 -0
  336. package/package.json +4 -4
  337. package/dist/fields/Checkbox/types.d.ts +0 -12
  338. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  339. package/dist/fields/Checkbox/types.js +0 -3
  340. package/dist/fields/Checkbox/types.js.map +0 -1
  341. package/dist/fields/Row/types.d.ts +0 -12
  342. package/dist/fields/Row/types.d.ts.map +0 -1
  343. package/dist/fields/Row/types.js +0 -3
  344. package/dist/fields/Row/types.js.map +0 -1
  345. package/dist/fields/Upload/types.d.ts +0 -10
  346. package/dist/fields/Upload/types.d.ts.map +0 -1
  347. package/dist/fields/Upload/types.js +0 -3
  348. package/dist/fields/Upload/types.js.map +0 -1
  349. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  350. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  351. package/dist/providers/FormQueryParams/index.js +0 -53
  352. package/dist/providers/FormQueryParams/index.js.map +0 -1
  353. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  354. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  355. package/dist/providers/FormQueryParams/types.js +0 -3
  356. package/dist/providers/FormQueryParams/types.js.map +0 -1
@@ -229,15 +229,29 @@ const ObjectId = ObjectIdImport.default || ObjectIdImport;
229
229
  }
230
230
  case 'relationship':
231
231
  {
232
- if (typeof field.filterOptions === 'function') {
233
- const query = await getFilterOptionsQuery(field.filterOptions, {
234
- id,
235
- data: fullData,
236
- relationTo: field.relationTo,
237
- siblingData: data,
238
- user: req.user
239
- });
240
- fieldState.filterOptions = query;
232
+ if (field.filterOptions) {
233
+ if (typeof field.filterOptions === 'object') {
234
+ if (typeof field.relationTo === 'string') {
235
+ fieldState.filterOptions = {
236
+ [field.relationTo]: field.filterOptions
237
+ };
238
+ } else {
239
+ fieldState.filterOptions = field.relationTo.reduce((acc, relation)=>{
240
+ acc[relation] = field.filterOptions;
241
+ return acc;
242
+ }, {});
243
+ }
244
+ }
245
+ if (typeof field.filterOptions === 'function') {
246
+ const query = await getFilterOptionsQuery(field.filterOptions, {
247
+ id,
248
+ data: fullData,
249
+ relationTo: field.relationTo,
250
+ siblingData: data,
251
+ user: req.user
252
+ });
253
+ fieldState.filterOptions = query;
254
+ }
241
255
  }
242
256
  if (field.hasMany) {
243
257
  const relationshipValue = Array.isArray(data[field.name]) ? data[field.name].map((relationship)=>{
@@ -276,15 +290,22 @@ const ObjectId = ObjectIdImport.default || ObjectIdImport;
276
290
  }
277
291
  case 'upload':
278
292
  {
279
- if (typeof field.filterOptions === 'function') {
280
- const query = await getFilterOptionsQuery(field.filterOptions, {
281
- id,
282
- data: fullData,
283
- relationTo: field.relationTo,
284
- siblingData: data,
285
- user: req.user
286
- });
287
- fieldState.filterOptions = query;
293
+ if (field.filterOptions) {
294
+ if (typeof field.filterOptions === 'object') {
295
+ fieldState.filterOptions = {
296
+ [field.relationTo]: field.filterOptions
297
+ };
298
+ }
299
+ if (typeof field.filterOptions === 'function') {
300
+ const query = await getFilterOptionsQuery(field.filterOptions, {
301
+ id,
302
+ data: fullData,
303
+ relationTo: field.relationTo,
304
+ siblingData: data,
305
+ user: req.user
306
+ });
307
+ fieldState.filterOptions = query;
308
+ }
288
309
  }
289
310
  const relationshipValue = data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name] ? data[field.name].id : data[field.name];
290
311
  fieldState.value = relationshipValue;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/buildStateFromSchema/addFieldStatePromise.ts"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field,\n FormField,\n FormState,\n PayloadRequest,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { fieldAffectsData, fieldHasSubFields, tabHasName } from 'payload/shared'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (path: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n data: Data\n field: Field\n fieldIndex: number\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormState\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n data,\n field,\n fieldIndex,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (fieldAffectsData(field)) {\n const validate = field.validate\n\n const fieldState: FormField = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n data: fullData,\n operation,\n req,\n siblingData: data,\n // @ts-expect-error-next-line\n jsonError,\n preferences,\n })\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(`${path}${field.name}`)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = arrayValue.reduce(\n (acc, row, i) => {\n const rowPath = `${path}${field.name}.${i}.`\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => 'name' in field && field.name === 'id')\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n const rowPath = `${path}${field.name}.${i}.`\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'id',\n )\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[`${rowPath}blockType`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[`${rowPath}blockName`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: block.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[`${path}${field.name}`] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: data?.[field.name] || {},\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: `${path}${field.name}.`,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship': {\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'upload': {\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n data,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab) => {\n const isNamedTab = tabHasName(tab)\n\n return iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: isNamedTab ? `${path}${tab.name}.` : path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n }\n}\n"],"names":["ObjectIdImport","fieldAffectsData","fieldHasSubFields","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","data","field","fieldIndex","filter","forceFullValue","fullData","includeSchema","omitParents","operation","passesCondition","path","preferences","req","skipConditionChecks","skipValidation","state","validate","fieldState","errorPaths","fieldSchema","undefined","initialValue","valid","value","validationResult","jsonError","type","name","JSON","parse","e","siblingData","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rowMetadata","reduce","acc","row","i","rowPath","toHexString","fields","find","localized","parentPassesCondition","collapsedRowIDs","collapsed","admin","initCollapsed","Promise","all","length","disableFormData","rows","blocksValue","block","blocks","blockType","slug","blockField","blockName","filterOptions","query","relationTo","user","hasMany","relationshipValue","map","relationship","tabs","tab","isNamedTab"],"mappings":"AASA,OAAOA,oBAAoB,gBAAe;AAC1C,SAASC,gBAAgB,EAAEC,iBAAiB,EAAEC,UAAU,QAAQ,iBAAgB;AAEhF,SAASC,qBAAqB,QAAQ,6BAA4B;AAClE,SAASC,aAAa,QAAQ,qBAAoB;AAElD,MAAMC,WAAYN,eAAeO,OAAO,IACtCP;AAkDF;;;CAGC,GACD,OAAO,MAAMQ,uBAAuB,OAAOC;IACzC,MAAM,EACJC,EAAE,EACFC,sBAAsBC,uBAAuB,EAC7CC,qBAAqB,KAAK,EAC1BC,IAAI,EACJC,KAAK,EACLC,UAAU,EACVC,MAAM,EACNC,iBAAiB,KAAK,EACtBC,QAAQ,EACRC,gBAAgB,KAAK,EACrBC,cAAc,KAAK,EACnBC,SAAS,EACTC,eAAe,EACfC,IAAI,EACJC,WAAW,EACXC,GAAG,EACHC,sBAAsB,KAAK,EAC3BC,iBAAiB,KAAK,EACtBC,KAAK,EACN,GAAGpB;IAEJ,IAAIR,iBAAiBc,QAAQ;QAC3B,MAAMe,WAAWf,MAAMe,QAAQ;QAE/B,MAAMC,aAAwB;YAC5BC,YAAY,EAAE;YACdC,aAAab,gBAAgBL,QAAQmB;YACrCC,cAAcD;YACdX;YACAa,OAAO;YACPC,OAAOH;QACT;QAEA,IAAII,mBAAkC;QAEtC,IAAI,OAAOR,aAAa,cAAc,CAACF,kBAAkBL,iBAAiB;YACxE,IAAIgB;YAEJ,IAAIxB,MAAMyB,IAAI,KAAK,UAAU,OAAO1B,IAAI,CAACC,MAAM0B,IAAI,CAAC,KAAK,UAAU;gBACjE,IAAI;oBACFC,KAAKC,KAAK,CAAC7B,IAAI,CAACC,MAAM0B,IAAI,CAAC;gBAC7B,EAAE,OAAOG,GAAG;oBACVL,YAAYK;gBACd;YACF;YAEAN,mBAAmB,MAAMR,SAAShB,MAAM,CAACC,MAAM0B,IAAI,CAAC,EAAE;gBACpD,GAAG1B,KAAK;gBACRL;gBACAI,MAAMK;gBACNG;gBACAI;gBACAmB,aAAa/B;gBACb,6BAA6B;gBAC7ByB;gBACAd;YACF;QACF;QAEA,MAAMd,uBAAuB,CAACmC;YAC5B,IAAI,OAAOlC,4BAA4B,YAAY;gBACjDA,wBAAwBkC;YAC1B;YAEA,IAAI,CAACf,WAAWC,UAAU,CAACe,QAAQ,CAACD,YAAY;gBAC9Cf,WAAWC,UAAU,CAACgB,IAAI,CAACF;gBAC3Bf,WAAWK,KAAK,GAAG;YACrB;QACF;QAEA,IAAI,OAAOE,qBAAqB,UAAU;YACxCP,WAAWkB,YAAY,GAAGX;YAC1BP,WAAWK,KAAK,GAAG;YACnBzB,qBAAqB,CAAC,EAAEa,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC;QAC7C,OAAO;YACLV,WAAWK,KAAK,GAAG;QACrB;QAEA,OAAQrB,MAAMyB,IAAI;YAChB,KAAK;gBAAS;oBACZ,MAAMU,aAAaC,MAAMC,OAAO,CAACtC,IAAI,CAACC,MAAM0B,IAAI,CAAC,IAAI3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,GAAG,EAAE;oBAE1E,MAAM,EAAEY,QAAQ,EAAEC,WAAW,EAAE,GAAGJ,WAAWK,MAAM,CACjD,CAACC,KAAKC,KAAKC;wBACT,MAAMC,UAAU,CAAC,EAAEnC,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,EAAEiB,EAAE,CAAC,CAAC;wBAC5CD,IAAI/C,EAAE,GAAG+C,KAAK/C,MAAM,IAAIJ,WAAWsD,WAAW;wBAE9C,IAAI,CAACvC,eAAgB,CAAA,CAACJ,UAAUA,OAAOR,KAAI,GAAI;4BAC7CoB,KAAK,CAAC,CAAC,EAAE8B,QAAQ,EAAE,CAAC,CAAC,GAAG;gCACtB1B,aAAab,gBACTL,MAAM8C,MAAM,CAACC,IAAI,CAAC,CAAC/C,QAAU,UAAUA,SAASA,MAAM0B,IAAI,KAAK,QAC/DP;gCACJC,cAAcsB,IAAI/C,EAAE;gCACpB0B,OAAO;gCACPC,OAAOoB,IAAI/C,EAAE;4BACf;wBACF;wBAEA8C,IAAIH,QAAQ,CAACL,IAAI,CACf3C,cAAc;4BACZK;4BACAC;4BACAE,oBAAoBE,MAAMgD,SAAS,IAAIlD;4BACvCC,MAAM2C;4BACNI,QAAQ9C,MAAM8C,MAAM;4BACpB5C;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACA0C,uBAAuBzC;4BACvBC,MAAMmC;4BACNlC;4BACAC;4BACAC;4BACAC;4BACAC;wBACF;wBAGF,MAAMoC,kBAAkBxC,aAAaoC,QAAQ,CAAC,CAAC,EAAErC,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,EAAEyB;wBAEvEV,IAAIF,WAAW,CAACN,IAAI,CAAC;4BACnBtC,IAAI+C,IAAI/C,EAAE;4BACVwD,WACED,oBAAoB/B,YAChBnB,MAAMoD,KAAK,CAACC,aAAa,GACzBH,gBAAgBlB,QAAQ,CAACU,IAAI/C,EAAE;wBACvC;wBAEA,OAAO8C;oBACT,GACA;wBACEH,UAAU,EAAE;wBACZC,aAAa,EAAE;oBACjB;oBAGF,MAAMe,QAAQC,GAAG,CAACjB;oBAElB,4BAA4B;oBAC5B,IAAIvC,IAAI,CAACC,MAAM0B,IAAI,CAAC,KAAK,MAAM;wBAC7BV,WAAWM,KAAK,GAAG;wBACnBN,WAAWI,YAAY,GAAG;oBAC5B,OAAO;wBACLJ,WAAWM,KAAK,GAAGnB,iBAAiBgC,aAAaA,WAAWqB,MAAM;wBAClExC,WAAWI,YAAY,GAAGjB,iBAAiBgC,aAAaA,WAAWqB,MAAM;wBAEzE,IAAIrB,WAAWqB,MAAM,GAAG,GAAG;4BACzBxC,WAAWyC,eAAe,GAAG;wBAC/B;oBACF;oBAEAzC,WAAW0C,IAAI,GAAGnB;oBAElB,qBAAqB;oBACrB,IAAI,CAACjC,eAAgB,CAAA,CAACJ,UAAUA,OAAOR,KAAI,GAAI;wBAC7CoB,KAAK,CAAC,CAAC,EAAEL,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,GAAGV;oBAClC;oBAEA;gBACF;YAEA,KAAK;gBAAU;oBACb,MAAM2C,cAAcvB,MAAMC,OAAO,CAACtC,IAAI,CAACC,MAAM0B,IAAI,CAAC,IAAI3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,GAAG,EAAE;oBAE3E,MAAM,EAAEY,QAAQ,EAAEC,WAAW,EAAE,GAAGoB,YAAYnB,MAAM,CAClD,CAACC,KAAKC,KAAKC;wBACT,MAAMiB,QAAQ5D,MAAM6D,MAAM,CAACd,IAAI,CAAC,CAACe,YAAcA,UAAUC,IAAI,KAAKrB,IAAIoB,SAAS;wBAC/E,MAAMlB,UAAU,CAAC,EAAEnC,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,EAAEiB,EAAE,CAAC,CAAC;wBAE5C,IAAIiB,OAAO;4BACTlB,IAAI/C,EAAE,GAAG+C,KAAK/C,MAAM,IAAIJ,WAAWsD,WAAW;4BAE9C,IAAI,CAACvC,eAAgB,CAAA,CAACJ,UAAUA,OAAOR,KAAI,GAAI;gCAC7CoB,KAAK,CAAC,CAAC,EAAE8B,QAAQ,EAAE,CAAC,CAAC,GAAG;oCACtB1B,aAAab,gBACTuD,MAAMd,MAAM,CAACC,IAAI,CACf,CAACiB,aAAe,UAAUA,cAAcA,WAAWtC,IAAI,KAAK,QAE9DP;oCACJC,cAAcsB,IAAI/C,EAAE;oCACpB0B,OAAO;oCACPC,OAAOoB,IAAI/C,EAAE;gCACf;gCAEAmB,KAAK,CAAC,CAAC,EAAE8B,QAAQ,SAAS,CAAC,CAAC,GAAG;oCAC7B1B,aAAab,gBACTuD,MAAMd,MAAM,CAACC,IAAI,CACf,CAACiB,aAAe,UAAUA,cAAcA,WAAWtC,IAAI,KAAK,eAE9DP;oCACJC,cAAcsB,IAAIoB,SAAS;oCAC3BzC,OAAO;oCACPC,OAAOoB,IAAIoB,SAAS;gCACtB;gCAEAhD,KAAK,CAAC,CAAC,EAAE8B,QAAQ,SAAS,CAAC,CAAC,GAAG;oCAC7B1B,aAAab,gBACTuD,MAAMd,MAAM,CAACC,IAAI,CACf,CAACiB,aAAe,UAAUA,cAAcA,WAAWtC,IAAI,KAAK,eAE9DP;oCACJC,cAAcsB,IAAIuB,SAAS;oCAC3B5C,OAAO;oCACPC,OAAOoB,IAAIuB,SAAS;gCACtB;4BACF;4BAEAxB,IAAIH,QAAQ,CAACL,IAAI,CACf3C,cAAc;gCACZK;gCACAC;gCACAE,oBAAoBE,MAAMgD,SAAS,IAAIlD;gCACvCC,MAAM2C;gCACNI,QAAQc,MAAMd,MAAM;gCACpB5C;gCACAC;gCACAC;gCACAC;gCACAC;gCACAC;gCACA0C,uBAAuBzC;gCACvBC,MAAMmC;gCACNlC;gCACAC;gCACAC;gCACAC;gCACAC;4BACF;4BAGF,MAAMoC,kBAAkBxC,aAAaoC,QAAQ,CAAC,CAAC,EAAErC,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,EAAEyB;4BAEvEV,IAAIF,WAAW,CAACN,IAAI,CAAC;gCACnBtC,IAAI+C,IAAI/C,EAAE;gCACVmE,WAAWpB,IAAIoB,SAAS;gCACxBX,WACED,oBAAoB/B,YAChBnB,MAAMoD,KAAK,CAACC,aAAa,GACzBH,gBAAgBlB,QAAQ,CAACU,IAAI/C,EAAE;4BACvC;wBACF;wBAEA,OAAO8C;oBACT,GACA;wBACEH,UAAU,EAAE;wBACZC,aAAa,EAAE;oBACjB;oBAGF,MAAMe,QAAQC,GAAG,CAACjB;oBAElB,4BAA4B;oBAC5B,IAAIvC,IAAI,CAACC,MAAM0B,IAAI,CAAC,KAAK,MAAM;wBAC7BV,WAAWM,KAAK,GAAG;wBACnBN,WAAWI,YAAY,GAAG;oBAC5B,OAAO;wBACLJ,WAAWM,KAAK,GAAGnB,iBAAiBwD,cAAcA,YAAYH,MAAM;wBACpExC,WAAWI,YAAY,GAAGjB,iBAAiBwD,cAAcA,YAAYH,MAAM;wBAE3E,IAAIG,YAAYH,MAAM,GAAG,GAAG;4BAC1BxC,WAAWyC,eAAe,GAAG;wBAC/B;oBACF;oBAEAzC,WAAW0C,IAAI,GAAGnB;oBAElB,qBAAqB;oBACrB,IAAI,CAACjC,eAAgB,CAAA,CAACJ,UAAUA,OAAOR,KAAI,GAAI;wBAC7CoB,KAAK,CAAC,CAAC,EAAEL,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,GAAGV;oBAClC;oBAEA;gBACF;YAEA,KAAK;gBAAS;oBACZ,IAAI,CAACd,UAAUA,OAAOR,OAAO;wBAC3BsB,WAAWyC,eAAe,GAAG;wBAC7B3C,KAAK,CAAC,CAAC,EAAEL,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,GAAGV;oBAClC;oBAEA,MAAM1B,cAAc;wBAClBK;wBACAC;wBACAE,oBAAoBE,MAAMgD,SAAS,IAAIlD;wBACvCC,MAAMA,MAAM,CAACC,MAAM0B,IAAI,CAAC,IAAI,CAAC;wBAC7BoB,QAAQ9C,MAAM8C,MAAM;wBACpB5C;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACA0C,uBAAuBzC;wBACvBC,MAAM,CAAC,EAAEA,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC;wBAC7BhB;wBACAC;wBACAC;wBACAC;wBACAC;oBACF;oBAEA;gBACF;YAEA,KAAK;gBAAgB;oBACnB,IAAI,OAAOd,MAAMkE,aAAa,KAAK,YAAY;wBAC7C,MAAMC,QAAQ,MAAM9E,sBAAsBW,MAAMkE,aAAa,EAAE;4BAC7DvE;4BACAI,MAAMK;4BACNgE,YAAYpE,MAAMoE,UAAU;4BAC5BtC,aAAa/B;4BACbsE,MAAM1D,IAAI0D,IAAI;wBAChB;wBAEArD,WAAWkD,aAAa,GAAGC;oBAC7B;oBAEA,IAAInE,MAAMsE,OAAO,EAAE;wBACjB,MAAMC,oBAAoBnC,MAAMC,OAAO,CAACtC,IAAI,CAACC,MAAM0B,IAAI,CAAC,IACpD3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,CAAC8C,GAAG,CAAC,CAACC;4BACpB,IAAIrC,MAAMC,OAAO,CAACrC,MAAMoE,UAAU,GAAG;gCACnC,OAAO;oCACLA,YAAYK,aAAaL,UAAU;oCACnC9C,OACEmD,aAAanD,KAAK,IAAI,OAAOmD,aAAanD,KAAK,KAAK,WAChDmD,aAAanD,KAAK,EAAE3B,KACpB8E,aAAanD,KAAK;gCAC1B;4BACF;4BACA,IAAI,OAAOmD,iBAAiB,YAAYA,iBAAiB,MAAM;gCAC7D,OAAOA,aAAa9E,EAAE;4BACxB;4BACA,OAAO8E;wBACT,KACAtD;wBAEJH,WAAWM,KAAK,GAAGiD;wBACnBvD,WAAWI,YAAY,GAAGmD;oBAC5B,OAAO,IAAInC,MAAMC,OAAO,CAACrC,MAAMoE,UAAU,GAAG;wBAC1C,IACErE,IAAI,CAACC,MAAM0B,IAAI,CAAC,IAChB,OAAO3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,KAAK,YAC5B,gBAAgB3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,IAChC,WAAW3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,EAC3B;4BACA,MAAMJ,QACJ,OAAOvB,IAAI,CAACC,MAAM0B,IAAI,CAAC,EAAEJ,UAAU,YACnCvB,IAAI,CAACC,MAAM0B,IAAI,CAAC,EAAEJ,SAClB,QAAQvB,IAAI,CAACC,MAAM0B,IAAI,CAAC,CAACJ,KAAK,GAC1BvB,IAAI,CAACC,MAAM0B,IAAI,CAAC,CAACJ,KAAK,CAAC3B,EAAE,GACzBI,IAAI,CAACC,MAAM0B,IAAI,CAAC,CAACJ,KAAK;4BAC5B,MAAMiD,oBAAoB;gCACxBH,YAAYrE,IAAI,CAACC,MAAM0B,IAAI,CAAC,EAAE0C;gCAC9B9C;4BACF;4BACAN,WAAWM,KAAK,GAAGiD;4BACnBvD,WAAWI,YAAY,GAAGmD;wBAC5B;oBACF,OAAO;wBACL,MAAMA,oBACJxE,IAAI,CAACC,MAAM0B,IAAI,CAAC,IAAI,OAAO3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,KAAK,YAAY,QAAQ3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,GAChF3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,CAAC/B,EAAE,GACnBI,IAAI,CAACC,MAAM0B,IAAI,CAAC;wBACtBV,WAAWM,KAAK,GAAGiD;wBACnBvD,WAAWI,YAAY,GAAGmD;oBAC5B;oBAEA,IAAI,CAACrE,UAAUA,OAAOR,OAAO;wBAC3BoB,KAAK,CAAC,CAAC,EAAEL,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,GAAGV;oBAClC;oBAEA;gBACF;YAEA,KAAK;gBAAU;oBACb,IAAI,OAAOhB,MAAMkE,aAAa,KAAK,YAAY;wBAC7C,MAAMC,QAAQ,MAAM9E,sBAAsBW,MAAMkE,aAAa,EAAE;4BAC7DvE;4BACAI,MAAMK;4BACNgE,YAAYpE,MAAMoE,UAAU;4BAC5BtC,aAAa/B;4BACbsE,MAAM1D,IAAI0D,IAAI;wBAChB;wBAEArD,WAAWkD,aAAa,GAAGC;oBAC7B;oBAEA,MAAMI,oBACJxE,IAAI,CAACC,MAAM0B,IAAI,CAAC,IAAI,OAAO3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,KAAK,YAAY,QAAQ3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,GAChF3B,IAAI,CAACC,MAAM0B,IAAI,CAAC,CAAC/B,EAAE,GACnBI,IAAI,CAACC,MAAM0B,IAAI,CAAC;oBACtBV,WAAWM,KAAK,GAAGiD;oBACnBvD,WAAWI,YAAY,GAAGmD;oBAE1B,IAAI,CAACrE,UAAUA,OAAOR,OAAO;wBAC3BoB,KAAK,CAAC,CAAC,EAAEL,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,GAAGV;oBAClC;oBAEA;gBACF;YAEA;gBAAS;oBACPA,WAAWM,KAAK,GAAGvB,IAAI,CAACC,MAAM0B,IAAI,CAAC;oBACnCV,WAAWI,YAAY,GAAGrB,IAAI,CAACC,MAAM0B,IAAI,CAAC;oBAE1C,qBAAqB;oBACrB,IAAI,CAACxB,UAAUA,OAAOR,OAAO;wBAC3BoB,KAAK,CAAC,CAAC,EAAEL,KAAK,EAAET,MAAM0B,IAAI,CAAC,CAAC,CAAC,GAAGV;oBAClC;oBAEA;gBACF;QACF;IACF,OAAO,IAAI7B,kBAAkBa,QAAQ;QACnC,sDAAsD;QAEtD,IAAI,CAACE,UAAUA,OAAOR,OAAO;YAC3BoB,KAAK,CAAC,CAAC,EAAEL,KAAK,OAAO,EAAER,WAAW,CAAC,CAAC,GAAG;gBACrCwD,iBAAiB;gBACjBxC,YAAY,EAAE;gBACdG,cAAcD;gBACdX;gBACAa,OAAO;gBACPC,OAAOH;YACT;QACF;QAEA,MAAM7B,cAAc;YAClBK;YACA,mCAAmC;YACnCC,sBAAsBC;YACtBC,oBAAoBE,MAAMgD,SAAS,IAAIlD;YACvCC;YACA+C,QAAQ9C,MAAM8C,MAAM;YACpB5C;YACAC;YACAC;YACAC;YACAC;YACAC;YACA0C,uBAAuBzC;YACvBC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;IACF,OAAO,IAAId,MAAMyB,IAAI,KAAK,QAAQ;QAChC,MAAMa,WAAWtC,MAAM0E,IAAI,CAACF,GAAG,CAAC,CAACG;YAC/B,MAAMC,aAAaxF,WAAWuF;YAE9B,OAAOrF,cAAc;gBACnBK;gBACA,mCAAmC;gBACnCC,sBAAsBC;gBACtBC,oBAAoB6E,IAAI3B,SAAS,IAAIlD;gBACrCC,MAAM6E,aAAa7E,MAAM,CAAC4E,IAAIjD,IAAI,CAAC,IAAI,CAAC,IAAI3B;gBAC5C+C,QAAQ6B,IAAI7B,MAAM;gBAClB5C;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACA0C,uBAAuBzC;gBACvBC,MAAMmE,aAAa,CAAC,EAAEnE,KAAK,EAAEkE,IAAIjD,IAAI,CAAC,CAAC,CAAC,GAAGjB;gBAC3CC;gBACAC;gBACAC;gBACAC;gBACAC;YACF;QACF;QAEA,MAAMwC,QAAQC,GAAG,CAACjB;IACpB,OAAO,IAAItC,MAAMyB,IAAI,KAAK,MAAM;QAC9B,IAAI,CAACvB,UAAUA,OAAOR,OAAO;YAC3BoB,KAAK,CAAC,CAAC,EAAEL,KAAK,OAAO,EAAER,WAAW,CAAC,CAAC,GAAG;gBACrCwD,iBAAiB;gBACjBxC,YAAY,EAAE;gBACdG,cAAcD;gBACdX;gBACAa,OAAO;gBACPC,OAAOH;YACT;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/buildStateFromSchema/addFieldStatePromise.ts"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field,\n FilterOptionsResult,\n FormField,\n FormState,\n PayloadRequest,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { fieldAffectsData, fieldHasSubFields, tabHasName } from 'payload/shared'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (path: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n data: Data\n field: Field\n fieldIndex: number\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormState\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n data,\n field,\n fieldIndex,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (fieldAffectsData(field)) {\n const validate = field.validate\n\n const fieldState: FormField = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n data: fullData,\n operation,\n req,\n siblingData: data,\n // @ts-expect-error-next-line\n jsonError,\n preferences,\n })\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(`${path}${field.name}`)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = arrayValue.reduce(\n (acc, row, i) => {\n const rowPath = `${path}${field.name}.${i}.`\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => 'name' in field && field.name === 'id')\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n const rowPath = `${path}${field.name}.${i}.`\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'id',\n )\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[`${rowPath}blockType`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[`${rowPath}blockName`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: block.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[`${path}${field.name}`] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: data?.[field.name] || {},\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: `${path}${field.name}.`,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n data,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab) => {\n const isNamedTab = tabHasName(tab)\n\n return iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: isNamedTab ? `${path}${tab.name}.` : path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n }\n}\n"],"names":["ObjectIdImport","fieldAffectsData","fieldHasSubFields","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","data","field","fieldIndex","filter","forceFullValue","fullData","includeSchema","omitParents","operation","passesCondition","path","preferences","req","skipConditionChecks","skipValidation","state","validate","fieldState","errorPaths","fieldSchema","undefined","initialValue","valid","value","validationResult","jsonError","type","name","JSON","parse","e","siblingData","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rowMetadata","reduce","acc","row","i","rowPath","toHexString","fields","find","localized","parentPassesCondition","collapsedRowIDs","collapsed","admin","initCollapsed","Promise","all","length","disableFormData","rows","blocksValue","block","blocks","blockType","slug","blockField","blockName","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","isNamedTab"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Account/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,OAAO,yBAiBnB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Account/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,eAAO,MAAM,OAAO,yBAenB,CAAA"}
@@ -4,13 +4,17 @@ import { usePathname } from 'next/navigation.js';
4
4
  import React from 'react';
5
5
  import { useAuth } from '../../providers/Auth/index.js';
6
6
  import { useConfig } from '../../providers/Config/index.js';
7
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
7
8
  import { DefaultAccountIcon } from './Default/index.js';
8
9
  import { GravatarAccountIcon } from './Gravatar/index.js';
9
10
  export const Account = ()=>{
10
11
  const { admin: { avatar: Avatar }, admin: { routes: { account: accountRoute } }, routes: { admin: adminRoute } } = useConfig();
11
12
  const { user } = useAuth();
12
13
  const pathname = usePathname();
13
- const isOnAccountPage = pathname === `${adminRoute}${accountRoute}`;
14
+ const isOnAccountPage = pathname === formatAdminURL({
15
+ adminRoute,
16
+ path: accountRoute
17
+ });
14
18
  if (!user?.email || Avatar === 'default') return /*#__PURE__*/ _jsx(DefaultAccountIcon, {
15
19
  active: isOnAccountPage
16
20
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/graphics/Account/index.tsx"],"sourcesContent":["'use client'\nimport { usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DefaultAccountIcon } from './Default/index.js'\nimport { GravatarAccountIcon } from './Gravatar/index.js'\n\nexport const Account = () => {\n const {\n admin: { avatar: Avatar },\n admin: {\n routes: { account: accountRoute },\n },\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { user } = useAuth()\n const pathname = usePathname()\n\n const isOnAccountPage = pathname === `${adminRoute}${accountRoute}`\n\n if (!user?.email || Avatar === 'default') return <DefaultAccountIcon active={isOnAccountPage} />\n if (Avatar === 'gravatar') return <GravatarAccountIcon />\n if (Avatar) return <Avatar active={isOnAccountPage} />\n}\n"],"names":["usePathname","React","useAuth","useConfig","DefaultAccountIcon","GravatarAccountIcon","Account","admin","avatar","Avatar","routes","account","accountRoute","adminRoute","user","pathname","isOnAccountPage","email","active"],"mappings":"AAAA;;AACA,SAASA,WAAW,QAAQ,qBAAoB;AAChD,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,kBAAkB,QAAQ,qBAAoB;AACvD,SAASC,mBAAmB,QAAQ,sBAAqB;AAEzD,OAAO,MAAMC,UAAU;IACrB,MAAM,EACJC,OAAO,EAAEC,QAAQC,MAAM,EAAE,EACzBF,OAAO,EACLG,QAAQ,EAAEC,SAASC,YAAY,EAAE,EAClC,EACDF,QAAQ,EAAEH,OAAOM,UAAU,EAAE,EAC9B,GAAGV;IAEJ,MAAM,EAAEW,IAAI,EAAE,GAAGZ;IACjB,MAAMa,WAAWf;IAEjB,MAAMgB,kBAAkBD,aAAa,CAAC,EAAEF,WAAW,EAAED,aAAa,CAAC;IAEnE,IAAI,CAACE,MAAMG,SAASR,WAAW,WAAW,qBAAO,KAACL;QAAmBc,QAAQF;;IAC7E,IAAIP,WAAW,YAAY,qBAAO,KAACJ;IACnC,IAAII,QAAQ,qBAAO,KAACA;QAAOS,QAAQF;;AACrC,EAAC"}
1
+ {"version":3,"sources":["../../../src/graphics/Account/index.tsx"],"sourcesContent":["'use client'\nimport { usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { DefaultAccountIcon } from './Default/index.js'\nimport { GravatarAccountIcon } from './Gravatar/index.js'\n\nexport const Account = () => {\n const {\n admin: { avatar: Avatar },\n admin: {\n routes: { account: accountRoute },\n },\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { user } = useAuth()\n const pathname = usePathname()\n const isOnAccountPage = pathname === formatAdminURL({ adminRoute, path: accountRoute })\n if (!user?.email || Avatar === 'default') return <DefaultAccountIcon active={isOnAccountPage} />\n if (Avatar === 'gravatar') return <GravatarAccountIcon />\n if (Avatar) return <Avatar active={isOnAccountPage} />\n}\n"],"names":["usePathname","React","useAuth","useConfig","formatAdminURL","DefaultAccountIcon","GravatarAccountIcon","Account","admin","avatar","Avatar","routes","account","accountRoute","adminRoute","user","pathname","isOnAccountPage","path","email","active"],"mappings":"AAAA;;AACA,SAASA,WAAW,QAAQ,qBAAoB;AAChD,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AACvD,SAASC,mBAAmB,QAAQ,sBAAqB;AAEzD,OAAO,MAAMC,UAAU;IACrB,MAAM,EACJC,OAAO,EAAEC,QAAQC,MAAM,EAAE,EACzBF,OAAO,EACLG,QAAQ,EAAEC,SAASC,YAAY,EAAE,EAClC,EACDF,QAAQ,EAAEH,OAAOM,UAAU,EAAE,EAC9B,GAAGX;IAEJ,MAAM,EAAEY,IAAI,EAAE,GAAGb;IACjB,MAAMc,WAAWhB;IACjB,MAAMiB,kBAAkBD,aAAaZ,eAAe;QAAEU;QAAYI,MAAML;IAAa;IACrF,IAAI,CAACE,MAAMI,SAAST,WAAW,WAAW,qBAAO,KAACL;QAAmBe,QAAQH;;IAC7E,IAAIP,WAAW,YAAY,qBAAO,KAACJ;IACnC,IAAII,QAAQ,qBAAO,KAACA;QAAOU,QAAQH;;AACrC,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePayloadAPI.d.ts","sourceRoot":"","sources":["../../src/hooks/usePayloadAPI.ts"],"names":[],"mappings":"AAQA,KAAK,MAAM,GAAG;IACZ;QACE,IAAI,EAAE,GAAG,CAAA;QACT,OAAO,EAAE,OAAO,CAAA;QAChB,SAAS,EAAE,OAAO,CAAA;KACnB;IACD;QACE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;KACnC;CACF,CAAA;AAED,KAAK,OAAO,GAAG;IACb,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;AAE/D,eAAO,MAAM,aAAa,EAAE,aA6E3B,CAAA"}
1
+ {"version":3,"file":"usePayloadAPI.d.ts","sourceRoot":"","sources":["../../src/hooks/usePayloadAPI.ts"],"names":[],"mappings":"AAQA,KAAK,MAAM,GAAG;IACZ;QACE,IAAI,EAAE,GAAG,CAAA;QACT,OAAO,EAAE,OAAO,CAAA;QAChB,SAAS,EAAE,OAAO,CAAA;KACnB;IACD;QACE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;KACnC;CACF,CAAA;AAED,KAAK,OAAO,GAAG;IACb,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;AAE/D,eAAO,MAAM,aAAa,EAAE,aAiF3B,CAAA"}
@@ -56,7 +56,11 @@ export const usePayloadAPI = (url, options = {})=>{
56
56
  setIsLoading(false);
57
57
  }
58
58
  return ()=>{
59
- abortController.abort();
59
+ try {
60
+ abortController.abort();
61
+ } catch (error) {
62
+ // swallow error
63
+ }
60
64
  };
61
65
  }, [
62
66
  url,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport * as qs from 'qs-esm'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nexport const usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const { code: locale } = useLocale()\n const hasInitialized = useRef(false)\n\n const search = qs.stringify(\n {\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n abortController.abort()\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n"],"names":["qs","useEffect","useRef","useState","useLocale","useTranslation","requests","usePayloadAPI","url","options","initialData","initialParams","i18n","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","code","locale","hasInitialized","search","stringify","addQueryPrefix","current","abortController","AbortController","fetchData","response","get","headers","language","signal","status","json","error","aborted","abort"],"mappings":"AAAA;AACA,YAAYA,QAAQ,SAAQ;AAC5B,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAEnD,SAASC,SAAS,QAAQ,+BAA8B;AACxD,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,QAAQ,QAAQ,sBAAqB;AAoB9C,OAAO,MAAMC,gBAA+B,CAACC,KAAKC,UAAU,CAAC,CAAC;IAC5D,MAAM,EAAEC,WAAW,EAAEC,gBAAgB,CAAC,CAAC,EAAE,GAAGF;IAE5C,MAAM,EAAEG,IAAI,EAAE,GAAGP;IACjB,MAAM,CAACQ,MAAMC,QAAQ,GAAGX,SAASO,eAAe,CAAC;IACjD,MAAM,CAACK,QAAQC,UAAU,GAAGb,SAASQ;IACrC,MAAM,CAACM,WAAWC,aAAa,GAAGf,SAAS,CAACO;IAC5C,MAAM,CAACS,SAASC,WAAW,GAAGjB,SAAS;IACvC,MAAM,EAAEkB,MAAMC,MAAM,EAAE,GAAGlB;IACzB,MAAMmB,iBAAiBrB,OAAO;IAE9B,MAAMsB,SAASxB,GAAGyB,SAAS,CACzB;QACEH;QACA,GAAI,OAAOP,WAAW,WAAWA,SAAS,CAAC,CAAC;IAC9C,GACA;QACEW,gBAAgB;IAClB;IAGF,8CAA8C;IAC9CzB,UAAU;QACR,IAAIS,eAAe,CAACa,eAAeI,OAAO,EAAE;YAC1CJ,eAAeI,OAAO,GAAG;YACzB;QACF;QAEA,MAAMC,kBAAkB,IAAIC;QAE5B,MAAMC,YAAY;YAChBV,WAAW;YACXF,aAAa;YAEb,IAAI;gBACF,MAAMa,WAAW,MAAMzB,SAAS0B,GAAG,CAAC,CAAC,EAAExB,IAAI,EAAEgB,OAAO,CAAC,EAAE;oBACrDS,SAAS;wBACP,mBAAmBrB,KAAKsB,QAAQ;oBAClC;oBACAC,QAAQP,gBAAgBO,MAAM;gBAChC;gBAEA,IAAIJ,SAASK,MAAM,GAAG,KAAK;oBACzBhB,WAAW;gBACb;gBAEA,MAAMiB,OAAO,MAAMN,SAASM,IAAI;gBAChCvB,QAAQuB;gBACRnB,aAAa;YACf,EAAE,OAAOoB,OAAO;gBACd,IAAI,CAACV,gBAAgBO,MAAM,CAACI,OAAO,EAAE;oBACnCnB,WAAW;oBACXF,aAAa;gBACf;YACF;QACF;QAEA,IAAIV,KAAK;YACP,KAAKsB;QACP,OAAO;YACLV,WAAW;YACXF,aAAa;QACf;QAEA,OAAO;YACLU,gBAAgBY,KAAK;QACvB;IACF,GAAG;QAAChC;QAAKc;QAAQE;QAAQZ,KAAKsB,QAAQ;QAAExB;KAAY;IAEpD,4CAA4C;IAC5CT,UAAU;QACR,IAAIS,eAAea,eAAeI,OAAO,EAAE;YACzCb,QAAQJ;QACV;IACF,GAAG;QAACA;KAAY;IAEhB,OAAO;QAAC;YAAEG;YAAMM;YAASF;QAAU;QAAG;YAAED;QAAU;KAAE;AACtD,EAAC"}
1
+ {"version":3,"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport * as qs from 'qs-esm'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nexport const usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const { code: locale } = useLocale()\n const hasInitialized = useRef(false)\n\n const search = qs.stringify(\n {\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n"],"names":["qs","useEffect","useRef","useState","useLocale","useTranslation","requests","usePayloadAPI","url","options","initialData","initialParams","i18n","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","code","locale","hasInitialized","search","stringify","addQueryPrefix","current","abortController","AbortController","fetchData","response","get","headers","language","signal","status","json","error","aborted","abort"],"mappings":"AAAA;AACA,YAAYA,QAAQ,SAAQ;AAC5B,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAEnD,SAASC,SAAS,QAAQ,+BAA8B;AACxD,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,QAAQ,QAAQ,sBAAqB;AAoB9C,OAAO,MAAMC,gBAA+B,CAACC,KAAKC,UAAU,CAAC,CAAC;IAC5D,MAAM,EAAEC,WAAW,EAAEC,gBAAgB,CAAC,CAAC,EAAE,GAAGF;IAE5C,MAAM,EAAEG,IAAI,EAAE,GAAGP;IACjB,MAAM,CAACQ,MAAMC,QAAQ,GAAGX,SAASO,eAAe,CAAC;IACjD,MAAM,CAACK,QAAQC,UAAU,GAAGb,SAASQ;IACrC,MAAM,CAACM,WAAWC,aAAa,GAAGf,SAAS,CAACO;IAC5C,MAAM,CAACS,SAASC,WAAW,GAAGjB,SAAS;IACvC,MAAM,EAAEkB,MAAMC,MAAM,EAAE,GAAGlB;IACzB,MAAMmB,iBAAiBrB,OAAO;IAE9B,MAAMsB,SAASxB,GAAGyB,SAAS,CACzB;QACEH;QACA,GAAI,OAAOP,WAAW,WAAWA,SAAS,CAAC,CAAC;IAC9C,GACA;QACEW,gBAAgB;IAClB;IAGF,8CAA8C;IAC9CzB,UAAU;QACR,IAAIS,eAAe,CAACa,eAAeI,OAAO,EAAE;YAC1CJ,eAAeI,OAAO,GAAG;YACzB;QACF;QAEA,MAAMC,kBAAkB,IAAIC;QAE5B,MAAMC,YAAY;YAChBV,WAAW;YACXF,aAAa;YAEb,IAAI;gBACF,MAAMa,WAAW,MAAMzB,SAAS0B,GAAG,CAAC,CAAC,EAAExB,IAAI,EAAEgB,OAAO,CAAC,EAAE;oBACrDS,SAAS;wBACP,mBAAmBrB,KAAKsB,QAAQ;oBAClC;oBACAC,QAAQP,gBAAgBO,MAAM;gBAChC;gBAEA,IAAIJ,SAASK,MAAM,GAAG,KAAK;oBACzBhB,WAAW;gBACb;gBAEA,MAAMiB,OAAO,MAAMN,SAASM,IAAI;gBAChCvB,QAAQuB;gBACRnB,aAAa;YACf,EAAE,OAAOoB,OAAO;gBACd,IAAI,CAACV,gBAAgBO,MAAM,CAACI,OAAO,EAAE;oBACnCnB,WAAW;oBACXF,aAAa;gBACf;YACF;QACF;QAEA,IAAIV,KAAK;YACP,KAAKsB;QACP,OAAO;YACLV,WAAW;YACXF,aAAa;QACf;QAEA,OAAO;YACL,IAAI;gBACFU,gBAAgBY,KAAK;YACvB,EAAE,OAAOF,OAAO;YACd,gBAAgB;YAClB;QACF;IACF,GAAG;QAAC9B;QAAKc;QAAQE;QAAQZ,KAAKsB,QAAQ;QAAExB;KAAY;IAEpD,4CAA4C;IAC5CT,UAAU;QACR,IAAIS,eAAea,eAAeI,OAAO,EAAE;YACzCb,QAAQJ;QACV;IACF,GAAG;QAACA;KAAY;IAEhB,OAAO;QAAC;YAAEG;YAAMM;YAASF;QAAU;QAAG;YAAED;QAAU;KAAE;AACtD,EAAC"}
@@ -1,4 +1,3 @@
1
- import type { ClientCollectionConfig } from 'payload';
2
- import type { FieldMap, MappedField } from '../providers/ComponentMap/buildComponentMap/types.js';
1
+ import type { ClientCollectionConfig, FieldMap, MappedField } from 'payload';
3
2
  export declare const useUseTitleField: (collection: ClientCollectionConfig, fieldMap: FieldMap) => MappedField;
4
3
  //# sourceMappingURL=useUseAsTitle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUseAsTitle.d.ts","sourceRoot":"","sources":["../../src/hooks/useUseAsTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAA;AAIjG,eAAO,MAAM,gBAAgB,eACf,sBAAsB,YACxB,QAAQ,KACjB,WAOF,CAAA"}
1
+ {"version":3,"file":"useUseAsTitle.d.ts","sourceRoot":"","sources":["../../src/hooks/useUseAsTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI5E,eAAO,MAAM,gBAAgB,eACf,sBAAsB,YACxB,QAAQ,KACjB,WAOF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useUseAsTitle.ts"],"sourcesContent":["import type { ClientCollectionConfig } from 'payload'\n\nimport type { FieldMap, MappedField } from '../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { flattenFieldMap } from '../utilities/flattenFieldMap.js'\n\nexport const useUseTitleField = (\n collection: ClientCollectionConfig,\n fieldMap: FieldMap,\n): MappedField => {\n const {\n admin: { useAsTitle },\n } = collection\n\n const topLevelFields = flattenFieldMap(fieldMap)\n return topLevelFields.find((field) => field.name === useAsTitle)\n}\n"],"names":["flattenFieldMap","useUseTitleField","collection","fieldMap","admin","useAsTitle","topLevelFields","find","field","name"],"mappings":"AAIA,SAASA,eAAe,QAAQ,kCAAiC;AAEjE,OAAO,MAAMC,mBAAmB,CAC9BC,YACAC;IAEA,MAAM,EACJC,OAAO,EAAEC,UAAU,EAAE,EACtB,GAAGH;IAEJ,MAAMI,iBAAiBN,gBAAgBG;IACvC,OAAOG,eAAeC,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKJ;AACvD,EAAC"}
1
+ {"version":3,"sources":["../../src/hooks/useUseAsTitle.ts"],"sourcesContent":["import type { ClientCollectionConfig, FieldMap, MappedField } from 'payload'\n\nimport { flattenFieldMap } from '../utilities/flattenFieldMap.js'\n\nexport const useUseTitleField = (\n collection: ClientCollectionConfig,\n fieldMap: FieldMap,\n): MappedField => {\n const {\n admin: { useAsTitle },\n } = collection\n\n const topLevelFields = flattenFieldMap(fieldMap)\n return topLevelFields.find((field) => field.name === useAsTitle)\n}\n"],"names":["flattenFieldMap","useUseTitleField","collection","fieldMap","admin","useAsTitle","topLevelFields","find","field","name"],"mappings":"AAEA,SAASA,eAAe,QAAQ,kCAAiC;AAEjE,OAAO,MAAMC,mBAAmB,CAC9BC,YACAC;IAEA,MAAM,EACJC,OAAO,EAAEC,UAAU,EAAE,EACtB,GAAGH;IAEJ,MAAMI,iBAAiBN,gBAAgBG;IACvC,OAAOG,eAAeC,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKJ;AACvD,EAAC"}
@@ -2,7 +2,7 @@ import type { ClientUser, Permissions } from 'payload';
2
2
  import React from 'react';
3
3
  export type AuthContext<T = ClientUser> = {
4
4
  fetchFullUser: () => Promise<void>;
5
- logOut: () => void;
5
+ logOut: () => Promise<void>;
6
6
  permissions?: Permissions;
7
7
  refreshCookie: (forceRefresh?: boolean) => void;
8
8
  refreshCookieAsync: () => Promise<ClientUser>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAA;AAKzE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAU1F,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAChB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAsThE,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,oBAAmB,WAAW,CAAC,CAAC,CAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAA;AAKzE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAU1F,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAChB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA2RhE,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,oBAAmB,WAAW,CAAC,CAAC,CAA0C,CAAA"}
@@ -9,23 +9,18 @@ import { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js';
9
9
  import { useDebounce } from '../../hooks/useDebounce.js';
10
10
  import { useTranslation } from '../../providers/Translation/index.js';
11
11
  import { requests } from '../../utilities/api.js';
12
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
12
13
  import { useConfig } from '../Config/index.js';
13
- import { useSearchParams } from '../SearchParams/index.js';
14
14
  const Context = /*#__PURE__*/ createContext({});
15
15
  const maxTimeoutTime = 2147483647;
16
16
  export const AuthProvider = ({ children })=>{
17
- const { searchParams } = useSearchParams();
18
17
  const [user, setUser] = useState();
19
18
  const [tokenInMemory, setTokenInMemory] = useState();
20
19
  const [tokenExpiration, setTokenExpiration] = useState();
21
- const [strategy, setStrategy] = useState();
22
20
  const pathname = usePathname();
23
21
  const router = useRouter();
24
- // const { code } = useLocale()
25
- const code = 'en' // TODO: re-enable i18n asap
26
- ;
27
22
  const config = useConfig();
28
- const { admin: { autoLogin, routes: { inactivity: logoutInactivityRoute }, routes: { login: loginRoute }, user: userSlug }, routes: { admin, api }, serverURL } = config;
23
+ const { admin: { routes: { inactivity: logoutInactivityRoute }, user: userSlug }, routes: { admin: adminRoute, api: apiRoute }, serverURL } = config;
29
24
  const [permissions, setPermissions] = useState();
30
25
  const { i18n } = useTranslation();
31
26
  const { closeAllModals, openModal } = useModal();
@@ -33,30 +28,34 @@ export const AuthProvider = ({ children })=>{
33
28
  const debouncedLocationChange = useDebounce(lastLocationChange, 10000);
34
29
  const id = user?.id;
35
30
  const redirectToInactivityRoute = useCallback(()=>{
36
- if (window.location.pathname.startsWith(admin)) {
31
+ if (window.location.pathname.startsWith(adminRoute)) {
37
32
  const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`;
38
- router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`);
33
+ router.replace(formatAdminURL({
34
+ adminRoute,
35
+ path: `${logoutInactivityRoute}${redirectParam}`
36
+ }));
39
37
  } else {
40
- router.replace(`${admin}${logoutInactivityRoute}`);
38
+ router.replace(formatAdminURL({
39
+ adminRoute,
40
+ path: logoutInactivityRoute
41
+ }));
41
42
  }
42
43
  closeAllModals();
43
44
  }, [
44
45
  router,
45
- admin,
46
+ adminRoute,
46
47
  logoutInactivityRoute,
47
48
  closeAllModals
48
49
  ]);
49
50
  const revokeTokenAndExpire = useCallback(()=>{
50
51
  setTokenInMemory(undefined);
51
52
  setTokenExpiration(undefined);
52
- setStrategy(undefined);
53
53
  }, []);
54
54
  const setTokenAndExpiration = useCallback((json)=>{
55
55
  const token = json?.token || json?.refreshedToken;
56
56
  if (token && json?.exp) {
57
57
  setTokenInMemory(token);
58
58
  setTokenExpiration(json.exp);
59
- if (json.strategy) setStrategy(json.strategy);
60
59
  } else {
61
60
  revokeTokenAndExpire();
62
61
  }
@@ -67,30 +66,33 @@ export const AuthProvider = ({ children })=>{
67
66
  const now = Math.round(new Date().getTime() / 1000);
68
67
  const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now;
69
68
  if (forceRefresh || tokenExpiration && remainingTime < 120) {
70
- setTimeout(async ()=>{
71
- try {
72
- const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {
73
- headers: {
74
- 'Accept-Language': i18n.language
69
+ setTimeout(()=>{
70
+ async function refresh() {
71
+ try {
72
+ const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {
73
+ headers: {
74
+ 'Accept-Language': i18n.language
75
+ }
76
+ });
77
+ if (request.status === 200) {
78
+ const json = await request.json();
79
+ setUser(json.user);
80
+ setTokenAndExpiration(json);
81
+ } else {
82
+ setUser(null);
83
+ redirectToInactivityRoute();
75
84
  }
76
- });
77
- if (request.status === 200) {
78
- const json = await request.json();
79
- setUser(json.user);
80
- setTokenAndExpiration(json);
81
- } else {
82
- setUser(null);
83
- redirectToInactivityRoute();
85
+ } catch (e) {
86
+ toast.error(e.message);
84
87
  }
85
- } catch (e) {
86
- toast.error(e.message);
87
88
  }
89
+ void refresh();
88
90
  }, 1000);
89
91
  }
90
92
  }, [
91
93
  tokenExpiration,
92
94
  serverURL,
93
- api,
95
+ apiRoute,
94
96
  userSlug,
95
97
  i18n,
96
98
  redirectToInactivityRoute,
@@ -98,7 +100,7 @@ export const AuthProvider = ({ children })=>{
98
100
  ]);
99
101
  const refreshCookieAsync = useCallback(async (skipSetUser)=>{
100
102
  try {
101
- const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {
103
+ const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {
102
104
  headers: {
103
105
  'Accept-Language': i18n.language
104
106
  }
@@ -120,7 +122,7 @@ export const AuthProvider = ({ children })=>{
120
122
  }
121
123
  }, [
122
124
  serverURL,
123
- api,
125
+ apiRoute,
124
126
  userSlug,
125
127
  i18n,
126
128
  redirectToInactivityRoute,
@@ -130,22 +132,24 @@ export const AuthProvider = ({ children })=>{
130
132
  setUser(null);
131
133
  revokeTokenAndExpire();
132
134
  try {
133
- await requests.post(`${serverURL}${api}/${userSlug}/logout`);
135
+ await requests.post(`${serverURL}${apiRoute}/${userSlug}/logout`);
134
136
  } catch (e) {
135
137
  toast.error(`Logging out failed: ${e.message}`);
136
138
  }
137
139
  }, [
138
140
  serverURL,
139
- api,
141
+ apiRoute,
140
142
  userSlug,
141
143
  revokeTokenAndExpire
142
144
  ]);
143
- const refreshPermissions = useCallback(async ()=>{
144
- const params = {
145
- locale: code
146
- };
145
+ const refreshPermissions = useCallback(async ({ locale } = {})=>{
146
+ const params = qs.stringify({
147
+ locale
148
+ }, {
149
+ addQueryPrefix: true
150
+ });
147
151
  try {
148
- const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {
152
+ const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {
149
153
  headers: {
150
154
  'Accept-Language': i18n.language
151
155
  }
@@ -161,13 +165,12 @@ export const AuthProvider = ({ children })=>{
161
165
  }
162
166
  }, [
163
167
  serverURL,
164
- api,
165
- i18n,
166
- code
168
+ apiRoute,
169
+ i18n
167
170
  ]);
168
171
  const fetchFullUser = React.useCallback(async ()=>{
169
172
  try {
170
- const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {
173
+ const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {
171
174
  headers: {
172
175
  'Accept-Language': i18n.language
173
176
  }
@@ -179,31 +182,6 @@ export const AuthProvider = ({ children })=>{
179
182
  if (json?.token) {
180
183
  setTokenAndExpiration(json);
181
184
  }
182
- } else if (autoLogin && autoLogin.prefillOnly !== true) {
183
- // auto log-in with the provided autoLogin credentials. This is used in dev mode
184
- // so you don't have to log in over and over again
185
- const autoLoginResult = await requests.post(`${serverURL}${api}/${userSlug}${loginRoute}`, {
186
- body: JSON.stringify({
187
- email: autoLogin.email,
188
- password: autoLogin.password,
189
- username: autoLogin.username
190
- }),
191
- headers: {
192
- 'Accept-Language': i18n.language,
193
- 'Content-Type': 'application/json'
194
- }
195
- });
196
- if (autoLoginResult.status === 200) {
197
- const autoLoginJson = await autoLoginResult.json();
198
- setUser(autoLoginJson.user);
199
- if (autoLoginJson?.token) {
200
- setTokenAndExpiration(autoLoginJson);
201
- }
202
- router.replace(typeof searchParams['redirect'] === 'string' ? searchParams['redirect'] : admin);
203
- } else {
204
- setUser(null);
205
- revokeTokenAndExpire();
206
- }
207
185
  } else {
208
186
  setUser(null);
209
187
  revokeTokenAndExpire();
@@ -214,18 +192,11 @@ export const AuthProvider = ({ children })=>{
214
192
  }
215
193
  }, [
216
194
  serverURL,
217
- api,
195
+ apiRoute,
218
196
  userSlug,
219
197
  i18n.language,
220
- autoLogin,
221
198
  setTokenAndExpiration,
222
- router,
223
- searchParams,
224
- admin,
225
- revokeTokenAndExpire,
226
- strategy,
227
- tokenExpiration,
228
- loginRoute
199
+ revokeTokenAndExpire
229
200
  ]);
230
201
  // On mount, get user and set
231
202
  useEffect(()=>{