@fluid-app/portal-sdk 0.1.190 → 0.1.192

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 (90) hide show
  1. package/dist/{ContactsScreen-Dw9G8Q3n.mjs → ContactsScreen-BtBNMZzG.mjs} +68 -71
  2. package/dist/ContactsScreen-BtBNMZzG.mjs.map +1 -0
  3. package/dist/{ContactsScreen-Euvu6Y8H.cjs → ContactsScreen-Cheiwaxn.cjs} +3 -4
  4. package/dist/{ContactsScreen-D2rOJ9Ra.cjs → ContactsScreen-DvohvoOE.cjs} +67 -70
  5. package/dist/ContactsScreen-DvohvoOE.cjs.map +1 -0
  6. package/dist/{FluidProvider-bZ4dm-UF.cjs → FluidProvider-BWBEdHQQ.cjs} +30 -2
  7. package/dist/{FluidProvider-bZ4dm-UF.cjs.map → FluidProvider-BWBEdHQQ.cjs.map} +1 -1
  8. package/dist/{FluidProvider-ClxrzJDf.mjs → FluidProvider-dp9q6oRM.mjs} +30 -2
  9. package/dist/FluidProvider-dp9q6oRM.mjs.map +1 -0
  10. package/dist/InfiniteScrollSentinel-CU801UfD.cjs +36 -0
  11. package/dist/InfiniteScrollSentinel-CU801UfD.cjs.map +1 -0
  12. package/dist/InfiniteScrollSentinel-MgF-ldXy.mjs +30 -0
  13. package/dist/InfiniteScrollSentinel-MgF-ldXy.mjs.map +1 -0
  14. package/dist/{MessagingScreen-Bu8KvZrz.mjs → MessagingScreen-BNsaLpzu.mjs} +2 -2
  15. package/dist/{MessagingScreen-Bu8KvZrz.mjs.map → MessagingScreen-BNsaLpzu.mjs.map} +1 -1
  16. package/dist/{MessagingScreen-CZIMNXUy.cjs → MessagingScreen-CJ3p3ZHq.cjs} +2 -2
  17. package/dist/{MessagingScreen-B4OtJ908.cjs → MessagingScreen-DX8A0ahD.cjs} +2 -2
  18. package/dist/{MessagingScreen-B4OtJ908.cjs.map → MessagingScreen-DX8A0ahD.cjs.map} +1 -1
  19. package/dist/{OrdersScreen-DtO4r_th.mjs → OrdersScreen-BgyMsZpn.mjs} +245 -84
  20. package/dist/OrdersScreen-BgyMsZpn.mjs.map +1 -0
  21. package/dist/{OrdersScreen-DlCLRqEK.cjs → OrdersScreen-CCVPgVWa.cjs} +244 -83
  22. package/dist/OrdersScreen-CCVPgVWa.cjs.map +1 -0
  23. package/dist/{OrdersScreen-CV6umNnp.cjs → OrdersScreen-DWNylH_i.cjs} +3 -2
  24. package/dist/{PortalContentApiProvider-DGkP0Vk6.mjs → PortalContentApiProvider-Bwi7FOTs.mjs} +72 -75
  25. package/dist/PortalContentApiProvider-Bwi7FOTs.mjs.map +1 -0
  26. package/dist/{PortalContentApiProvider-CH87-pE5.cjs → PortalContentApiProvider-Cb-DGxBo.cjs} +72 -75
  27. package/dist/PortalContentApiProvider-Cb-DGxBo.cjs.map +1 -0
  28. package/dist/{PortalProductsApiProvider-CTLKKRqy.cjs → PortalProductsApiProvider-CRN-i8Rh.cjs} +2 -2
  29. package/dist/{PortalProductsApiProvider-CTLKKRqy.cjs.map → PortalProductsApiProvider-CRN-i8Rh.cjs.map} +1 -1
  30. package/dist/{PortalProductsApiProvider-CY6CUq6x.mjs → PortalProductsApiProvider-D0jul2Fh.mjs} +2 -2
  31. package/dist/{PortalProductsApiProvider-CY6CUq6x.mjs.map → PortalProductsApiProvider-D0jul2Fh.mjs.map} +1 -1
  32. package/dist/{ProductsScreen-a1Bcvc3U.cjs → ProductsScreen-BQqP8-N9.cjs} +3 -3
  33. package/dist/{ProductsScreen-a1Bcvc3U.cjs.map → ProductsScreen-BQqP8-N9.cjs.map} +1 -1
  34. package/dist/{ProductsScreen-DWpcieDU.mjs → ProductsScreen-Cd8hpH-3.mjs} +3 -3
  35. package/dist/{ProductsScreen-DWpcieDU.mjs.map → ProductsScreen-Cd8hpH-3.mjs.map} +1 -1
  36. package/dist/{ProductsScreen-DLrDpYau.mjs → ProductsScreen-CdbwRM5O.mjs} +4 -4
  37. package/dist/{ProductsScreen-DmhLYjZD.cjs → ProductsScreen-DgPjO-HY.cjs} +4 -4
  38. package/dist/{ProfileScreen-Dx8KAKbU.cjs → ProfileScreen-BsjuHCor.cjs} +2 -2
  39. package/dist/{ProfileScreen-Dx8KAKbU.cjs.map → ProfileScreen-BsjuHCor.cjs.map} +1 -1
  40. package/dist/{ProfileScreen-BCDSo1pW.cjs → ProfileScreen-DL-C2R6R.cjs} +2 -2
  41. package/dist/{ProfileScreen-DoCcIaDI.mjs → ProfileScreen-eJvfI2YW.mjs} +2 -2
  42. package/dist/{ProfileScreen-DoCcIaDI.mjs.map → ProfileScreen-eJvfI2YW.mjs.map} +1 -1
  43. package/dist/{ShareablesScreen-B-OPO65F.cjs → ShareablesScreen-BEm7wQaI.cjs} +4 -4
  44. package/dist/{ShareablesScreen-CXchqCpx.mjs → ShareablesScreen-BUuuUpDS.mjs} +3 -3
  45. package/dist/{ShareablesScreen-CXchqCpx.mjs.map → ShareablesScreen-BUuuUpDS.mjs.map} +1 -1
  46. package/dist/{ShareablesScreen-D8tsuynn.cjs → ShareablesScreen-C1PQmDVa.cjs} +3 -3
  47. package/dist/{ShareablesScreen-D8tsuynn.cjs.map → ShareablesScreen-C1PQmDVa.cjs.map} +1 -1
  48. package/dist/{ShareablesScreen-Bvx2nkO5.mjs → ShareablesScreen-DoJ8EIDG.mjs} +4 -4
  49. package/dist/{ShopScreen-D__IvAj7.mjs → ShopScreen-5AXTCtLQ.mjs} +3 -3
  50. package/dist/{ShopScreen-D__IvAj7.mjs.map → ShopScreen-5AXTCtLQ.mjs.map} +1 -1
  51. package/dist/{ShopScreen-D6YHqL2Z.cjs → ShopScreen-DEFhDrcd.cjs} +3 -3
  52. package/dist/{ShopScreen-CcmvJ3mF.cjs → ShopScreen-X802gHEX.cjs} +3 -3
  53. package/dist/{ShopScreen-CcmvJ3mF.cjs.map → ShopScreen-X802gHEX.cjs.map} +1 -1
  54. package/dist/{SubscriptionsScreen-CshfzE9Z.mjs → SubscriptionsScreen-BwRoXYF8.mjs} +44 -34
  55. package/dist/SubscriptionsScreen-BwRoXYF8.mjs.map +1 -0
  56. package/dist/{SubscriptionsScreen-CEiVF1iQ.cjs → SubscriptionsScreen-DbcnEDD0.cjs} +43 -33
  57. package/dist/SubscriptionsScreen-DbcnEDD0.cjs.map +1 -0
  58. package/dist/{SubscriptionsScreen-C32rbhAZ.cjs → SubscriptionsScreen-mhTl7OIp.cjs} +3 -3
  59. package/dist/{dist-Ib6pM5r3.cjs → dist-bL3uiYn3.cjs} +1 -1
  60. package/dist/{dist-Ib6pM5r3.cjs.map → dist-bL3uiYn3.cjs.map} +1 -1
  61. package/dist/{dist-DhOQb8en.mjs → dist-wzcShuuv.mjs} +1 -1
  62. package/dist/{dist-DhOQb8en.mjs.map → dist-wzcShuuv.mjs.map} +1 -1
  63. package/dist/index.cjs +30 -30
  64. package/dist/index.d.cts.map +1 -1
  65. package/dist/index.d.mts.map +1 -1
  66. package/dist/index.mjs +30 -30
  67. package/dist/{order-status-badge-DvZns1LY.cjs → order-status-badge-Crk9UGpl.cjs} +23 -151
  68. package/dist/order-status-badge-Crk9UGpl.cjs.map +1 -0
  69. package/dist/{order-status-badge-DK9GG8H-.mjs → order-status-badge-DiQDwwSp.mjs} +28 -150
  70. package/dist/order-status-badge-DiQDwwSp.mjs.map +1 -0
  71. package/dist/{portal_tenant-BrihTN41.mjs → portal_tenant-CWKHVgID.mjs} +14 -4
  72. package/dist/portal_tenant-CWKHVgID.mjs.map +1 -0
  73. package/dist/{portal_tenant-DjN8hwJb.cjs → portal_tenant-pozf8Ht6.cjs} +19 -3
  74. package/dist/portal_tenant-pozf8Ht6.cjs.map +1 -0
  75. package/package.json +18 -18
  76. package/dist/ContactsScreen-D2rOJ9Ra.cjs.map +0 -1
  77. package/dist/ContactsScreen-Dw9G8Q3n.mjs.map +0 -1
  78. package/dist/FluidProvider-ClxrzJDf.mjs.map +0 -1
  79. package/dist/OrdersScreen-DlCLRqEK.cjs.map +0 -1
  80. package/dist/OrdersScreen-DtO4r_th.mjs.map +0 -1
  81. package/dist/PortalContentApiProvider-CH87-pE5.cjs.map +0 -1
  82. package/dist/PortalContentApiProvider-DGkP0Vk6.mjs.map +0 -1
  83. package/dist/SubscriptionsScreen-CEiVF1iQ.cjs.map +0 -1
  84. package/dist/SubscriptionsScreen-CshfzE9Z.mjs.map +0 -1
  85. package/dist/order-status-badge-DK9GG8H-.mjs.map +0 -1
  86. package/dist/order-status-badge-DvZns1LY.cjs.map +0 -1
  87. package/dist/portal_tenant-BrihTN41.mjs.map +0 -1
  88. package/dist/portal_tenant-DjN8hwJb.cjs.map +0 -1
  89. package/dist/src-DOYe5GAF.cjs +0 -3
  90. package/dist/src-HUkXWdaF.mjs +0 -3
