@fluid-app/portal-sdk 0.1.191 → 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.
- package/dist/{ContactsScreen-Dw9G8Q3n.mjs → ContactsScreen-BtBNMZzG.mjs} +68 -71
- package/dist/ContactsScreen-BtBNMZzG.mjs.map +1 -0
- package/dist/{ContactsScreen-Euvu6Y8H.cjs → ContactsScreen-Cheiwaxn.cjs} +3 -4
- package/dist/{ContactsScreen-D2rOJ9Ra.cjs → ContactsScreen-DvohvoOE.cjs} +67 -70
- package/dist/ContactsScreen-DvohvoOE.cjs.map +1 -0
- package/dist/{FluidProvider-Ci3tUVMM.cjs → FluidProvider-BWBEdHQQ.cjs} +2 -2
- package/dist/{FluidProvider-Ci3tUVMM.cjs.map → FluidProvider-BWBEdHQQ.cjs.map} +1 -1
- package/dist/{FluidProvider-BPwrZY_X.mjs → FluidProvider-dp9q6oRM.mjs} +2 -2
- package/dist/{FluidProvider-BPwrZY_X.mjs.map → FluidProvider-dp9q6oRM.mjs.map} +1 -1
- package/dist/InfiniteScrollSentinel-CU801UfD.cjs +36 -0
- package/dist/InfiniteScrollSentinel-CU801UfD.cjs.map +1 -0
- package/dist/InfiniteScrollSentinel-MgF-ldXy.mjs +30 -0
- package/dist/InfiniteScrollSentinel-MgF-ldXy.mjs.map +1 -0
- package/dist/{MessagingScreen-CTkPjXmw.mjs → MessagingScreen-BNsaLpzu.mjs} +2 -2
- package/dist/{MessagingScreen-CTkPjXmw.mjs.map → MessagingScreen-BNsaLpzu.mjs.map} +1 -1
- package/dist/{MessagingScreen-B1EUsool.cjs → MessagingScreen-CJ3p3ZHq.cjs} +2 -2
- package/dist/{MessagingScreen-uWR24DJL.cjs → MessagingScreen-DX8A0ahD.cjs} +2 -2
- package/dist/{MessagingScreen-uWR24DJL.cjs.map → MessagingScreen-DX8A0ahD.cjs.map} +1 -1
- package/dist/{OrdersScreen-CjbzJrnk.mjs → OrdersScreen-BgyMsZpn.mjs} +245 -84
- package/dist/OrdersScreen-BgyMsZpn.mjs.map +1 -0
- package/dist/{OrdersScreen-CFTZi2HF.cjs → OrdersScreen-CCVPgVWa.cjs} +244 -83
- package/dist/OrdersScreen-CCVPgVWa.cjs.map +1 -0
- package/dist/{OrdersScreen-C0cYz9Ka.cjs → OrdersScreen-DWNylH_i.cjs} +3 -2
- package/dist/{PortalContentApiProvider-DloCNJGC.mjs → PortalContentApiProvider-Bwi7FOTs.mjs} +72 -75
- package/dist/PortalContentApiProvider-Bwi7FOTs.mjs.map +1 -0
- package/dist/{PortalContentApiProvider-CvH9BEAO.cjs → PortalContentApiProvider-Cb-DGxBo.cjs} +72 -75
- package/dist/PortalContentApiProvider-Cb-DGxBo.cjs.map +1 -0
- package/dist/{PortalProductsApiProvider-v_vGVQTY.cjs → PortalProductsApiProvider-CRN-i8Rh.cjs} +2 -2
- package/dist/{PortalProductsApiProvider-v_vGVQTY.cjs.map → PortalProductsApiProvider-CRN-i8Rh.cjs.map} +1 -1
- package/dist/{PortalProductsApiProvider-Bcj1VwsT.mjs → PortalProductsApiProvider-D0jul2Fh.mjs} +2 -2
- package/dist/{PortalProductsApiProvider-Bcj1VwsT.mjs.map → PortalProductsApiProvider-D0jul2Fh.mjs.map} +1 -1
- package/dist/{ProductsScreen-5K6to2Vm.cjs → ProductsScreen-BQqP8-N9.cjs} +3 -3
- package/dist/{ProductsScreen-5K6to2Vm.cjs.map → ProductsScreen-BQqP8-N9.cjs.map} +1 -1
- package/dist/{ProductsScreen-jk9Iiscy.mjs → ProductsScreen-Cd8hpH-3.mjs} +3 -3
- package/dist/{ProductsScreen-jk9Iiscy.mjs.map → ProductsScreen-Cd8hpH-3.mjs.map} +1 -1
- package/dist/{ProductsScreen-h7-hyha0.mjs → ProductsScreen-CdbwRM5O.mjs} +4 -4
- package/dist/{ProductsScreen-BY_eZwLd.cjs → ProductsScreen-DgPjO-HY.cjs} +4 -4
- package/dist/{ProfileScreen-BF0ngN58.cjs → ProfileScreen-BsjuHCor.cjs} +2 -2
- package/dist/{ProfileScreen-BF0ngN58.cjs.map → ProfileScreen-BsjuHCor.cjs.map} +1 -1
- package/dist/{ProfileScreen-qE9eKIra.cjs → ProfileScreen-DL-C2R6R.cjs} +2 -2
- package/dist/{ProfileScreen-CeqjmmOa.mjs → ProfileScreen-eJvfI2YW.mjs} +2 -2
- package/dist/{ProfileScreen-CeqjmmOa.mjs.map → ProfileScreen-eJvfI2YW.mjs.map} +1 -1
- package/dist/{ShareablesScreen-CXrS4anN.cjs → ShareablesScreen-BEm7wQaI.cjs} +4 -4
- package/dist/{ShareablesScreen-B56lNgZ7.mjs → ShareablesScreen-BUuuUpDS.mjs} +3 -3
- package/dist/{ShareablesScreen-B56lNgZ7.mjs.map → ShareablesScreen-BUuuUpDS.mjs.map} +1 -1
- package/dist/{ShareablesScreen-CVrbEivj.cjs → ShareablesScreen-C1PQmDVa.cjs} +3 -3
- package/dist/{ShareablesScreen-CVrbEivj.cjs.map → ShareablesScreen-C1PQmDVa.cjs.map} +1 -1
- package/dist/{ShareablesScreen-DPoZVeXu.mjs → ShareablesScreen-DoJ8EIDG.mjs} +4 -4
- package/dist/{ShopScreen-CTuIZ1oW.mjs → ShopScreen-5AXTCtLQ.mjs} +3 -3
- package/dist/{ShopScreen-CTuIZ1oW.mjs.map → ShopScreen-5AXTCtLQ.mjs.map} +1 -1
- package/dist/{ShopScreen-DcGMGI3h.cjs → ShopScreen-DEFhDrcd.cjs} +3 -3
- package/dist/{ShopScreen-CbEH6dtZ.cjs → ShopScreen-X802gHEX.cjs} +3 -3
- package/dist/{ShopScreen-CbEH6dtZ.cjs.map → ShopScreen-X802gHEX.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-BQ5BoMZO.mjs → SubscriptionsScreen-BwRoXYF8.mjs} +44 -34
- package/dist/SubscriptionsScreen-BwRoXYF8.mjs.map +1 -0
- package/dist/{SubscriptionsScreen-CzxhX8CT.cjs → SubscriptionsScreen-DbcnEDD0.cjs} +43 -33
- package/dist/SubscriptionsScreen-DbcnEDD0.cjs.map +1 -0
- package/dist/{SubscriptionsScreen-BR_YMBYs.cjs → SubscriptionsScreen-mhTl7OIp.cjs} +3 -3
- package/dist/{dist-Ib6pM5r3.cjs → dist-bL3uiYn3.cjs} +1 -1
- package/dist/{dist-Ib6pM5r3.cjs.map → dist-bL3uiYn3.cjs.map} +1 -1
- package/dist/{dist-DhOQb8en.mjs → dist-wzcShuuv.mjs} +1 -1
- package/dist/{dist-DhOQb8en.mjs.map → dist-wzcShuuv.mjs.map} +1 -1
- package/dist/index.cjs +30 -30
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +30 -30
- package/dist/{order-status-badge-DvZns1LY.cjs → order-status-badge-Crk9UGpl.cjs} +23 -151
- package/dist/order-status-badge-Crk9UGpl.cjs.map +1 -0
- package/dist/{order-status-badge-DK9GG8H-.mjs → order-status-badge-DiQDwwSp.mjs} +28 -150
- package/dist/order-status-badge-DiQDwwSp.mjs.map +1 -0
- package/dist/{portal_tenant-KkdoWwTr.mjs → portal_tenant-CWKHVgID.mjs} +3 -3
- package/dist/portal_tenant-CWKHVgID.mjs.map +1 -0
- package/dist/{portal_tenant-B2lPHXgm.cjs → portal_tenant-pozf8Ht6.cjs} +3 -3
- package/dist/portal_tenant-pozf8Ht6.cjs.map +1 -0
- package/package.json +15 -15
- package/dist/ContactsScreen-D2rOJ9Ra.cjs.map +0 -1
- package/dist/ContactsScreen-Dw9G8Q3n.mjs.map +0 -1
- package/dist/OrdersScreen-CFTZi2HF.cjs.map +0 -1
- package/dist/OrdersScreen-CjbzJrnk.mjs.map +0 -1
- package/dist/PortalContentApiProvider-CvH9BEAO.cjs.map +0 -1
- package/dist/PortalContentApiProvider-DloCNJGC.mjs.map +0 -1
- package/dist/SubscriptionsScreen-BQ5BoMZO.mjs.map +0 -1
- package/dist/SubscriptionsScreen-CzxhX8CT.cjs.map +0 -1
- package/dist/order-status-badge-DK9GG8H-.mjs.map +0 -1
- package/dist/order-status-badge-DvZns1LY.cjs.map +0 -1
- package/dist/portal_tenant-B2lPHXgm.cjs.map +0 -1
- package/dist/portal_tenant-KkdoWwTr.mjs.map +0 -1
- package/dist/src-DOYe5GAF.cjs +0 -3
- package/dist/src-HUkXWdaF.mjs +0 -3
|
@@ -6,40 +6,14 @@ import { $ as DropdownMenuSeparator, $t as BreadcrumbPage, A as Select, C as Ske
|
|
|
6
6
|
import { n as useScreenHeaderActions, r as useScreenHeaderBreadcrumbs } from "./ScreenHeaderContext-BD6Zo-ep.mjs";
|
|
7
7
|
import { a as useEditor, n as Heading, o as Placeholder, r as EditorContent, t as StarterKit } from "./dist-tv6N_HgZ.mjs";
|
|
8
8
|
import { t as SearchSort } from "./SearchSort-TmRTxK16.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import { n as TextAlign, t as Underline } from "./dist-
|
|
9
|
+
import { t as InfiniteScrollSentinel } from "./InfiniteScrollSentinel-MgF-ldXy.mjs";
|
|
10
|
+
import { n as TextAlign, t as Underline } from "./dist-wzcShuuv.mjs";
|
|
11
11
|
import React, { createContext, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
12
|
-
import { keepPreviousData, useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
12
|
+
import { keepPreviousData, useInfiniteQuery, useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
13
13
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { AlignCenter, AlignJustify, AlignLeft, AlignRight, ArrowLeft, Building, Calendar, CalendarDays, Check, ChevronLeft, ChevronRight, CircleCheck, ClipboardList, EllipsisVertical, ExternalLink, List, ListChecks, ListOrdered, Mail, MessageSquare, Paperclip, Pen, Pencil, Phone, Plus, Repeat2, ShoppingCart, SquareCheckBig, StickyNote, Trash2, X } from "lucide-react";
|
|
15
15
|
import { FormProvider, useFormContext, useWatch } from "react-hook-form";
|
|
16
16
|
import { z } from "zod";
|
|
17
|
-
//#region ../../contacts/ui/src/shared/components/contacts/statusBadge.tsx
|
|
18
|
-
const statusStyles = {
|
|
19
|
-
new: "border-[var(--status-new-border)] bg-[var(--status-new)] text-[var(--status-new-foreground)]",
|
|
20
|
-
active: "border-[var(--status-active-border)] bg-[var(--status-active)] text-[var(--status-active-foreground)]",
|
|
21
|
-
inactive: "border-border bg-muted text-muted-foreground",
|
|
22
|
-
lead: "border-[var(--status-lead-border)] bg-[var(--status-lead)] text-[var(--status-lead-foreground)]",
|
|
23
|
-
customer: "border-[var(--status-customer-border)] bg-[var(--status-customer)] text-[var(--status-customer-foreground)]",
|
|
24
|
-
success: "border-[var(--badge-success-border)] bg-[var(--badge-success)] text-[var(--badge-success-foreground)]",
|
|
25
|
-
warning: "border-[var(--badge-warning-border)] bg-[var(--badge-warning)] text-[var(--badge-warning-foreground)]",
|
|
26
|
-
danger: "border-[var(--badge-danger-border)] bg-[var(--badge-danger)] text-[var(--badge-danger-foreground)]",
|
|
27
|
-
info: "border-[var(--badge-info-border)] bg-[var(--badge-info)] text-[var(--badge-info-foreground)]",
|
|
28
|
-
neutral: "border-border bg-muted text-muted-foreground",
|
|
29
|
-
notice: "border-[var(--badge-notice-border)] bg-[var(--badge-notice)] text-[var(--badge-notice-foreground)]",
|
|
30
|
-
accent: "border-[var(--badge-accent-border)] bg-[var(--badge-accent)] text-[var(--badge-accent-foreground)]"
|
|
31
|
-
};
|
|
32
|
-
const defaultStyle = "border-border bg-muted text-muted-foreground";
|
|
33
|
-
function getStatusStyle(status) {
|
|
34
|
-
return statusStyles[status] ?? defaultStyle;
|
|
35
|
-
}
|
|
36
|
-
function StatusBadge({ status, label, className }) {
|
|
37
|
-
return /* @__PURE__ */ jsx("span", {
|
|
38
|
-
className: cn("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold capitalize", getStatusStyle(status), className),
|
|
39
|
-
children: label ?? status
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
//#endregion
|
|
43
17
|
//#region ../../contacts/core/src/contacts-api-context.ts
|
|
44
18
|
const ContactsApiContext = createContext(null);
|
|
45
19
|
const ContactsApiProvider = ContactsApiContext.Provider;
|
|
@@ -101,6 +75,51 @@ const contactsKeys = {
|
|
|
101
75
|
groups: () => ["portal-contacts", "groups"]
|
|
102
76
|
};
|
|
103
77
|
//#endregion
|
|
78
|
+
//#region ../../contacts/core/src/hooks/use-infinite-contacts.ts
|
|
79
|
+
function useInfiniteContacts(params) {
|
|
80
|
+
const api = useContactsCrud();
|
|
81
|
+
return useInfiniteQuery({
|
|
82
|
+
queryKey: [...CONTACTS_QUERY_KEYS.list("contacts"), params],
|
|
83
|
+
queryFn: ({ pageParam }) => api.listContacts({
|
|
84
|
+
...params,
|
|
85
|
+
page: pageParam
|
|
86
|
+
}),
|
|
87
|
+
getNextPageParam: (lastPage) => {
|
|
88
|
+
const currentPage = lastPage.meta.current_page;
|
|
89
|
+
if (currentPage == null) return void 0;
|
|
90
|
+
if (lastPage.meta.next_cursor) return currentPage + 1;
|
|
91
|
+
if (lastPage.meta.total_pages != null && currentPage < lastPage.meta.total_pages) return currentPage + 1;
|
|
92
|
+
},
|
|
93
|
+
initialPageParam: 1
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region ../../contacts/ui/src/shared/components/contacts/statusBadge.tsx
|
|
98
|
+
const statusStyles = {
|
|
99
|
+
new: "border-[var(--status-new-border)] bg-[var(--status-new)] text-[var(--status-new-foreground)]",
|
|
100
|
+
active: "border-[var(--status-active-border)] bg-[var(--status-active)] text-[var(--status-active-foreground)]",
|
|
101
|
+
inactive: "border-border bg-muted text-muted-foreground",
|
|
102
|
+
lead: "border-[var(--status-lead-border)] bg-[var(--status-lead)] text-[var(--status-lead-foreground)]",
|
|
103
|
+
customer: "border-[var(--status-customer-border)] bg-[var(--status-customer)] text-[var(--status-customer-foreground)]",
|
|
104
|
+
success: "border-[var(--badge-success-border)] bg-[var(--badge-success)] text-[var(--badge-success-foreground)]",
|
|
105
|
+
warning: "border-[var(--badge-warning-border)] bg-[var(--badge-warning)] text-[var(--badge-warning-foreground)]",
|
|
106
|
+
danger: "border-[var(--badge-danger-border)] bg-[var(--badge-danger)] text-[var(--badge-danger-foreground)]",
|
|
107
|
+
info: "border-[var(--badge-info-border)] bg-[var(--badge-info)] text-[var(--badge-info-foreground)]",
|
|
108
|
+
neutral: "border-border bg-muted text-muted-foreground",
|
|
109
|
+
notice: "border-[var(--badge-notice-border)] bg-[var(--badge-notice)] text-[var(--badge-notice-foreground)]",
|
|
110
|
+
accent: "border-[var(--badge-accent-border)] bg-[var(--badge-accent)] text-[var(--badge-accent-foreground)]"
|
|
111
|
+
};
|
|
112
|
+
const defaultStyle = "border-border bg-muted text-muted-foreground";
|
|
113
|
+
function getStatusStyle(status) {
|
|
114
|
+
return statusStyles[status] ?? defaultStyle;
|
|
115
|
+
}
|
|
116
|
+
function StatusBadge({ status, label, className }) {
|
|
117
|
+
return /* @__PURE__ */ jsx("span", {
|
|
118
|
+
className: cn("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold capitalize", getStatusStyle(status), className),
|
|
119
|
+
children: label ?? status
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//#endregion
|
|
104
123
|
//#region ../../contacts/ui/src/shared/components/contacts/allContacts/contactsTable.tsx
|
|
105
124
|
function getInitials(fullName) {
|
|
106
125
|
const trimmed = fullName?.trim();
|
|
@@ -314,7 +333,7 @@ const CONTACT_SORT_COLUMNS = [{
|
|
|
314
333
|
id: "email",
|
|
315
334
|
name: "Email"
|
|
316
335
|
}];
|
|
317
|
-
function ContactsTable({
|
|
336
|
+
function ContactsTable({ setSelectedContacts, setOpenDeleteModal, onEditContact, onRowClick, resetKey, tableLayout }) {
|
|
318
337
|
const isMemberLayout = tableLayout === "members";
|
|
319
338
|
const groupsApi = useGroupsApi();
|
|
320
339
|
const { data: availableGroups = [] } = useQuery({
|
|
@@ -328,7 +347,6 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
|
|
|
328
347
|
for (const group of availableGroups) map.set(group.name, group);
|
|
329
348
|
return map;
|
|
330
349
|
}, [availableGroups]);
|
|
331
|
-
const [currentPage, setCurrentPage] = useState(1);
|
|
332
350
|
const [searchTerm, setSearchTerm] = useState("");
|
|
333
351
|
const [sortValue, setSortValue] = useState("name_asc");
|
|
334
352
|
const [selectedIds, setSelectedIds] = useState(/* @__PURE__ */ new Set());
|
|
@@ -340,32 +358,18 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
|
|
|
340
358
|
};
|
|
341
359
|
}, [sortValue]);
|
|
342
360
|
useEffect(() => {
|
|
343
|
-
setCurrentPage(1);
|
|
344
361
|
setSelectedIds(/* @__PURE__ */ new Set());
|
|
345
362
|
}, [searchTerm, sortValue]);
|
|
346
|
-
useEffect(() => {
|
|
347
|
-
setSelectedIds(/* @__PURE__ */ new Set());
|
|
348
|
-
}, [currentPage]);
|
|
349
363
|
useEffect(() => {
|
|
350
364
|
setSelectedIds(/* @__PURE__ */ new Set());
|
|
351
365
|
}, [resetKey]);
|
|
352
|
-
const { data, isLoading } =
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
sortDesc: parsedSort.desc
|
|
358
|
-
}],
|
|
359
|
-
queryFn: () => listContacts({
|
|
360
|
-
search_query: searchTerm || void 0,
|
|
361
|
-
page: currentPage,
|
|
362
|
-
per_page: PAGE_SIZE,
|
|
363
|
-
sort_by: parsedSort.id,
|
|
364
|
-
sort_direction: parsedSort.desc ? "desc" : "asc"
|
|
365
|
-
}),
|
|
366
|
-
placeholderData: keepPreviousData
|
|
366
|
+
const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage } = useInfiniteContacts({
|
|
367
|
+
search_query: searchTerm || void 0,
|
|
368
|
+
per_page: PAGE_SIZE,
|
|
369
|
+
sort_by: parsedSort.id,
|
|
370
|
+
sort_direction: parsedSort.desc ? "desc" : "asc"
|
|
367
371
|
});
|
|
368
|
-
const items = useMemo(() => data?.contacts ?? [], [data?.
|
|
372
|
+
const items = useMemo(() => data?.pages.flatMap((p) => p.contacts) ?? [], [data?.pages]);
|
|
369
373
|
const displayItems = useMemo(() => {
|
|
370
374
|
const sortField = parsedSort.id;
|
|
371
375
|
const sortDir = parsedSort.desc ? "desc" : "asc";
|
|
@@ -376,8 +380,6 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
|
|
|
376
380
|
return sortDir === "asc" ? cmp : -cmp;
|
|
377
381
|
});
|
|
378
382
|
}, [items, parsedSort]);
|
|
379
|
-
const totalItems = data?.meta?.total_count ?? 0;
|
|
380
|
-
const totalPages = Math.max(1, Math.ceil(totalItems / PAGE_SIZE));
|
|
381
383
|
const allSelected = displayItems.length > 0 && displayItems.every((c) => selectedIds.has(c.id));
|
|
382
384
|
const someSelected = selectedIds.size > 0 && !allSelected;
|
|
383
385
|
const selectAllRef = useRef(null);
|
|
@@ -736,19 +738,17 @@ function ContactsTable({ listContacts, queryKeyPrefix, setSelectedContacts, setO
|
|
|
736
738
|
]
|
|
737
739
|
})
|
|
738
740
|
})] }),
|
|
739
|
-
/* @__PURE__ */ jsx(
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
totalItems,
|
|
744
|
-
onPageChange: setCurrentPage
|
|
741
|
+
/* @__PURE__ */ jsx(InfiniteScrollSentinel, {
|
|
742
|
+
onLoadMore: fetchNextPage,
|
|
743
|
+
hasMore: !!hasNextPage,
|
|
744
|
+
isLoading: isFetchingNextPage
|
|
745
745
|
})
|
|
746
746
|
]
|
|
747
747
|
});
|
|
748
748
|
}
|
|
749
749
|
//#endregion
|
|
750
750
|
//#region ../../contacts/ui/src/shared/components/contacts/allContacts/contactsPage.tsx
|
|
751
|
-
function ContactsPage({
|
|
751
|
+
function ContactsPage({ deleteContacts, header, onEditContact, onRowClick, tableLayout }) {
|
|
752
752
|
const [openDeleteModal, setOpenDeleteModal] = useState(false);
|
|
753
753
|
const [selectedContacts, setSelectedContacts] = useState([]);
|
|
754
754
|
const [resetKey, setResetKey] = useState(0);
|
|
@@ -761,7 +761,7 @@ function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, on
|
|
|
761
761
|
title: "Contacts deleted successfully",
|
|
762
762
|
type: "success"
|
|
763
763
|
});
|
|
764
|
-
queryClient.invalidateQueries({ queryKey: CONTACTS_QUERY_KEYS.all(
|
|
764
|
+
queryClient.invalidateQueries({ queryKey: CONTACTS_QUERY_KEYS.all("contacts") });
|
|
765
765
|
},
|
|
766
766
|
onError: (error) => {
|
|
767
767
|
fluidToast({
|
|
@@ -781,8 +781,6 @@ function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, on
|
|
|
781
781
|
/* @__PURE__ */ jsx("div", {
|
|
782
782
|
className: "mx-auto max-w-7xl space-y-6 px-4 py-4 md:px-10 md:py-8",
|
|
783
783
|
children: /* @__PURE__ */ jsx(ContactsTable, {
|
|
784
|
-
listContacts,
|
|
785
|
-
queryKeyPrefix,
|
|
786
784
|
setSelectedContacts,
|
|
787
785
|
setOpenDeleteModal,
|
|
788
786
|
onEditContact,
|
|
@@ -809,7 +807,7 @@ function ContactsPage({ listContacts, deleteContacts, queryKeyPrefix, header, on
|
|
|
809
807
|
}
|
|
810
808
|
//#endregion
|
|
811
809
|
//#region ../../contacts/ui/src/screens/ContactsListScreen.tsx
|
|
812
|
-
function ContactsListScreen({
|
|
810
|
+
function ContactsListScreen({ deleteContacts, onEditContact, onRowClick, onAddContact, tableLayout, header }) {
|
|
813
811
|
useScreenHeaderActions(useMemo(() => /* @__PURE__ */ jsxs(Button, {
|
|
814
812
|
onClick: onAddContact,
|
|
815
813
|
size: "sm",
|
|
@@ -823,9 +821,7 @@ function ContactsListScreen({ listContacts, deleteContacts, onEditContact, onRow
|
|
|
823
821
|
}) })
|
|
824
822
|
}) }), []));
|
|
825
823
|
return /* @__PURE__ */ jsx(ContactsPage, {
|
|
826
|
-
listContacts,
|
|
827
824
|
deleteContacts,
|
|
828
|
-
queryKeyPrefix,
|
|
829
825
|
tableLayout,
|
|
830
826
|
header,
|
|
831
827
|
onEditContact,
|
|
@@ -4197,16 +4193,19 @@ async function contacts_tasks_destroy(client, contact_id, id) {
|
|
|
4197
4193
|
const EMPTY_META = {
|
|
4198
4194
|
total_count: 0,
|
|
4199
4195
|
total_pages: 0,
|
|
4200
|
-
current_page: 1
|
|
4196
|
+
current_page: 1,
|
|
4197
|
+
next_cursor: null
|
|
4201
4198
|
};
|
|
4202
4199
|
function paginationFromBff(meta, itemCount, currentPage, pageSize) {
|
|
4203
4200
|
if (!meta) return EMPTY_META;
|
|
4204
|
-
const
|
|
4201
|
+
const nextCursor = meta.pagination?.next_cursor ?? null;
|
|
4202
|
+
const hasNext = !!nextCursor;
|
|
4205
4203
|
const totalCount = meta.total_count ?? (hasNext ? (currentPage + 1) * pageSize : (currentPage - 1) * pageSize + itemCount);
|
|
4206
4204
|
return {
|
|
4207
4205
|
total_count: totalCount,
|
|
4208
4206
|
total_pages: Math.max(1, Math.ceil(totalCount / pageSize)),
|
|
4209
4207
|
current_page: currentPage,
|
|
4208
|
+
next_cursor: nextCursor,
|
|
4210
4209
|
request_id: meta.request_id ?? void 0,
|
|
4211
4210
|
timestamp: meta.timestamp ?? void 0
|
|
4212
4211
|
};
|
|
@@ -4419,9 +4418,7 @@ function ContactListView({ onNavigate, onContactSelect }) {
|
|
|
4419
4418
|
});
|
|
4420
4419
|
}, [onNavigate, onContactSelect]);
|
|
4421
4420
|
return /* @__PURE__ */ jsx(ContactsListScreen, {
|
|
4422
|
-
listContacts: useCallback((params) => api.listContacts(params), [api]),
|
|
4423
4421
|
deleteContacts: useCallback((ids) => api.bulkDeleteContacts(ids), [api]),
|
|
4424
|
-
queryKeyPrefix: QUERY_KEY_PREFIX,
|
|
4425
4422
|
tableLayout: "members",
|
|
4426
4423
|
onEditContact: handleSelectContact,
|
|
4427
4424
|
onRowClick: handleSelectContact,
|
|
@@ -4595,4 +4592,4 @@ const contactsScreenPropertySchema = {
|
|
|
4595
4592
|
//#endregion
|
|
4596
4593
|
export { ContactsScreen_exports as n, contactsScreenPropertySchema as r, ContactsScreen as t };
|
|
4597
4594
|
|
|
4598
|
-
//# sourceMappingURL=ContactsScreen-
|
|
4595
|
+
//# sourceMappingURL=ContactsScreen-BtBNMZzG.mjs.map
|