@questpie/admin 3.2.3 → 3.2.5

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 (244) hide show
  1. package/dist/client/blocks/block-renderer.d.mts +2 -2
  2. package/dist/client/blocks/block-renderer.mjs +164 -339
  3. package/dist/client/components/actions/action-button.mjs +9 -9
  4. package/dist/client/components/actions/action-dialog.mjs +195 -493
  5. package/dist/client/components/actions/confirmation-dialog.mjs +44 -159
  6. package/dist/client/components/actions/header-actions.mjs +73 -165
  7. package/dist/client/components/admin-link.d.mts +2 -2
  8. package/dist/client/components/admin-link.mjs +40 -126
  9. package/dist/client/components/auth/auth-loading.mjs +9 -44
  10. package/dist/client/components/blocks/block-canvas.mjs +31 -95
  11. package/dist/client/components/blocks/block-editor-context.mjs +13 -57
  12. package/dist/client/components/blocks/block-editor-layout.mjs +72 -166
  13. package/dist/client/components/blocks/block-editor-provider.mjs +184 -245
  14. package/dist/client/components/blocks/block-fields-renderer.mjs +54 -229
  15. package/dist/client/components/blocks/block-insert-button.mjs +49 -165
  16. package/dist/client/components/blocks/block-item-menu.mjs +102 -301
  17. package/dist/client/components/blocks/block-item.mjs +136 -370
  18. package/dist/client/components/blocks/block-library-sidebar.mjs +106 -220
  19. package/dist/client/components/blocks/block-tree.mjs +12 -68
  20. package/dist/client/components/blocks/block-type-icon.mjs +14 -56
  21. package/dist/client/components/brand-logo.mjs +35 -149
  22. package/dist/client/components/component-renderer.mjs +42 -118
  23. package/dist/client/components/error-boundary.mjs +14 -58
  24. package/dist/client/components/fields/array-field.mjs +209 -521
  25. package/dist/client/components/fields/asset-preview-field.mjs +41 -141
  26. package/dist/client/components/fields/blocks-field/blocks-field.mjs +60 -156
  27. package/dist/client/components/fields/boolean-field.mjs +29 -59
  28. package/dist/client/components/fields/date-field.mjs +7 -37
  29. package/dist/client/components/fields/datetime-field.mjs +7 -38
  30. package/dist/client/components/fields/email-field.mjs +25 -54
  31. package/dist/client/components/fields/field-wrapper.mjs +30 -105
  32. package/dist/client/components/fields/json-field.mjs +107 -313
  33. package/dist/client/components/fields/locale-badge.mjs +6 -15
  34. package/dist/client/components/fields/number-field.mjs +27 -60
  35. package/dist/client/components/fields/object-array-field.mjs +283 -659
  36. package/dist/client/components/fields/object-field.mjs +165 -633
  37. package/dist/client/components/fields/relation/displays/cards-display.mjs +106 -220
  38. package/dist/client/components/fields/relation/displays/chips-display.mjs +78 -150
  39. package/dist/client/components/fields/relation/displays/grid-display.mjs +92 -186
  40. package/dist/client/components/fields/relation/displays/list-display.mjs +122 -239
  41. package/dist/client/components/fields/relation/displays/table-display.mjs +70 -244
  42. package/dist/client/components/fields/relation/relation-items-display.mjs +30 -126
  43. package/dist/client/components/fields/relation-field.mjs +10 -66
  44. package/dist/client/components/fields/relation-picker.mjs +18 -18
  45. package/dist/client/components/fields/relation-select.mjs +12 -12
  46. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +80 -182
  47. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +8 -19
  48. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +13 -29
  49. package/dist/client/components/fields/rich-text-editor/index.mjs +196 -530
  50. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +61 -111
  51. package/dist/client/components/fields/rich-text-editor/table-controls.mjs +105 -415
  52. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +256 -511
  53. package/dist/client/components/fields/rich-text-field.mjs +14 -53
  54. package/dist/client/components/fields/select-field.mjs +39 -74
  55. package/dist/client/components/fields/text-field.mjs +26 -59
  56. package/dist/client/components/fields/textarea-field.mjs +26 -58
  57. package/dist/client/components/fields/time-field.mjs +7 -35
  58. package/dist/client/components/fields/upload-field.mjs +47 -165
  59. package/dist/client/components/filter-builder/columns-tab.mjs +80 -280
  60. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +197 -540
  61. package/dist/client/components/filter-builder/filters-tab.mjs +96 -386
  62. package/dist/client/components/filter-builder/saved-views-tab.mjs +133 -351
  63. package/dist/client/components/history-sidebar.mjs +306 -611
  64. package/dist/client/components/layout/field-layout-renderer.mjs +106 -254
  65. package/dist/client/components/locale-switcher.mjs +106 -228
  66. package/dist/client/components/media/media-grid.mjs +84 -273
  67. package/dist/client/components/media/media-picker-dialog.mjs +177 -494
  68. package/dist/client/components/preview/live-preview-mode.mjs +240 -438
  69. package/dist/client/components/preview/preview-pane.mjs +22 -22
  70. package/dist/client/components/primitives/asset-preview.mjs +290 -666
  71. package/dist/client/components/primitives/checkbox-input.mjs +9 -35
  72. package/dist/client/components/primitives/date-input.mjs +109 -327
  73. package/dist/client/components/primitives/dropzone.mjs +209 -336
  74. package/dist/client/components/primitives/field-select-control.mjs +12 -80
  75. package/dist/client/components/primitives/number-input.mjs +4 -4
  76. package/dist/client/components/primitives/select-multi.mjs +200 -559
  77. package/dist/client/components/primitives/select-single.mjs +165 -499
  78. package/dist/client/components/primitives/time-input.mjs +43 -117
  79. package/dist/client/components/primitives/toggle-input.mjs +9 -29
  80. package/dist/client/components/sheets/resource-sheet.mjs +61 -70
  81. package/dist/client/components/ui/accordion.mjs +35 -155
  82. package/dist/client/components/ui/alert.mjs +13 -68
  83. package/dist/client/components/ui/badge.mjs +9 -51
  84. package/dist/client/components/ui/button.mjs +8 -54
  85. package/dist/client/components/ui/card.mjs +37 -193
  86. package/dist/client/components/ui/checkbox.mjs +12 -68
  87. package/dist/client/components/ui/command.mjs +48 -219
  88. package/dist/client/components/ui/dialog.mjs +50 -262
  89. package/dist/client/components/ui/drawer.mjs +55 -259
  90. package/dist/client/components/ui/dropdown-menu.mjs +86 -427
  91. package/dist/client/components/ui/empty-state.mjs +28 -98
  92. package/dist/client/components/ui/field.mjs +73 -309
  93. package/dist/client/components/ui/input-group.mjs +42 -167
  94. package/dist/client/components/ui/input.mjs +7 -37
  95. package/dist/client/components/ui/kbd.mjs +6 -36
  96. package/dist/client/components/ui/label.mjs +7 -37
  97. package/dist/client/components/ui/popover.mjs +34 -169
  98. package/dist/client/components/ui/responsive-dialog.mjs +67 -273
  99. package/dist/client/components/ui/scroll-fade.mjs +63 -158
  100. package/dist/client/components/ui/search-input.mjs +33 -100
  101. package/dist/client/components/ui/select.mjs +72 -393
  102. package/dist/client/components/ui/separator.mjs +7 -38
  103. package/dist/client/components/ui/sheet.mjs +49 -269
  104. package/dist/client/components/ui/sidebar.mjs +171 -690
  105. package/dist/client/components/ui/skeleton.mjs +7 -38
  106. package/dist/client/components/ui/sonner.mjs +11 -42
  107. package/dist/client/components/ui/switch.mjs +9 -45
  108. package/dist/client/components/ui/table.mjs +48 -266
  109. package/dist/client/components/ui/tabs.mjs +26 -139
  110. package/dist/client/components/ui/textarea.mjs +6 -32
  111. package/dist/client/components/ui/tooltip.mjs +27 -129
  112. package/dist/client/components/widgets/chart-widget.mjs +174 -522
  113. package/dist/client/components/widgets/progress-widget.mjs +66 -172
  114. package/dist/client/components/widgets/quick-actions-widget.mjs +102 -261
  115. package/dist/client/components/widgets/recent-items-widget.mjs +69 -195
  116. package/dist/client/components/widgets/stats-widget.mjs +41 -175
  117. package/dist/client/components/widgets/table-widget.mjs +9 -9
  118. package/dist/client/components/widgets/timeline-widget.mjs +86 -226
  119. package/dist/client/components/widgets/value-widget.mjs +74 -381
  120. package/dist/client/components/widgets/widget-empty-state.mjs +26 -76
  121. package/dist/client/components/widgets/widget-skeletons.mjs +138 -421
  122. package/dist/client/contexts/focus-context.d.mts +4 -0
  123. package/dist/client/contexts/focus-context.mjs +87 -150
  124. package/dist/client/hooks/typed-hooks.mjs +241 -701
  125. package/dist/client/hooks/use-action.mjs +62 -198
  126. package/dist/client/hooks/use-admin-config.mjs +5 -35
  127. package/dist/client/hooks/use-admin-preferences.mjs +16 -88
  128. package/dist/client/hooks/use-admin-routes.mjs +22 -56
  129. package/dist/client/hooks/use-audit-history.mjs +21 -69
  130. package/dist/client/hooks/use-brand.mjs +1 -9
  131. package/dist/client/hooks/use-collection-fields.mjs +17 -57
  132. package/dist/client/hooks/use-collection-meta.mjs +12 -44
  133. package/dist/client/hooks/use-collection-schema.mjs +10 -33
  134. package/dist/client/hooks/use-collection-validation.mjs +23 -53
  135. package/dist/client/hooks/use-collection.mjs +194 -614
  136. package/dist/client/hooks/use-current-user.mjs +0 -1
  137. package/dist/client/hooks/use-field-hooks.mjs +10 -10
  138. package/dist/client/hooks/use-field-options.mjs +61 -202
  139. package/dist/client/hooks/use-global-fields.mjs +14 -46
  140. package/dist/client/hooks/use-global-meta.mjs +9 -30
  141. package/dist/client/hooks/use-global-schema.mjs +9 -30
  142. package/dist/client/hooks/use-global.mjs +63 -219
  143. package/dist/client/hooks/use-locks.mjs +117 -325
  144. package/dist/client/hooks/use-media-query.mjs +16 -36
  145. package/dist/client/hooks/use-prefill-params.mjs +0 -1
  146. package/dist/client/hooks/use-questpie-query-options.mjs +12 -29
  147. package/dist/client/hooks/use-reactive-fields.mjs +1 -1
  148. package/dist/client/hooks/use-reactive-prop.mjs +65 -223
  149. package/dist/client/hooks/use-realtime-highlight.mjs +51 -114
  150. package/dist/client/hooks/use-saved-views.mjs +22 -103
  151. package/dist/client/hooks/use-search-param-toggle.mjs +28 -79
  152. package/dist/client/hooks/use-search.mjs +31 -143
  153. package/dist/client/hooks/use-server-actions.mjs +18 -50
  154. package/dist/client/hooks/use-server-validation.mjs +72 -166
  155. package/dist/client/hooks/use-server-widget-data.mjs +7 -33
  156. package/dist/client/hooks/use-setup-status.mjs +12 -25
  157. package/dist/client/hooks/use-sidebar-search-param.mjs +33 -78
  158. package/dist/client/hooks/use-transition-stage.mjs +8 -38
  159. package/dist/client/hooks/use-upload.mjs +54 -152
  160. package/dist/client/hooks/use-validation-error-map.mjs +6 -26
  161. package/dist/client/hooks/use-view-state.mjs +187 -437
  162. package/dist/client/i18n/hooks.mjs +65 -197
  163. package/dist/client/lib/render-profiler.mjs +14 -41
  164. package/dist/client/preview/block-scope-context.d.mts +2 -2
  165. package/dist/client/preview/block-scope-context.mjs +14 -36
  166. package/dist/client/preview/diff.mjs +110 -0
  167. package/dist/client/preview/preview-banner.mjs +42 -108
  168. package/dist/client/preview/preview-field.d.mts +4 -4
  169. package/dist/client/preview/preview-field.mjs +166 -409
  170. package/dist/client/preview/use-collection-preview.mjs +135 -201
  171. package/dist/client/runtime/content-locales-provider.mjs +31 -83
  172. package/dist/client/runtime/locale-scope.mjs +22 -63
  173. package/dist/client/runtime/provider.mjs +100 -255
  174. package/dist/client/runtime/translations-provider.mjs +41 -107
  175. package/dist/client/scope/picker.d.mts +2 -2
  176. package/dist/client/scope/picker.mjs +86 -321
  177. package/dist/client/scope/provider.d.mts +2 -2
  178. package/dist/client/scope/provider.mjs +8 -17
  179. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  180. package/dist/client/views/auth/accept-invite-form.mjs +121 -412
  181. package/dist/client/views/auth/auth-layout.d.mts +3 -3
  182. package/dist/client/views/auth/auth-layout.mjs +104 -284
  183. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  184. package/dist/client/views/auth/forgot-password-form.mjs +94 -325
  185. package/dist/client/views/auth/invite-form.mjs +107 -442
  186. package/dist/client/views/auth/login-form.d.mts +2 -2
  187. package/dist/client/views/auth/login-form.mjs +116 -337
  188. package/dist/client/views/auth/reset-password-form.mjs +128 -453
  189. package/dist/client/views/auth/setup-form.mjs +140 -478
  190. package/dist/client/views/collection/auto-form-fields.mjs +243 -615
  191. package/dist/client/views/collection/bulk-action-toolbar.mjs +212 -400
  192. package/dist/client/views/collection/cells/complex-cells.mjs +183 -611
  193. package/dist/client/views/collection/cells/primitive-cells.mjs +109 -363
  194. package/dist/client/views/collection/cells/relation-cells.mjs +86 -233
  195. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +142 -371
  196. package/dist/client/views/collection/cells/shared/relation-chip.mjs +35 -131
  197. package/dist/client/views/collection/cells/upload-cells.mjs +60 -177
  198. package/dist/client/views/collection/columns/build-columns.mjs +8 -48
  199. package/dist/client/views/collection/field-renderer.mjs +11 -24
  200. package/dist/client/views/collection/form-view.mjs +288 -560
  201. package/dist/client/views/collection/table-view.mjs +239 -469
  202. package/dist/client/views/collection/view-skeletons.mjs +112 -237
  203. package/dist/client/views/common/global-search.mjs +241 -543
  204. package/dist/client/views/dashboard/dashboard-grid.mjs +256 -775
  205. package/dist/client/views/dashboard/dashboard-widget.mjs +38 -126
  206. package/dist/client/views/dashboard/widget-card.mjs +61 -269
  207. package/dist/client/views/globals/global-form-view.mjs +478 -1298
  208. package/dist/client/views/layout/admin-layout-provider.mjs +28 -88
  209. package/dist/client/views/layout/admin-layout.mjs +83 -246
  210. package/dist/client/views/layout/admin-router.mjs +457 -1289
  211. package/dist/client/views/layout/admin-sidebar.mjs +510 -1292
  212. package/dist/client/views/layout/admin-theme.mjs +30 -64
  213. package/dist/client/views/layout/admin-view-layout.mjs +40 -144
  214. package/dist/client/views/pages/accept-invite-page.mjs +95 -290
  215. package/dist/client/views/pages/dashboard-page.mjs +11 -57
  216. package/dist/client/views/pages/forgot-password-page.mjs +31 -83
  217. package/dist/client/views/pages/invite-page.mjs +35 -90
  218. package/dist/client/views/pages/login-page.mjs +41 -121
  219. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  220. package/dist/client/views/pages/reset-password-page.mjs +46 -173
  221. package/dist/client/views/pages/setup-page.d.mts +2 -2
  222. package/dist/client/views/pages/setup-page.mjs +33 -95
  223. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  224. package/dist/components/rich-text/rich-text-renderer.mjs +9 -33
  225. package/dist/server/modules/admin/collections/account.d.mts +50 -50
  226. package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
  227. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  228. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  229. package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
  230. package/dist/server/modules/admin/collections/assets.d.mts +34 -34
  231. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  232. package/dist/server/modules/admin/collections/user.d.mts +53 -53
  233. package/dist/server/modules/admin/collections/verification.d.mts +36 -36
  234. package/dist/server/modules/admin/index.d.mts +21 -20
  235. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  236. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  237. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  238. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  239. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  240. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  241. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  242. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  243. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +27 -27
  244. package/package.json +3 -5