@@ -4,10 +4,9 @@ require("./src-D57IFKXU.cjs");
4
4
  require("./scroll-arrows-CzWtSS8l.cjs");
5
5
  require("./ScreenHeaderContext-BXgWydjB.cjs");
6
6
  require("./dist-CN_rfvBt.cjs");
7
- const require_ContactsScreen = require("./ContactsScreen-D2rOJ9Ra.cjs");
7
+ const require_ContactsScreen = require("./ContactsScreen-DvohvoOE.cjs");
8
8
  require("./SearchSort-CUDMZIkf.cjs");
9
- require("./order-status-badge-DvZns1LY.cjs");
10
- require("./src-DOYe5GAF.cjs");
11
- require("./dist-Ib6pM5r3.cjs");
9
+ require("./InfiniteScrollSentinel-CU801UfD.cjs");
10
+ require("./dist-bL3uiYn3.cjs");
12
11
  exports.ContactsScreen = require_ContactsScreen.ContactsScreen;
13
12
  exports.contactsScreenPropertySchema = require_ContactsScreen.contactsScreenPropertySchema;
@@ -6,8 +6,8 @@ const require_src = require("./src-D57IFKXU.cjs");
6
6
  const require_ScreenHeaderContext = require("./ScreenHeaderContext-BXgWydjB.cjs");
