@povio/ui 3.2.2-rc.4 → 3.2.2-rc.6
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.
|
@@ -6,8 +6,10 @@ var isFilterSearchParams = (params) => {
|
|
|
6
6
|
};
|
|
7
7
|
var useQueryAutocomplete = ({ query, queryParams, queryOptions, mapItems, resolveSelectedItemsWithIds = false, initialQueryState, search, selectedIdsToResolve = [] }) => {
|
|
8
8
|
"use no memo";
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const shouldResolveSelectedItems = selectedIdsToResolve.length > 0;
|
|
10
|
+
const shouldUseSelectedItemsQuery = resolveSelectedItemsWithIds && shouldResolveSelectedItems;
|
|
11
|
+
const [isQueryEnabled, setIsQueryEnabled] = useState(!initialQueryState && !shouldUseSelectedItemsQuery);
|
|
12
|
+
const resolvedQueryParams = search === void 0 ? queryParams : {
|
|
11
13
|
...queryParams,
|
|
12
14
|
limit: queryParams?.limit ?? ApiQueryUtils.DEFAULT_LIMIT,
|
|
13
15
|
search,
|
|
@@ -15,23 +17,26 @@ var useQueryAutocomplete = ({ query, queryParams, queryOptions, mapItems, resolv
|
|
|
15
17
|
...isFilterSearchParams(queryParams) ? queryParams.filter : {},
|
|
16
18
|
search
|
|
17
19
|
}
|
|
18
|
-
}
|
|
20
|
+
};
|
|
21
|
+
const isInfiniteQueryResult = (result) => {
|
|
22
|
+
return "hasNextPage" in result && "fetchNextPage" in result;
|
|
23
|
+
};
|
|
24
|
+
const getDataForMapping = (result_0) => isInfiniteQueryResult(result_0) ? result_0.data?.pages?.flatMap((page) => page?.items ?? []) : result_0.data;
|
|
25
|
+
const queryResult = query(resolvedQueryParams, {
|
|
19
26
|
...queryOptions,
|
|
20
27
|
enabled: isQueryEnabled && (queryOptions?.enabled ?? true)
|
|
21
28
|
});
|
|
22
29
|
const data = queryResult.data;
|
|
23
|
-
const shouldResolveSelectedItems = selectedIdsToResolve.length > 0;
|
|
24
30
|
const selectedItemsQueryResult = query({
|
|
25
31
|
...queryParams,
|
|
26
|
-
|
|
32
|
+
filter: {
|
|
33
|
+
...isFilterSearchParams(queryParams) ? queryParams.filter : {},
|
|
34
|
+
ids: selectedIdsToResolve
|
|
35
|
+
}
|
|
27
36
|
}, {
|
|
28
37
|
...queryOptions,
|
|
29
|
-
enabled:
|
|
38
|
+
enabled: shouldUseSelectedItemsQuery && (queryOptions?.enabled ?? true)
|
|
30
39
|
});
|
|
31
|
-
const selectedItemsData = selectedItemsQueryResult.data;
|
|
32
|
-
const isInfiniteQueryResult = (result) => {
|
|
33
|
-
return "hasNextPage" in result && "fetchNextPage" in result;
|
|
34
|
-
};
|
|
35
40
|
const handleEnableQuery = () => {
|
|
36
41
|
setIsQueryEnabled(true);
|
|
37
42
|
};
|
|
@@ -41,19 +46,22 @@ var useQueryAutocomplete = ({ query, queryParams, queryOptions, mapItems, resolv
|
|
|
41
46
|
const fetchNextPage = infiniteQueryResult?.fetchNextPage;
|
|
42
47
|
const isFetchingNextPage = infiniteQueryResult?.isFetchingNextPage ?? false;
|
|
43
48
|
const totalItems = infiniteQueryResult?.data?.pages?.[0]?.totalItems;
|
|
49
|
+
const shouldUseOnlySelectedItemsQuery = shouldUseSelectedItemsQuery && !isQueryEnabled;
|
|
50
|
+
const queryData = getDataForMapping(queryResult);
|
|
51
|
+
const selectedItemsQueryData = getDataForMapping(selectedItemsQueryResult);
|
|
52
|
+
const itemsQueryData = shouldUseOnlySelectedItemsQuery ? selectedItemsQueryData : queryData;
|
|
53
|
+
const selectedItemsDataToMerge = shouldUseOnlySelectedItemsQuery ? void 0 : selectedItemsQueryData;
|
|
44
54
|
const items = useMemo(() => {
|
|
45
|
-
const
|
|
46
|
-
const queryItems = extractedData ? mapItems(extractedData) : [];
|
|
55
|
+
const queryItems = itemsQueryData ? mapItems(itemsQueryData) : [];
|
|
47
56
|
const itemsById = new Map(queryItems.map((item) => [item.id, item]));
|
|
48
|
-
(
|
|
57
|
+
(selectedItemsDataToMerge ? mapItems(selectedItemsDataToMerge) : []).forEach((item_0) => {
|
|
49
58
|
itemsById.set(item_0.id, item_0);
|
|
50
59
|
});
|
|
51
60
|
return Array.from(itemsById.values());
|
|
52
61
|
}, [
|
|
53
|
-
|
|
54
|
-
isInfiniteQuery,
|
|
62
|
+
itemsQueryData,
|
|
55
63
|
mapItems,
|
|
56
|
-
|
|
64
|
+
selectedItemsDataToMerge
|
|
57
65
|
]);
|
|
58
66
|
const selectedIdsToResolveSet = useMemo(() => new Set(selectedIdsToResolve), [selectedIdsToResolve]);
|
|
59
67
|
const handleFetchNextPage = useCallback(() => {
|