@@ -1,7 +1,6 @@
1
1
  import { useAdminStore } from "../runtime/provider.mjs";
2
2
  import { getAdminPreferenceQueryKey, useSetAdminPreference } from "./use-admin-preferences.mjs";
3
- import { c } from "react/compiler-runtime";
4
- import { useEffect, useRef } from "react";
3
+ import { useCallback, useEffect, useMemo, useRef } from "react";
5
4
  import { useQueryClient, useSuspenseQuery } from "@tanstack/react-query";
6
5
 
7
6
  //#region src/client/hooks/use-view-state.ts
@@ -73,471 +72,222 @@ function mergeVisibleColumns(storedColumns, defaultColumns) {
73
72
  * ```
74
73
  */
75
74
  function useViewState(defaultColumns, initialConfig, collectionName, userId) {
76
- const $ = c(114);
77
75
  const queryClient = useQueryClient();
78
- const client = useAdminStore(_temp);
79
- let preferenceKey;
80
- let t0;
81
- if ($[0] !== collectionName || $[1] !== userId) {
82
- preferenceKey = collectionName ? getPreferenceKey(collectionName) : null;
83
- t0 = getAdminPreferenceQueryKey(userId, preferenceKey ?? "");
84
- $[0] = collectionName;
85
- $[1] = userId;
86
- $[2] = preferenceKey;
87
- $[3] = t0;
88
- } else {
89
- preferenceKey = $[2];
90
- t0 = $[3];
91
- }
92
- const queryKey = t0;
93
- let t1;
94
- if ($[4] !== client || $[5] !== preferenceKey || $[6] !== userId) {
95
- t1 = async () => {
76
+ const client = useAdminStore((s) => s.client);
77
+ const preferenceKey = collectionName ? getPreferenceKey(collectionName) : null;
78
+ const queryKey = getAdminPreferenceQueryKey(userId, preferenceKey ?? "");
79
+ const { data: storedConfig } = useSuspenseQuery({
80
+ queryKey,
81
+ queryFn: async () => {
96
82
  if (!userId || !preferenceKey) return null;
97
83
  return (await client.collections.admin_preferences.findOne({ where: {
98
84
  userId,
99
85
  key: preferenceKey
100
86
  } }))?.value ?? null;
101
- };
102
- $[4] = client;
103
- $[5] = preferenceKey;
104
- $[6] = userId;
105
- $[7] = t1;
106
- } else t1 = $[7];
107
- let t2;
108
- if ($[8] !== queryKey || $[9] !== t1) {
109
- t2 = {
110
- queryKey,
111
- queryFn: t1
112
- };
113
- $[8] = queryKey;
114
- $[9] = t1;
115
- $[10] = t2;
116
- } else t2 = $[10];
117
- const { data: storedConfig } = useSuspenseQuery(t2);
118
- const { mutate: savePreference } = useSetAdminPreference(preferenceKey ?? "");
119
- let t3;
120
- bb0: {
121
- if (storedConfig) {
122
- let t4$2;
123
- if ($[11] !== storedConfig.filters) {
124
- t4$2 = storedConfig.filters ?? [];
125
- $[11] = storedConfig.filters;
126
- $[12] = t4$2;
127
- } else t4$2 = $[12];
128
- const t5$2 = storedConfig.sortConfig ?? null;
129
- let t6$2;
130
- if ($[13] !== defaultColumns || $[14] !== storedConfig.visibleColumns) {
131
- t6$2 = mergeVisibleColumns(storedConfig.visibleColumns, defaultColumns);
132
- $[13] = defaultColumns;
133
- $[14] = storedConfig.visibleColumns;
134
- $[15] = t6$2;
135
- } else t6$2 = $[15];
136
- const t7$2 = storedConfig.groupBy !== void 0 ? storedConfig.groupBy : initialConfig?.groupBy ?? null;
137
- let t8$2;
138
- if ($[16] !== storedConfig.collapsedGroups) {
139
- t8$2 = storedConfig.collapsedGroups ?? [];
140
- $[16] = storedConfig.collapsedGroups;
141
- $[17] = t8$2;
142
- } else t8$2 = $[17];
143
- const t9$2 = storedConfig.realtime !== void 0 ? storedConfig.realtime : initialConfig?.realtime;
144
- const t10$2 = storedConfig.includeDeleted !== void 0 ? storedConfig.includeDeleted : initialConfig?.includeDeleted ?? false;
145
- let t11$2;
146
- if ($[18] !== storedConfig.pagination) {
147
- t11$2 = storedConfig.pagination ?? {
148
- page: 1,
149
- pageSize: 25
150
- };
151
- $[18] = storedConfig.pagination;
152
- $[19] = t11$2;
153
- } else t11$2 = $[19];
154
- let t12$1;
155
- if ($[20] !== t10$2 || $[21] !== t11$2 || $[22] !== t4$2 || $[23] !== t5$2 || $[24] !== t6$2 || $[25] !== t7$2 || $[26] !== t8$2 || $[27] !== t9$2) {
156
- t12$1 = {
157
- filters: t4$2,
158
- sortConfig: t5$2,
159
- visibleColumns: t6$2,
160
- groupBy: t7$2,
161
- collapsedGroups: t8$2,
162
- realtime: t9$2,
163
- includeDeleted: t10$2,
164
- pagination: t11$2
165
- };
166
- $[20] = t10$2;
167
- $[21] = t11$2;
168
- $[22] = t4$2;
169
- $[23] = t5$2;
170
- $[24] = t6$2;
171
- $[25] = t7$2;
172
- $[26] = t8$2;
173
- $[27] = t9$2;
174
- $[28] = t12$1;
175
- } else t12$1 = $[28];
176
- t3 = t12$1;
177
- break bb0;
178
87
  }
179
- let t4$1;
180
- if ($[29] !== initialConfig?.filters) {
181
- t4$1 = initialConfig?.filters ?? [];
182
- $[29] = initialConfig?.filters;
183
- $[30] = t4$1;
184
- } else t4$1 = $[30];
185
- const t5$1 = initialConfig?.sortConfig ?? null;
186
- const t6$1 = initialConfig?.groupBy ?? null;
187
- let t7$1;
188
- if ($[31] !== initialConfig?.collapsedGroups) {
189
- t7$1 = initialConfig?.collapsedGroups ?? [];
190
- $[31] = initialConfig?.collapsedGroups;
191
- $[32] = t7$1;
192
- } else t7$1 = $[32];
193
- const t8$1 = initialConfig?.realtime;
194
- const t9$1 = initialConfig?.includeDeleted ?? false;
195
- let t10$1;
196
- if ($[33] !== initialConfig?.pagination) {
197
- t10$1 = initialConfig?.pagination ?? {
88
+ });
89
+ const { mutate: savePreference } = useSetAdminPreference(preferenceKey ?? "");
90
+ const config = useMemo(() => {
91
+ if (storedConfig) return {
92
+ filters: storedConfig.filters ?? [],
93
+ sortConfig: storedConfig.sortConfig ?? null,
94
+ visibleColumns: mergeVisibleColumns(storedConfig.visibleColumns, defaultColumns),
95
+ groupBy: storedConfig.groupBy !== void 0 ? storedConfig.groupBy : initialConfig?.groupBy ?? null,
96
+ collapsedGroups: storedConfig.collapsedGroups ?? [],
97
+ realtime: storedConfig.realtime !== void 0 ? storedConfig.realtime : initialConfig?.realtime,
98
+ includeDeleted: storedConfig.includeDeleted !== void 0 ? storedConfig.includeDeleted : initialConfig?.includeDeleted ?? false,
99
+ pagination: storedConfig.pagination ?? {
198
100
  page: 1,
199
101
  pageSize: 25
200
- };
201
- $[33] = initialConfig?.pagination;
202
- $[34] = t10$1;
203
- } else t10$1 = $[34];
204
- let t11$1;
205
- if ($[35] !== defaultColumns || $[36] !== t10$1 || $[37] !== t4$1 || $[38] !== t5$1 || $[39] !== t6$1 || $[40] !== t7$1 || $[41] !== t8$1 || $[42] !== t9$1) {
206
- t11$1 = {
207
- filters: t4$1,
208
- sortConfig: t5$1,
209
- visibleColumns: defaultColumns,
210
- groupBy: t6$1,
211
- collapsedGroups: t7$1,
212
- realtime: t8$1,
213
- includeDeleted: t9$1,
214
- pagination: t10$1
215
- };
216
- $[35] = defaultColumns;
217
- $[36] = t10$1;
218
- $[37] = t4$1;
219
- $[38] = t5$1;
220
- $[39] = t6$1;
221
- $[40] = t7$1;
222
- $[41] = t8$1;
223
- $[42] = t9$1;
224
- $[43] = t11$1;
225
- } else t11$1 = $[43];
226
- t3 = t11$1;
227
- }
228
- const config = t3;
229
- const saveTimeoutRef = useRef(null);
230
- let t4;
231
- let t5;
232
- if ($[44] === Symbol.for("react.memo_cache_sentinel")) {
233
- t4 = () => () => {
234
- if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);
102
+ }
235
103
  };
236
- t5 = [];
237
- $[44] = t4;
238
- $[45] = t5;
239
- } else {
240
- t4 = $[44];
241
- t5 = $[45];
242
- }
243
- useEffect(t4, t5);
244
- let t6;
245
- if ($[46] !== config || $[47] !== preferenceKey || $[48] !== queryClient || $[49] !== queryKey || $[50] !== savePreference || $[51] !== userId) {
246
- t6 = (newConfig) => {
247
- const next = typeof newConfig === "function" ? newConfig(config) : newConfig;
248
- if (preferenceKey && userId) queryClient.setQueryData(queryKey, next);
249
- if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);
250
- saveTimeoutRef.current = setTimeout(() => {
251
- if (preferenceKey) savePreference(next);
252
- }, 500);
253
- };
254
- $[46] = config;
255
- $[47] = preferenceKey;
256
- $[48] = queryClient;
257
- $[49] = queryKey;
258
- $[50] = savePreference;
259
- $[51] = userId;
260
- $[52] = t6;
261
- } else t6 = $[52];
262
- const setConfig = t6;
263
- let t7;
264
- if ($[53] !== setConfig) {
265
- t7 = (filter) => {
266
- setConfig((prev) => ({
267
- ...prev,
268
- filters: [...prev.filters, filter]
269
- }));
270
- };
271
- $[53] = setConfig;
272
- $[54] = t7;
273
- } else t7 = $[54];
274
- const addFilter = t7;
275
- let t8;
276
- if ($[55] !== setConfig) {
277
- t8 = (filterId) => {
278
- setConfig((prev_0) => ({
279
- ...prev_0,
280
- filters: prev_0.filters.filter((f) => f.id !== filterId)
281
- }));
282
- };
283
- $[55] = setConfig;
284
- $[56] = t8;
285
- } else t8 = $[56];
286
- const removeFilter = t8;
287
- let t9;
288
- if ($[57] !== setConfig) {
289
- t9 = (filterId_0, updates) => {
290
- setConfig((prev_1) => ({
291
- ...prev_1,
292
- filters: prev_1.filters.map((f_0) => f_0.id === filterId_0 ? {
293
- ...f_0,
294
- ...updates
295
- } : f_0)
296
- }));
297
- };
298
- $[57] = setConfig;
299
- $[58] = t9;
300
- } else t9 = $[58];
301
- const updateFilter = t9;
302
- let t10;
303
- if ($[59] !== setConfig) {
304
- t10 = () => {
305
- setConfig(_temp2);
104
+ return {
105
+ filters: initialConfig?.filters ?? [],
106
+ sortConfig: initialConfig?.sortConfig ?? null,
107
+ visibleColumns: defaultColumns,
108
+ groupBy: initialConfig?.groupBy ?? null,
109
+ collapsedGroups: initialConfig?.collapsedGroups ?? [],
110
+ realtime: initialConfig?.realtime,
111
+ includeDeleted: initialConfig?.includeDeleted ?? false,
112
+ pagination: initialConfig?.pagination ?? {
113
+ page: 1,
114
+ pageSize: 25
115
+ }
306
116
  };
307
- $[59] = setConfig;
308
- $[60] = t10;
309
- } else t10 = $[60];
310
- const clearFilters = t10;
311
- let t11;
312
- if ($[61] !== setConfig) {
313
- t11 = (sortConfig) => {
314
- setConfig((prev_3) => ({
315
- ...prev_3,
316
- sortConfig
317
- }));
117
+ }, [
118
+ storedConfig,
119
+ defaultColumns,
120
+ initialConfig
121
+ ]);
122
+ const saveTimeoutRef = useRef(null);
123
+ useEffect(() => {
124
+ return () => {
125
+ if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);
318
126
  };
319
- $[61] = setConfig;
320
- $[62] = t11;
321
- } else t11 = $[62];
322
- const setSort = t11;
323
- let t12;
324
- if ($[63] !== setConfig) {
325
- t12 = (field) => {
326
- setConfig((prev_4) => {
327
- if (prev_4.sortConfig?.field === field) {
328
- if (prev_4.sortConfig.direction === "asc") return {
329
- ...prev_4,
330
- sortConfig: {
331
- field,
332
- direction: "desc"
333
- }
334
- };
335
- return {
336
- ...prev_4,
337
- sortConfig: null
338
- };
339
- }
340
- return {
341
- ...prev_4,
127
+ }, []);
128
+ const setConfig = useCallback((newConfig) => {
129
+ const next = typeof newConfig === "function" ? newConfig(config) : newConfig;
130
+ if (preferenceKey && userId) queryClient.setQueryData(queryKey, next);
131
+ if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);
132
+ saveTimeoutRef.current = setTimeout(() => {
133
+ if (preferenceKey) savePreference(next);
134
+ }, 500);
135
+ }, [
136
+ config,
137
+ preferenceKey,
138
+ userId,
139
+ queryClient,
140
+ queryKey,
141
+ savePreference
142
+ ]);
143
+ const addFilter = useCallback((filter) => {
144
+ setConfig((prev) => ({
145
+ ...prev,
146
+ filters: [...prev.filters, filter]
147
+ }));
148
+ }, [setConfig]);
149
+ const removeFilter = useCallback((filterId) => {
150
+ setConfig((prev) => ({
151
+ ...prev,
152
+ filters: prev.filters.filter((f) => f.id !== filterId)
153
+ }));
154
+ }, [setConfig]);
155
+ const updateFilter = useCallback((filterId, updates) => {
156
+ setConfig((prev) => ({
157
+ ...prev,
158
+ filters: prev.filters.map((f) => f.id === filterId ? {
159
+ ...f,
160
+ ...updates
161
+ } : f)
162
+ }));
163
+ }, [setConfig]);
164
+ const clearFilters = useCallback(() => {
165
+ setConfig((prev) => ({
166
+ ...prev,
167
+ filters: []
168
+ }));
169
+ }, [setConfig]);
170
+ const setSort = useCallback((sortConfig) => {
171
+ setConfig((prev) => ({
172
+ ...prev,
173
+ sortConfig
174
+ }));
175
+ }, [setConfig]);
176
+ const toggleSort = useCallback((field) => {
177
+ setConfig((prev) => {
178
+ if (prev.sortConfig?.field === field) {
179
+ if (prev.sortConfig.direction === "asc") return {
180
+ ...prev,
342
181
  sortConfig: {
343
182
  field,
344
- direction: "asc"
183
+ direction: "desc"
345
184
  }
346
185
  };
347
- });
348
- };
349
- $[63] = setConfig;
350
- $[64] = t12;
351
- } else t12 = $[64];
352
- const toggleSort = t12;
353
- let t13;
354
- if ($[65] !== setConfig) {
355
- t13 = (columns) => {
356
- setConfig((prev_5) => ({
357
- ...prev_5,
358
- visibleColumns: columns
359
- }));
360
- };
361
- $[65] = setConfig;
362
- $[66] = t13;
363
- } else t13 = $[66];
364
- const setVisibleColumns = t13;
365
- let t14;
366
- if ($[67] !== setConfig) {
367
- t14 = (groupBy) => {
368
- setConfig((prev_6) => ({
369
- ...prev_6,
370
- groupBy,
371
- collapsedGroups: [],
372
- pagination: {
373
- ...prev_6.pagination ?? { pageSize: 25 },
374
- page: 1
375
- }
376
- }));
377
- };
378
- $[67] = setConfig;
379
- $[68] = t14;
380
- } else t14 = $[68];
381
- const setGroupBy = t14;
382
- let t15;
383
- if ($[69] !== setConfig) {
384
- t15 = (groupKey) => {
385
- setConfig((prev_7) => {
386
- const collapsedGroups = prev_7.collapsedGroups ?? [];
387
186
  return {
388
- ...prev_7,
389
- collapsedGroups: collapsedGroups.includes(groupKey) ? collapsedGroups.filter((key) => key !== groupKey) : [...collapsedGroups, groupKey]
187
+ ...prev,
188
+ sortConfig: null
390
189
  };
391
- });
392
- };
393
- $[69] = setConfig;
394
- $[70] = t15;
395
- } else t15 = $[70];
396
- const toggleCollapsedGroup = t15;
397
- let t16;
398
- if ($[71] !== setConfig) {
399
- t16 = (page) => {
400
- setConfig((prev_8) => ({
401
- ...prev_8,
402
- pagination: {
403
- ...prev_8.pagination,
404
- page
405
- }
406
- }));
407
- };
408
- $[71] = setConfig;
409
- $[72] = t16;
410
- } else t16 = $[72];
411
- const setPage = t16;
412
- let t17;
413
- if ($[73] !== setConfig) {
414
- t17 = (pageSize) => {
415
- setConfig((prev_9) => ({
416
- ...prev_9,
417
- pagination: {
418
- page: 1,
419
- pageSize
190
+ }
191
+ return {
192
+ ...prev,
193
+ sortConfig: {
194
+ field,
195
+ direction: "asc"
420
196
  }
421
- }));
422
- };
423
- $[73] = setConfig;
424
- $[74] = t17;
425
- } else t17 = $[74];
426
- const setPageSize = t17;
427
- let t18;
428
- if ($[75] !== setConfig) {
429
- t18 = (column) => {
430
- setConfig((prev_10) => {
431
- if (prev_10.visibleColumns.includes(column)) return {
432
- ...prev_10,
433
- visibleColumns: prev_10.visibleColumns.filter((c$1) => c$1 !== column)
197
+ };
198
+ });
199
+ }, [setConfig]);
200
+ const setVisibleColumns = useCallback((columns) => {
201
+ setConfig((prev) => ({
202
+ ...prev,
203
+ visibleColumns: columns
204
+ }));
205
+ }, [setConfig]);
206
+ const setGroupBy = useCallback((groupBy) => {
207
+ setConfig((prev) => ({
208
+ ...prev,
209
+ groupBy,
210
+ collapsedGroups: [],
211
+ pagination: {
212
+ ...prev.pagination ?? { pageSize: 25 },
213
+ page: 1
214
+ }
215
+ }));
216
+ }, [setConfig]);
217
+ const toggleCollapsedGroup = useCallback((groupKey) => {
218
+ setConfig((prev) => {
219
+ const collapsedGroups = prev.collapsedGroups ?? [];
220
+ return {
221
+ ...prev,
222
+ collapsedGroups: collapsedGroups.includes(groupKey) ? collapsedGroups.filter((key) => key !== groupKey) : [...collapsedGroups, groupKey]
223
+ };
224
+ });
225
+ }, [setConfig]);
226
+ const setPage = useCallback((page) => {
227
+ setConfig((prev) => ({
228
+ ...prev,
229
+ pagination: {
230
+ ...prev.pagination,
231
+ page
232
+ }
233
+ }));
234
+ }, [setConfig]);
235
+ const setPageSize = useCallback((pageSize) => {
236
+ setConfig((prev) => ({
237
+ ...prev,
238
+ pagination: {
239
+ page: 1,
240
+ pageSize
241
+ }
242
+ }));
243
+ }, [setConfig]);
244
+ return {
245
+ config,
246
+ setConfig,
247
+ addFilter,
248
+ removeFilter,
249
+ updateFilter,
250
+ clearFilters,
251
+ setSort,
252
+ toggleSort,
253
+ setVisibleColumns,
254
+ setGroupBy,
255
+ toggleCollapsedGroup,
256
+ toggleColumn: useCallback((column) => {
257
+ setConfig((prev) => {
258
+ if (prev.visibleColumns.includes(column)) return {
259
+ ...prev,
260
+ visibleColumns: prev.visibleColumns.filter((c) => c !== column)
434
261
  };
435
262
  return {
436
- ...prev_10,
437
- visibleColumns: [...prev_10.visibleColumns, column]
263
+ ...prev,
264
+ visibleColumns: [...prev.visibleColumns, column]
438
265
  };
439
266
  });
440
- };
441
- $[75] = setConfig;
442
- $[76] = t18;
443
- } else t18 = $[76];
444
- const toggleColumn = t18;
445
- let t19;
446
- if ($[77] !== setConfig) {
447
- t19 = (newConfig_0) => {
448
- setConfig(newConfig_0);
449
- };
450
- $[77] = setConfig;
451
- $[78] = t19;
452
- } else t19 = $[78];
453
- const loadConfig = t19;
454
- let t20;
455
- if ($[79] !== defaultColumns || $[80] !== setConfig) {
456
- t20 = () => {
267
+ }, [setConfig]),
268
+ setPage,
269
+ setPageSize,
270
+ loadConfig: useCallback((newConfig) => {
271
+ setConfig(newConfig);
272
+ }, [setConfig]),
273
+ resetConfig: useCallback(() => {
457
274
  setConfig({
458
275
  ...EMPTY_CONFIG,
459
276
  visibleColumns: defaultColumns
460
277
  });
461
- };
462
- $[79] = defaultColumns;
463
- $[80] = setConfig;
464
- $[81] = t20;
465
- } else t20 = $[81];
466
- const resetConfig = t20;
467
- let t21;
468
- if ($[82] !== config.collapsedGroups?.length || $[83] !== config.filters.length || $[84] !== config.groupBy || $[85] !== config.includeDeleted || $[86] !== config.pagination?.page || $[87] !== config.pagination?.pageSize || $[88] !== config.realtime || $[89] !== config.sortConfig || $[90] !== config.visibleColumns || $[91] !== defaultColumns || $[92] !== initialConfig?.groupBy || $[93] !== initialConfig?.includeDeleted || $[94] !== initialConfig?.realtime) {
469
- t21 = () => config.filters.length > 0 || config.sortConfig !== null || (config.groupBy ?? null) !== (initialConfig?.groupBy ?? null) || (config.collapsedGroups?.length ?? 0) > 0 || config.realtime !== initialConfig?.realtime || (config.includeDeleted ?? false) !== (initialConfig?.includeDeleted ?? false) || config.pagination?.page !== 1 || config.pagination?.pageSize !== 25 || JSON.stringify([...config.visibleColumns].sort()) !== JSON.stringify([...defaultColumns].sort());
470
- $[82] = config.collapsedGroups?.length;
471
- $[83] = config.filters.length;
472
- $[84] = config.groupBy;
473
- $[85] = config.includeDeleted;
474
- $[86] = config.pagination?.page;
475
- $[87] = config.pagination?.pageSize;
476
- $[88] = config.realtime;
477
- $[89] = config.sortConfig;
478
- $[90] = config.visibleColumns;
479
- $[91] = defaultColumns;
480
- $[92] = initialConfig?.groupBy;
481
- $[93] = initialConfig?.includeDeleted;
482
- $[94] = initialConfig?.realtime;
483
- $[95] = t21;
484
- } else t21 = $[95];
485
- initialConfig?.includeDeleted;
486
- initialConfig?.groupBy;
487
- initialConfig?.realtime;
488
- const hasChanges = t21();
489
- let t22;
490
- if ($[96] !== addFilter || $[97] !== clearFilters || $[98] !== config || $[99] !== hasChanges || $[100] !== loadConfig || $[101] !== removeFilter || $[102] !== resetConfig || $[103] !== setConfig || $[104] !== setGroupBy || $[105] !== setPage || $[106] !== setPageSize || $[107] !== setSort || $[108] !== setVisibleColumns || $[109] !== toggleCollapsedGroup || $[110] !== toggleColumn || $[111] !== toggleSort || $[112] !== updateFilter) {
491
- t22 = {
278
+ }, [setConfig, defaultColumns]),
279
+ hasChanges: useMemo(() => {
280
+ return config.filters.length > 0 || config.sortConfig !== null || (config.groupBy ?? null) !== (initialConfig?.groupBy ?? null) || (config.collapsedGroups?.length ?? 0) > 0 || config.realtime !== initialConfig?.realtime || (config.includeDeleted ?? false) !== (initialConfig?.includeDeleted ?? false) || config.pagination?.page !== 1 || config.pagination?.pageSize !== 25 || JSON.stringify([...config.visibleColumns].sort()) !== JSON.stringify([...defaultColumns].sort());
281
+ }, [
492
282
  config,
493
- setConfig,
494
- addFilter,
495
- removeFilter,
496
- updateFilter,
497
- clearFilters,
498
- setSort,
499
- toggleSort,
500
- setVisibleColumns,
501
- setGroupBy,
502
- toggleCollapsedGroup,
503
- toggleColumn,
504
- setPage,
505
- setPageSize,
506
- loadConfig,
507
- resetConfig,
508
- hasChanges,
509
- isLoading: false
510
- };
511
- $[96] = addFilter;
512
- $[97] = clearFilters;
513
- $[98] = config;
514
- $[99] = hasChanges;
515
- $[100] = loadConfig;
516
- $[101] = removeFilter;
517
- $[102] = resetConfig;
518
- $[103] = setConfig;
519
- $[104] = setGroupBy;
520
- $[105] = setPage;
521
- $[106] = setPageSize;
522
- $[107] = setSort;
523
- $[108] = setVisibleColumns;
524
- $[109] = toggleCollapsedGroup;
525
- $[110] = toggleColumn;
526
- $[111] = toggleSort;
527
- $[112] = updateFilter;
528
- $[113] = t22;
529
- } else t22 = $[113];
530
- return t22;
531
- }
532
- function _temp2(prev_2) {
533
- return {
534
- ...prev_2,
535
- filters: []
283
+ defaultColumns,
284
+ initialConfig?.includeDeleted,
285
+ initialConfig?.groupBy,
286
+ initialConfig?.realtime
287
+ ]),
288
+ isLoading: false
536
289
  };
537
290
  }
538
- function _temp(s) {
539
- return s.client;
540
- }
541
291
 
542
292
  //#endregion
543
293
  export { useViewState };