7
7
  const require_dist = require("./dist-CN_rfvBt.cjs");
8
8
  const require_SearchSort = require("./SearchSort-CUDMZIkf.cjs");
9
- const require_order_status_badge = require("./order-status-badge-DvZns1LY.cjs");
10
- const require_dist$1 = require("./dist-Ib6pM5r3.cjs");
9
+ const require_InfiniteScrollSentinel = require("./InfiniteScrollSentinel-CU801UfD.cjs");
10
+ const require_dist$1 = require("./dist-bL3uiYn3.cjs");
11
11
  let react = require("react");
12
12
  react = require_chunk.__toESM(react);
13
13
  let _tanstack_react_query = require("@tanstack/react-query");
@@ -15,32 +15,6 @@ let react_jsx_runtime = require("react/jsx-runtime");
15
15
  let lucide_react = require("lucide-react");
16
16
  let react_hook_form = require("react-hook-form");
17
17
  let zod = require("zod");
18
- //#region ../../contacts/ui/src/shared/components/contacts/statusBadge.tsx
19
- const statusStyles = {
20
- new: "border-[var(--status-new-border)] bg-[var(--status-new)] text-[var(--status-new-foreground)]",
21
- active: "border-[var(--status-active-border)] bg-[var(--status-active)] text-[var(--status-active-foreground)]",
22
- inactive: "border-border bg-muted text-muted-foreground",
23
- lead: "border-[var(--status-lead-border)] bg-[var(--status-lead)] text-[var(--status-lead-foreground)]",
24
- customer: "border-[var(--status-customer-border)] bg-[var(--status-customer)] text-[var(--status-customer-foreground)]",
25
- success: "border-[var(--badge-success-border)] bg-[var(--badge-success)] text-[var(--badge-success-foreground)]",
26
- warning: "border-[var(--badge-warning-border)] bg-[var(--badge-warning)] text-[var(--badge-warning-foreground)]",
27
- danger: "border-[var(--badge-danger-border)] bg-[var(--badge-danger)] text-[var(--badge-danger-foreground)]",
28
- info: "border-[var(--badge-info-border)] bg-[var(--badge-info)] text-[var(--badge-info-foreground)]",
29
- neutral: "border-border bg-muted text-muted-foreground",
30
- notice: "border-[var(--badge-notice-border)] bg-[var(--badge-notice)] text-[var(--badge-notice-foreground)]",
31
- accent: "border-[var(--badge-accent-border)] bg-[var(--badge-accent)] text-[var(--badge-accent-foreground)]"
32
- };
33
- const defaultStyle = "border-border bg-muted text-muted-foreground";
34
- function getStatusStyle(status) {
35
- return statusStyles[status] ?? defaultStyle;
36
- }
37
- function StatusBadge({ status, label, className }) {
38
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
39
- className: require_src.cn("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold capitalize", getStatusStyle(status), className),
40
- children: label ?? status
41
- });
42
- }
43
- //#endregion
44
18
  //#region ../../contacts/core/src/contacts-api-context.ts
