@payloadcms/ui 3.0.0-beta.95 → 3.0.0-beta.96

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 (216) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +6 -2
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/Banner/index.d.ts.map +1 -1
  5. package/dist/elements/Banner/index.js +6 -2
  6. package/dist/elements/Banner/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  8. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/ActionsBar/index.scss +4 -4
  10. package/dist/elements/BulkUpload/AddFilesView/index.js +1 -0
  11. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/AddFilesView/index.scss +1 -1
  13. package/dist/elements/BulkUpload/EditForm/index.js +6 -2
  14. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/FileSidebar/index.scss +8 -10
  16. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  17. package/dist/elements/BulkUpload/FormsManager/index.js +3 -1
  18. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  20. package/dist/elements/BulkUpload/index.js.map +1 -1
  21. package/dist/elements/Button/index.d.ts.map +1 -1
  22. package/dist/elements/Button/index.js +23 -15
  23. package/dist/elements/Button/index.js.map +1 -1
  24. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  25. package/dist/elements/Collapsible/index.js.map +1 -1
  26. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  27. package/dist/elements/ColumnSelector/index.js.map +1 -1
  28. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  29. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  30. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  31. package/dist/elements/DraggableSortable/index.js.map +1 -1
  32. package/dist/elements/Drawer/index.d.ts.map +1 -1
  33. package/dist/elements/Drawer/index.js.map +1 -1
  34. package/dist/elements/Dropzone/index.scss +1 -1
  35. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  36. package/dist/elements/EditUpload/index.js +23 -11
  37. package/dist/elements/EditUpload/index.js.map +1 -1
  38. package/dist/elements/ErrorPill/index.d.ts.map +1 -1
  39. package/dist/elements/ErrorPill/index.js +3 -1
  40. package/dist/elements/ErrorPill/index.js.map +1 -1
  41. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  42. package/dist/elements/FieldSelect/index.js +3 -1
  43. package/dist/elements/FieldSelect/index.js.map +1 -1
  44. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  45. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  46. package/dist/elements/ListDrawer/index.scss +1 -1
  47. package/dist/elements/Pagination/index.d.ts.map +1 -1
  48. package/dist/elements/Pagination/index.js +19 -9
  49. package/dist/elements/Pagination/index.js.map +1 -1
  50. package/dist/elements/PerPage/index.d.ts.map +1 -1
  51. package/dist/elements/PerPage/index.js.map +1 -1
  52. package/dist/elements/Pill/index.d.ts.map +1 -1
  53. package/dist/elements/Pill/index.js +11 -5
  54. package/dist/elements/Pill/index.js.map +1 -1
  55. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  56. package/dist/elements/Popup/PopupTrigger/index.js +3 -1
  57. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  58. package/dist/elements/Popup/index.d.ts.map +1 -1
  59. package/dist/elements/Popup/index.js +3 -1
  60. package/dist/elements/Popup/index.js.map +1 -1
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  62. package/dist/elements/PreviewButton/usePreviewURL.js +18 -6
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  64. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  65. package/dist/elements/PreviewSizes/index.js +15 -5
  66. package/dist/elements/PreviewSizes/index.js.map +1 -1
  67. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  68. package/dist/elements/PublishButton/index.js +5 -3
  69. package/dist/elements/PublishButton/index.js.map +1 -1
  70. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  71. package/dist/elements/ReactSelect/DropdownIndicator/index.js +3 -1
  72. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  73. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  74. package/dist/elements/ReactSelect/index.js +3 -1
  75. package/dist/elements/ReactSelect/index.js.map +1 -1
  76. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  77. package/dist/elements/SaveButton/index.js +5 -3
  78. package/dist/elements/SaveButton/index.js.map +1 -1
  79. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  80. package/dist/elements/SaveDraftButton/index.js +11 -5
  81. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  82. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  83. package/dist/elements/SearchFilter/index.js +3 -1
  84. package/dist/elements/SearchFilter/index.js.map +1 -1
  85. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  86. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js.map +1 -1
  89. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  90. package/dist/elements/SortComplex/index.js.map +1 -1
  91. package/dist/elements/Table/DefaultCell/fields/File/index.scss +5 -5
  92. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  93. package/dist/elements/TableColumns/buildColumnState.js +9 -3
  94. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  95. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  96. package/dist/elements/TableColumns/index.js.map +1 -1
  97. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  98. package/dist/elements/Tooltip/index.js.map +1 -1
  99. package/dist/elements/Upload/index.d.ts.map +1 -1
  100. package/dist/elements/Upload/index.js +37 -32
  101. package/dist/elements/Upload/index.js.map +1 -1
  102. package/dist/elements/Upload/index.scss +27 -1
  103. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  104. package/dist/elements/WhereBuilder/reduceClientFields.js +3 -1
  105. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  106. package/dist/exports/client/{CodeEditor-P66JEENA.js → CodeEditor-CHKRX3U2.js} +4 -4
  107. package/dist/exports/client/{CodeEditor-P66JEENA.js.map → CodeEditor-CHKRX3U2.js.map} +4 -4
  108. package/dist/exports/client/{DatePicker-E6IJFDN2.js → DatePicker-OLRZVTAD.js} +2 -2
  109. package/dist/exports/client/{chunk-XKP472RX.js → chunk-BGA6EPOL.js} +1 -1
  110. package/dist/exports/client/{chunk-XKP472RX.js.map → chunk-BGA6EPOL.js.map} +2 -2
  111. package/dist/exports/client/{chunk-OBXEO4WP.js → chunk-JINNHJP7.js} +1 -1
  112. package/dist/exports/client/{chunk-OBXEO4WP.js.map → chunk-JINNHJP7.js.map} +2 -2
  113. package/dist/exports/client/index.js +19 -19
  114. package/dist/exports/client/index.js.map +3 -3
  115. package/dist/exports/shared/index.js.map +2 -2
  116. package/dist/fields/Array/index.d.ts.map +1 -1
  117. package/dist/fields/Array/index.js.map +1 -1
  118. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  119. package/dist/fields/Blocks/BlocksDrawer/index.js +3 -1
  120. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  121. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  122. package/dist/fields/Checkbox/index.js.map +1 -1
  123. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  124. package/dist/fields/Collapsible/index.js.map +1 -1
  125. package/dist/fields/DateTime/index.d.ts.map +1 -1
  126. package/dist/fields/DateTime/index.js.map +1 -1
  127. package/dist/fields/JSON/index.d.ts.map +1 -1
  128. package/dist/fields/JSON/index.js +16 -8
  129. package/dist/fields/JSON/index.js.map +1 -1
  130. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  131. package/dist/fields/RadioGroup/index.js.map +1 -1
  132. package/dist/fields/Relationship/index.d.ts.map +1 -1
  133. package/dist/fields/Relationship/index.js +9 -3
  134. package/dist/fields/Relationship/index.js.map +1 -1
  135. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  136. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  137. package/dist/fields/Select/index.d.ts.map +1 -1
  138. package/dist/fields/Select/index.js +8 -6
  139. package/dist/fields/Select/index.js.map +1 -1
  140. package/dist/fields/Text/index.d.ts.map +1 -1
  141. package/dist/fields/Text/index.js.map +1 -1
  142. package/dist/fields/Textarea/index.d.ts.map +1 -1
  143. package/dist/fields/Textarea/index.js.map +1 -1
  144. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  145. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  146. package/dist/fields/Upload/HasOne/index.scss +0 -1
  147. package/dist/fields/Upload/Input.d.ts.map +1 -1
  148. package/dist/fields/Upload/Input.js +575 -268
  149. package/dist/fields/Upload/Input.js.map +1 -1
  150. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  151. package/dist/fields/Upload/RelationshipContent/index.js +9 -4
  152. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  153. package/dist/fields/Upload/RelationshipContent/index.scss +6 -3
  154. package/dist/fields/Upload/UploadCard/index.scss +3 -3
  155. package/dist/fields/Upload/index.d.ts.map +1 -1
  156. package/dist/fields/Upload/index.js +4 -3
  157. package/dist/fields/Upload/index.js.map +1 -1
  158. package/dist/fields/Upload/index.scss +8 -6
  159. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  160. package/dist/forms/Form/fieldReducer.js +6 -2
  161. package/dist/forms/Form/fieldReducer.js.map +1 -1
  162. package/dist/forms/Form/index.d.ts.map +1 -1
  163. package/dist/forms/Form/index.js +18 -6
  164. package/dist/forms/Form/index.js.map +1 -1
  165. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  166. package/dist/forms/Form/mergeServerFormState.js +3 -1
  167. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  168. package/dist/forms/Form/rowHelpers.d.ts.map +1 -1
  169. package/dist/forms/Form/rowHelpers.js +9 -3
  170. package/dist/forms/Form/rowHelpers.js.map +1 -1
  171. package/dist/forms/Form/rows.d.ts.map +1 -1
  172. package/dist/forms/Form/rows.js +3 -1
  173. package/dist/forms/Form/rows.js.map +1 -1
  174. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  175. package/dist/forms/NullifyField/index.js.map +1 -1
  176. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  177. package/dist/forms/RenderFields/RenderField.js +3 -1
  178. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  179. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  180. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +6 -2
  181. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  182. package/dist/graphics/Account/index.d.ts.map +1 -1
  183. package/dist/graphics/Account/index.js.map +1 -1
  184. package/dist/hooks/useHotkey.d.ts.map +1 -1
  185. package/dist/hooks/useHotkey.js.map +1 -1
  186. package/dist/hooks/useIntersect.d.ts.map +1 -1
  187. package/dist/hooks/useIntersect.js.map +1 -1
  188. package/dist/providers/Auth/index.d.ts.map +1 -1
  189. package/dist/providers/Auth/index.js +6 -2
  190. package/dist/providers/Auth/index.js.map +1 -1
  191. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  192. package/dist/providers/Config/createClientConfig/collections.js +3 -1
  193. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  194. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.d.ts.map +1 -1
  195. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js +3 -1
  196. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js.map +1 -1
  197. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  198. package/dist/providers/DocumentInfo/index.js +12 -4
  199. package/dist/providers/DocumentInfo/index.js.map +1 -1
  200. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  201. package/dist/providers/ListQuery/index.js +6 -2
  202. package/dist/providers/ListQuery/index.js.map +1 -1
  203. package/dist/providers/Locale/index.d.ts.map +1 -1
  204. package/dist/providers/Locale/index.js.map +1 -1
  205. package/dist/providers/Preferences/index.d.ts.map +1 -1
  206. package/dist/providers/Preferences/index.js +3 -1
  207. package/dist/providers/Preferences/index.js.map +1 -1
  208. package/dist/styles.css +1 -1
  209. package/dist/utilities/buildFormState.d.ts.map +1 -1
  210. package/dist/utilities/buildFormState.js +6 -2
  211. package/dist/utilities/buildFormState.js.map +1 -1
  212. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  213. package/dist/utilities/reduceFieldsToValuesWithValidation.js +6 -2
  214. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  215. package/package.json +8 -8
  216. /package/dist/exports/client/{DatePicker-E6IJFDN2.js.map → DatePicker-OLRZVTAD.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","preferenceKey","router","setPreference","hasSetInitialParams","useRef","searchParams","currentQuery","refineListData","useCallback","query","pageQuery","page","updatedPreferences","updatePreferences","limit","sort","params","search","where","replace","stringify","addQueryPrefix","arg","String","useEffect","current","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n handlePageChange?: (page: number) => Promise<void> | void\n handlePerPageChange?: (limit: number) => Promise<void> | void\n handleSearchChange?: (search: string) => Promise<void> | void\n handleSortChange?: (sort: string) => Promise<void> | void\n handleWhereChange?: (where: Where) => Promise<void> | void\n}\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n children: React.ReactNode\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n modifySearchParams?: boolean\n preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const hasSetInitialParams = React.useRef(false)\n const { searchParams: currentQuery } = useSearchParams()\n\n const refineListData = React.useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) return\n\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n if ('where' in query || 'search' in query) pageQuery = '1'\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = query.limit\n updatePreferences = true\n }\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [preferenceKey, modifySearchParams, router, setPreference, currentQuery],\n )\n\n const handlePageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n await refineListData({ limit: String(arg) })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n const handleSearchChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(arg)\n }\n await refineListData({ search: arg })\n },\n [refineListData, handleSearchChangeFromProps],\n )\n const handleSortChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n const handleWhereChange = React.useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n React.useEffect(() => {\n if (!hasSetInitialParams.current) {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n\n hasSetInitialParams.current = true\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","preferenceKey","router","setPreference","hasSetInitialParams","useRef","searchParams","currentQuery","refineListData","useCallback","query","pageQuery","page","updatedPreferences","updatePreferences","limit","sort","params","search","where","replace","stringify","addQueryPrefix","arg","String","useEffect","current","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n handlePageChange?: (page: number) => Promise<void> | void\n handlePerPageChange?: (limit: number) => Promise<void> | void\n handleSearchChange?: (search: string) => Promise<void> | void\n handleSortChange?: (sort: string) => Promise<void> | void\n handleWhereChange?: (where: Where) => Promise<void> | void\n}\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n children: React.ReactNode\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n modifySearchParams?: boolean\n preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const hasSetInitialParams = React.useRef(false)\n const { searchParams: currentQuery } = useSearchParams()\n\n const refineListData = React.useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) {\n return\n }\n\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = query.limit\n updatePreferences = true\n }\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [preferenceKey, modifySearchParams, router, setPreference, currentQuery],\n )\n\n const handlePageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n await refineListData({ limit: String(arg) })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n const handleSearchChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(arg)\n }\n await refineListData({ search: arg })\n },\n [refineListData, handleSearchChangeFromProps],\n )\n const handleSortChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n const handleWhereChange = React.useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n React.useEffect(() => {\n if (!hasSetInitialParams.current) {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n\n hasSetInitialParams.current = true\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","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;AAErC,OAAO,KAAyD,MAAM,OAAO,CAAA;AAU7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAyEnE,CAAA;AAED;;GAEG;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;AAErC,OAAO,KAAyD,MAAM,OAAO,CAAA;AAU7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA2EnE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","useSearchParams","LocaleContext","LocaleProvider","t0","$","children","config","t1","localization","user","defaultLocale","searchParams","localeFromParams","locale","localeCode","setLocaleCode","t2","setLocale","getPreference","setPreference","t3","newLocale","localeToSet","localeCodes","indexOf","t4","error","switchLocale","setInitialLocale","localeToSet_0","t5","t6","_jsx","Provider","value","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport React, { createContext, useContext, useEffect, 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'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const {\n config: { localization },\n } = useConfig()\n\n const { user } = useAuth()\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const { searchParams } = useSearchParams()\n const localeFromParams = searchParams?.locale\n\n const [localeCode, setLocaleCode] = useState<string>(\n (localeFromParams as string) || defaultLocale,\n )\n\n const [locale, setLocale] = useState<Locale | null>(\n localization && findLocaleFromCode(localization, localeCode),\n )\n\n const { getPreference, setPreference } = usePreferences()\n\n const switchLocale = React.useCallback(\n async (newLocale: string) => {\n if (!localization) {\n return\n }\n\n const localeToSet =\n localization.localeCodes.indexOf(newLocale) > -1 ? newLocale : defaultLocale\n\n if (localeToSet !== localeCode) {\n setLocaleCode(localeToSet)\n setLocale(findLocaleFromCode(localization, localeToSet))\n try {\n if (user) await setPreference('locale', localeToSet)\n } catch (error) {\n // swallow error\n }\n }\n },\n [localization, setPreference, user, defaultLocale, localeCode],\n )\n\n useEffect(() => {\n async function setInitialLocale() {\n let localeToSet = defaultLocale\n\n if (typeof localeFromParams === 'string') {\n localeToSet = localeFromParams\n } else if (user) {\n try {\n localeToSet = await getPreference<string>('locale')\n } catch (error) {\n // swallow error\n }\n }\n\n await switchLocale(localeToSet)\n }\n\n void setInitialLocale()\n }, [\n defaultLocale,\n getPreference,\n localization,\n localeFromParams,\n setPreference,\n user,\n switchLocale,\n ])\n\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>\n}\n\n/**\n * A hook that returns the current locale object.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","useSearchParams","LocaleContext","LocaleProvider","t0","$","children","config","t1","localization","user","defaultLocale","searchParams","localeFromParams","locale","localeCode","setLocaleCode","t2","setLocale","getPreference","setPreference","t3","newLocale","localeToSet","localeCodes","indexOf","t4","error","switchLocale","setInitialLocale","localeToSet_0","t5","t6","_jsx","Provider","value","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport React, { createContext, useContext, useEffect, 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'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const {\n config: { localization },\n } = useConfig()\n\n const { user } = useAuth()\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const { searchParams } = useSearchParams()\n const localeFromParams = searchParams?.locale\n\n const [localeCode, setLocaleCode] = useState<string>(\n (localeFromParams as string) || defaultLocale,\n )\n\n const [locale, setLocale] = useState<Locale | null>(\n localization && findLocaleFromCode(localization, localeCode),\n )\n\n const { getPreference, setPreference } = usePreferences()\n\n const switchLocale = React.useCallback(\n async (newLocale: string) => {\n if (!localization) {\n return\n }\n\n const localeToSet =\n localization.localeCodes.indexOf(newLocale) > -1 ? newLocale : defaultLocale\n\n if (localeToSet !== localeCode) {\n setLocaleCode(localeToSet)\n setLocale(findLocaleFromCode(localization, localeToSet))\n try {\n if (user) {\n await setPreference('locale', localeToSet)\n }\n } catch (error) {\n // swallow error\n }\n }\n },\n [localization, setPreference, user, defaultLocale, localeCode],\n )\n\n useEffect(() => {\n async function setInitialLocale() {\n let localeToSet = defaultLocale\n\n if (typeof localeFromParams === 'string') {\n localeToSet = localeFromParams\n } else if (user) {\n try {\n localeToSet = await getPreference<string>('locale')\n } catch (error) {\n // swallow error\n }\n }\n\n await switchLocale(localeToSet)\n }\n\n void setInitialLocale()\n }, [\n defaultLocale,\n getPreference,\n localization,\n localeFromParams,\n setPreference,\n user,\n switchLocale,\n ])\n\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>\n}\n\n/**\n * A hook that returns the current locale object.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Preferences/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoE,MAAM,OAAO,CAAA;AAOxF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnD;;;;OAIG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF,CAAA;AAYD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAoHxE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAAyC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Preferences/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoE,MAAM,OAAO,CAAA;AAOxF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnD;;;;OAIG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF,CAAA;AAYD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAsHxE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAAyC,CAAA"}
@@ -46,7 +46,9 @@ export const PreferencesProvider = ({
46
46
  }, [user]);
47
47
  const getPreference = useCallback(async key => {
48
48
  const prefs = preferencesRef.current;
49
- if (typeof prefs[key] !== 'undefined') return prefs[key];
49
+ if (typeof prefs[key] !== 'undefined') {
50
+ return prefs[key];
51
+ }
50
52
  const promise = new Promise(resolve => {
51
53
  void (async () => {
52
54
  const request = await requests.get(`${serverURL}${api}/payload-preferences/${key}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","React","createContext","useCallback","useContext","useEffect","useRef","useTranslation","requests","useAuth","useConfig","Context","requestOptions","value","language","body","JSON","stringify","headers","PreferencesProvider","children","contextRef","preferencesRef","pendingUpdate","config","user","i18n","routes","api","serverURL","current","getPreference","key","prefs","promise","Promise","resolve","request","get","status","preference","json","setPreference","merge","post","newValue","currentPreference","updatePreference","setTimeout","_jsx","Provider","usePreferences"],"sources":["../../../src/providers/Preferences/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport React, { createContext, useCallback, useContext, useEffect, useRef } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\n\ntype PreferencesContext = {\n getPreference: <T = any>(key: string) => Promise<T>\n /**\n * @param key - a string identifier for the property being set\n * @param value - preference data to store\n * @param merge - when true will combine the existing preference object batch the change into one request for objects, default = false\n */\n setPreference: <T = any>(key: string, value: T, merge?: boolean) => Promise<void>\n}\n\nconst Context = createContext({} as PreferencesContext)\n\nconst requestOptions = (value, language) => ({\n body: JSON.stringify({ value }),\n headers: {\n 'Accept-Language': language,\n 'Content-Type': 'application/json',\n },\n})\n\nexport const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const contextRef = useRef({} as PreferencesContext)\n const preferencesRef = useRef({})\n const pendingUpdate = useRef({})\n const { config } = useConfig()\n const { user } = useAuth()\n const { i18n } = useTranslation()\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n useEffect(() => {\n if (!user) {\n // clear preferences between users\n preferencesRef.current = {}\n }\n }, [user])\n\n const getPreference = useCallback(\n async <T = any,>(key: string): Promise<T> => {\n const prefs = preferencesRef.current\n if (typeof prefs[key] !== 'undefined') return prefs[key]\n const promise = new Promise((resolve: (value: T) => void) => {\n void (async () => {\n const request = await requests.get(`${serverURL}${api}/payload-preferences/${key}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n let value = null\n if (request.status === 200) {\n const preference = await request.json()\n value = preference.value\n }\n preferencesRef.current[key] = value\n resolve(value)\n })()\n })\n prefs[key] = promise\n return promise\n },\n [i18n.language, api, preferencesRef, serverURL],\n )\n\n const setPreference = useCallback(\n async (key: string, value: unknown, merge = false): Promise<void> => {\n if (merge === false) {\n preferencesRef.current[key] = value\n\n await requests.post(\n `${serverURL}${api}/payload-preferences/${key}`,\n requestOptions(value, i18n.language),\n )\n\n return\n }\n\n let newValue = value\n const currentPreference = await getPreference(key)\n // handle value objects where multiple values can be set under one key\n if (\n typeof value === 'object' &&\n typeof currentPreference === 'object' &&\n typeof newValue === 'object'\n ) {\n // merge the value with any existing preference for the key\n newValue = { ...(currentPreference || {}), ...value }\n\n if (dequal(newValue, currentPreference)) {\n return\n }\n\n // add the requested changes to a pendingUpdate batch for the key\n pendingUpdate.current[key] = {\n ...pendingUpdate.current[key],\n ...(newValue as Record<string, unknown>),\n }\n } else {\n if (newValue === currentPreference) {\n return\n }\n pendingUpdate.current[key] = newValue\n }\n\n const updatePreference = async () => {\n // compare the value stored in context before sending to eliminate duplicate requests\n if (dequal(pendingUpdate.current[key], preferencesRef.current[key])) {\n return\n }\n\n // preference set in context here to prevent other updatePreference at the same time\n preferencesRef.current[key] = pendingUpdate.current[key]\n\n await requests.post(\n `${serverURL}${api}/payload-preferences/${key}`,\n requestOptions(preferencesRef.current[key], i18n.language),\n )\n\n // reset any changes for this key after sending the request\n delete pendingUpdate.current[key]\n }\n\n // use timeout to allow multiple changes of different values using the same key in one request\n setTimeout(() => {\n void updatePreference()\n })\n },\n [api, getPreference, i18n.language, pendingUpdate, serverURL],\n )\n\n contextRef.current.getPreference = getPreference\n contextRef.current.setPreference = setPreference\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const usePreferences = (): PreferencesContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","React","createContext","useCallback","useContext","useEffect","useRef","useTranslation","requests","useAuth","useConfig","Context","requestOptions","value","language","body","JSON","stringify","headers","PreferencesProvider","children","contextRef","preferencesRef","pendingUpdate","config","user","i18n","routes","api","serverURL","current","getPreference","key","prefs","promise","Promise","resolve","request","get","status","preference","json","setPreference","merge","post","newValue","currentPreference","updatePreference","setTimeout","_jsx","Provider","usePreferences"],"sources":["../../../src/providers/Preferences/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport React, { createContext, useCallback, useContext, useEffect, useRef } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\n\ntype PreferencesContext = {\n getPreference: <T = any>(key: string) => Promise<T>\n /**\n * @param key - a string identifier for the property being set\n * @param value - preference data to store\n * @param merge - when true will combine the existing preference object batch the change into one request for objects, default = false\n */\n setPreference: <T = any>(key: string, value: T, merge?: boolean) => Promise<void>\n}\n\nconst Context = createContext({} as PreferencesContext)\n\nconst requestOptions = (value, language) => ({\n body: JSON.stringify({ value }),\n headers: {\n 'Accept-Language': language,\n 'Content-Type': 'application/json',\n },\n})\n\nexport const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const contextRef = useRef({} as PreferencesContext)\n const preferencesRef = useRef({})\n const pendingUpdate = useRef({})\n const { config } = useConfig()\n const { user } = useAuth()\n const { i18n } = useTranslation()\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n useEffect(() => {\n if (!user) {\n // clear preferences between users\n preferencesRef.current = {}\n }\n }, [user])\n\n const getPreference = useCallback(\n async <T = any,>(key: string): Promise<T> => {\n const prefs = preferencesRef.current\n if (typeof prefs[key] !== 'undefined') {\n return prefs[key]\n }\n const promise = new Promise((resolve: (value: T) => void) => {\n void (async () => {\n const request = await requests.get(`${serverURL}${api}/payload-preferences/${key}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n let value = null\n if (request.status === 200) {\n const preference = await request.json()\n value = preference.value\n }\n preferencesRef.current[key] = value\n resolve(value)\n })()\n })\n prefs[key] = promise\n return promise\n },\n [i18n.language, api, preferencesRef, serverURL],\n )\n\n const setPreference = useCallback(\n async (key: string, value: unknown, merge = false): Promise<void> => {\n if (merge === false) {\n preferencesRef.current[key] = value\n\n await requests.post(\n `${serverURL}${api}/payload-preferences/${key}`,\n requestOptions(value, i18n.language),\n )\n\n return\n }\n\n let newValue = value\n const currentPreference = await getPreference(key)\n // handle value objects where multiple values can be set under one key\n if (\n typeof value === 'object' &&\n typeof currentPreference === 'object' &&\n typeof newValue === 'object'\n ) {\n // merge the value with any existing preference for the key\n newValue = { ...(currentPreference || {}), ...value }\n\n if (dequal(newValue, currentPreference)) {\n return\n }\n\n // add the requested changes to a pendingUpdate batch for the key\n pendingUpdate.current[key] = {\n ...pendingUpdate.current[key],\n ...(newValue as Record<string, unknown>),\n }\n } else {\n if (newValue === currentPreference) {\n return\n }\n pendingUpdate.current[key] = newValue\n }\n\n const updatePreference = async () => {\n // compare the value stored in context before sending to eliminate duplicate requests\n if (dequal(pendingUpdate.current[key], preferencesRef.current[key])) {\n return\n }\n\n // preference set in context here to prevent other updatePreference at the same time\n preferencesRef.current[key] = pendingUpdate.current[key]\n\n await requests.post(\n `${serverURL}${api}/payload-preferences/${key}`,\n requestOptions(preferencesRef.current[key], i18n.language),\n )\n\n // reset any changes for this key after sending the request\n delete pendingUpdate.current[key]\n }\n\n // use timeout to allow multiple changes of different values using the same key in one request\n setTimeout(() => {\n void updatePreference()\n })\n },\n [api, getPreference, i18n.language, pendingUpdate, serverURL],\n )\n\n contextRef.current.getPreference = getPreference\n contextRef.current.setPreference = setPreference\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const usePreferences = (): PreferencesContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}