45
19
  const ContactsApiContext = (0, react.createContext)(null);
46
20
  const ContactsApiProvider = ContactsApiContext.Provider;
@@ -102,6 +76,51 @@ const contactsKeys = {
102
76
  groups: () => ["portal-contacts", "groups"]
103
77
  };
104
78
  //#endregion
79
+ //#region ../../contacts/core/src/hooks/use-infinite-contacts.ts
80
+ function useInfiniteContacts(params) {
81
+ const api = useContactsCrud();
82
+ return (0, _tanstack_react_query.useInfiniteQuery)({
83
+ queryKey: [...CONTACTS_QUERY_KEYS.list("contacts"), params],
84
+ queryFn: ({ pageParam }) => api.listContacts({
85
+ ...params,
86
+ page: pageParam
87
+ }),
88
+ getNextPageParam: (lastPage) => {
89
+ const currentPage = lastPage.meta.current_page;
90
+ if (currentPage == null) return void 0;
91
+ if (lastPage.meta.next_cursor) return currentPage + 1;
92
+ if (lastPage.meta.total_pages != null && currentPage < lastPage.meta.total_pages) return currentPage + 1;
93
+ },
94
+ initialPageParam: 1
95
+ });
96
+ }
97
+ //#endregion
98
+ //#region ../../contacts/ui/src/shared/components/contacts/statusBadge.tsx
99
+ const statusStyles = {
100
+ new: "border-[var(--status-new-border)] bg-[var(--status-new)] text-[var(--status-new-foreground)]",
101
+ active: "border-[var(--status-active-border)] bg-[var(--status-active)] text-[var(--status-active-foreground)]",
102
+ inactive: "border-border bg-muted text-muted-foreground",
103
+ lead: "border-[var(--status-lead-border)] bg-[var(--status-lead)] text-[var(--status-lead-foreground)]",
104
+ customer: "border-[var(--status-customer-border)] bg-[var(--status-customer)] text-[var(--status-customer-foreground)]",
105
+ success: "border-[var(--badge-success-border)] bg-[var(--badge-success)] text-[var(--badge-success-foreground)]",
106
+ warning: "border-[var(--badge-warning-border)] bg-[var(--badge-warning)] text-[var(--badge-warning-foreground)]",
107
+ danger: "border-[var(--badge-danger-border)] bg-[var(--badge-danger)] text-[var(--badge-danger-foreground)]",
108
+ info: "border-[var(--badge-info-border)] bg-[var(--badge-info)] text-[var(--badge-info-foreground)]",
109
+ neutral: "border-border bg-muted text-muted-foreground",
110
+ notice: "border-[var(--badge-notice-border)] bg-[var(--badge-notice)] text-[var(--badge-notice-foreground)]",
111
+ accent: "border-[var(--badge-accent-border)] bg-[var(--badge-accent)] text-[var(--badge-accent-foreground)]"
112
+ };
113
+ const defaultStyle = "border-border bg-muted text-muted-foreground";
114
+ function getStatusStyle(status) {
115
+ return statusStyles[status] ?? defaultStyle;
116
+ }
117
+ function StatusBadge({ status, label, className }) {
118
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
119
+ className: require_src.cn("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold capitalize", getStatusStyle(status), className),
120
+ children: label ?? status
121
+ });
122
+ }
123
+ //#endregion
105
124
  //#region ../../contacts/ui/src/shared/components/contacts/allContacts/contactsTable.tsx
106
125
  function getInitials(fullName) {
107
126
  const trimmed = fullName?.trim();
@@ -315,7 +334,7 @@ const CONTACT_SORT_COLUMNS = [{
315
334
  id: "email",
316
335
  name: "Email"
317
336
  }];
318
- function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setOpenDeleteModal, onEditContact, onRowClick, resetKey, tableLayout }) {
337
+ function ContactsTable({ setSelectedContacts, setOpenDeleteModal, onEditContact, onRowClick, resetKey, tableLayout }) {
319
338
  const isMemberLayout = tableLayout === "members";
320
339
  const groupsApi = useGroupsApi();
321
340
  const { data: availableGroups = [] } = (0, _tanstack_react_query.useQuery)({
@@ -329,7 +348,6 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
329
348
  for (const group of availableGroups) map.set(group.name, group);
330
349
  return map;
331
350
  }, [availableGroups]);
332
- const [currentPage, setCurrentPage] = (0, react.useState)(1);
333
351
  const [searchTerm, setSearchTerm] = (0, react.useState)("");
334
352
  const [sortValue, setSortValue] = (0, react.useState)("name_asc");
335
353
  const [selectedIds, setSelectedIds] = (0, react.useState)(/* @__PURE__ */ new Set());
@@ -341,32 +359,18 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
341
359
  };
342
360
  }, [sortValue]);
343
361
  (0, react.useEffect)(() => {
344
- setCurrentPage(1);
345
362
  setSelectedIds(/* @__PURE__ */ new Set());
346
363
  }, [searchTerm, sortValue]);
347
- (0, react.useEffect)(() => {
348
- setSelectedIds(/* @__PURE__ */ new Set());
349
- }, [currentPage]);
350
364
  (0, react.useEffect)(() => {
351
365
  setSelectedIds(/* @__PURE__ */ new Set());
352
366
  }, [resetKey]);
353
- const { data, isLoading } = (0, _tanstack_react_query.useQuery)({
354
- queryKey: [queryKeyPrefix, {
355
- searchTerm,
356
- currentPage,
357
- sortField: parsedSort.id,
358
- sortDesc: parsedSort.desc
359
- }],
360
- queryFn: () => listContacts({
361
- search_query: searchTerm || void 0,
362
- page: currentPage,
363
- per_page: PAGE_SIZE,
364
- sort_by: parsedSort.id,
365
- sort_direction: parsedSort.desc ? "desc" : "asc"
366
- }),
367
- placeholderData: _tanstack_react_query.keepPreviousData
367
+ const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage } = useInfiniteContacts({
368
+ search_query: searchTerm || void 0,
369
+ per_page: PAGE_SIZE,
370
+ sort_by: parsedSort.id,
371
+ sort_direction: parsedSort.desc ? "desc" : "asc"
368
372
  });
369
- const items = (0, react.useMemo)(() => data?.contacts ?? [], [data?.contacts]);
373
+ const items = (0, react.useMemo)(() => data?.pages.flatMap((p) => p.contacts) ?? [], [data?.pages]);
370
374
  const displayItems = (0, react.useMemo)(() => {
371
375
  const sortField = parsedSort.id;
372
376
  const sortDir = parsedSort.desc ? "desc" : "asc";
@@ -377,8 +381,6 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
377
381
  return sortDir === "asc" ? cmp : -cmp;
378
382
  });
379
383
  }, [items, parsedSort]);
380
- const totalItems = data?.meta?.total_count ?? 0;
381
- const totalPages = Math.max(1, Math.ceil(totalItems / PAGE_SIZE));
382
384
  const allSelected = displayItems.length > 0 && displayItems.every((c) => selectedIds.has(c.id));
383
385
  const someSelected = selectedIds.size > 0 && !allSelected;
384
386
  const selectAllRef = (0, react.useRef)(null);
@@ -737,19 +739,17 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
737
739
  ]
738
740
  })
739
741
  })] }),
740
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_order_status_badge.PaginationFooter, {
741
- currentPage,
742
- totalPages,
743
- pageSize: PAGE_SIZE,
744
- totalItems,
745
- onPageChange: setCurrentPage
742
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_InfiniteScrollSentinel.InfiniteScrollSentinel, {
743
+ onLoadMore: fetchNextPage,
744
+ hasMore: !!hasNextPage,
745
+ isLoading: isFetchingNextPage
746
746
  })
747
747
  ]
748
748
  });
749
749
  }
750
750
  //#endregion
751
751
  //#region ../../contacts/ui/src/shared/components/contacts/allContacts/contactsPage.tsx
752
- function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, onEditContact, onRowClick, tableLayout }) {
752
+ function ContactsPage({ deleteContacts, header, onEditContact, onRowClick, tableLayout }) {
753
753
  const [openDeleteModal, setOpenDeleteModal] = (0, react.useState)(false);
754
754
  const [selectedContacts, setSelectedContacts] = (0, react.useState)([]);
755
755
  const [resetKey, setResetKey] = (0, react.useState)(0);
@@ -762,7 +762,7 @@ function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, on
762
762
  title: "Contacts deleted successfully",
763
763
  type: "success"
764
764
  });
765
- queryClient.invalidateQueries({ queryKey: CONTACTS_QUERY_KEYS.all(queryKeyPrefix) });
765
+ queryClient.invalidateQueries({ queryKey: CONTACTS_QUERY_KEYS.all("contacts") });
766
766
  },
767
767
  onError: (error) => {
768
768
  require_src.fluidToast({
@@ -782,8 +782,6 @@ function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, on
782
782
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
783
783
  className: "mx-auto max-w-7xl space-y-6 px-4 py-4 md:px-10 md:py-8",
784
784
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContactsTable, {
785
- listContacts,
786
- queryKeyPrefix,
787
785
  setSelectedContacts,
788
786
  setOpenDeleteModal,
789
787
  onEditContact,
@@ -810,7 +808,7 @@ function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, on
810
808
  }
811
809
  //#endregion
812
810
  //#region ../../contacts/ui/src/screens/ContactsListScreen.tsx
813
- function ContactsListScreen({ listContacts, deleteContacts, onEditContact, onRowClick, onAddContact, queryKeyPrefix = "contacts", tableLayout, header }) {
811
+ function ContactsListScreen({ deleteContacts, onEditContact, onRowClick, onAddContact, tableLayout, header }) {
814
812
  require_ScreenHeaderContext.useScreenHeaderActions((0, react.useMemo)(() => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
815
813
  onClick: onAddContact,
816
814
  size: "sm",
@@ -824,9 +822,7 @@ function ContactsListScreen({ listContacts, deleteContacts, onEditContact, onRow
824
822
  }) })
825
823
  }) }), []));
826
824
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContactsPage, {
827
- listContacts,
828
825
  deleteContacts,
829
- queryKeyPrefix,
830
826
  tableLayout,
831
827
  header,
832
828
  onEditContact,
@@ -4202,16 +4198,19 @@ async function contacts_tasks_destroy(client, contact_id, id) {
4202
4198
  const EMPTY_META = {
4203
4199
  total_count: 0,
4204
4200
  total_pages: 0,
4205
- current_page: 1
4201
+ current_page: 1,
4202
+ next_cursor: null
4206
4203
  };
4207
4204
  function paginationFromBff(meta, itemCount, currentPage, pageSize) {
4208
4205
  if (!meta) return EMPTY_META;
4209
- const hasNext = !!meta.pagination?.next_cursor;
4206
+ const nextCursor = meta.pagination?.next_cursor ?? null;
4207
+ const hasNext = !!nextCursor;
4210
4208
  const totalCount = meta.total_count ?? (hasNext ? (currentPage + 1) * pageSize : (currentPage - 1) * pageSize + itemCount);
4211
4209
  return {
4212
4210
  total_count: totalCount,
4213
4211
  total_pages: Math.max(1, Math.ceil(totalCount / pageSize)),
4214
4212
  current_page: currentPage,
4213
+ next_cursor: nextCursor,
4215
4214
  request_id: meta.request_id ?? void 0,
4216
4215
  timestamp: meta.timestamp ?? void 0
4217
4216
  };
@@ -4420,9 +4419,7 @@ function ContactListView({ onNavigate, onContactSelect }) {
4420
4419
  });
4421
4420
  }, [onNavigate, onContactSelect]);
4422
4421
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContactsListScreen, {
4423
- listContacts: (0, react.useCallback)((params) => api.listContacts(params), [api]),
4424
4422
  deleteContacts: (0, react.useCallback)((ids) => api.bulkDeleteContacts(ids), [api]),
4425
- queryKeyPrefix: QUERY_KEY_PREFIX,
4426
4423
  tableLayout: "members",
4427
4424
  onEditContact: handleSelectContact,
4428
4425
  onRowClick: handleSelectContact,
@@ -4607,4 +4604,4 @@ Object.defineProperty(exports, "contactsScreenPropertySchema", {
4607
4604
  }
4608
4605
  });
4609
4606
 
4610
- //# sourceMappingURL=ContactsScreen-D2rOJ9Ra.cjs.map
4607
+ //# sourceMappingURL=ContactsScreen-DvohvoOE.cjs.map