@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 [isQueryEnabled, setIsQueryEnabled] = useState(!initialQueryState);
10
- const queryResult = query(search === void 0 ? queryParams : {
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
- ids: selectedIdsToResolve
32
+ filter: {
33
+ ...isFilterSearchParams(queryParams) ? queryParams.filter : {},
34
+ ids: selectedIdsToResolve
35
+ }
27
36
  }, {
28
37
  ...queryOptions,
29
- enabled: resolveSelectedItemsWithIds && isQueryEnabled && shouldResolveSelectedItems && (queryOptions?.enabled ?? true)
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 extractedData = data ? isInfiniteQuery ? data.pages?.flatMap((page) => page?.items ?? []) : data : void 0;
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
- (selectedItemsData ? mapItems(selectedItemsData) : []).forEach((item_0) => {
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
- data,
54
- isInfiniteQuery,
62
+ itemsQueryData,
55
63
  mapItems,
56
- selectedItemsData
64
+ selectedItemsDataToMerge
57
65
  ]);
58
66
  const selectedIdsToResolveSet = useMemo(() => new Set(selectedIdsToResolve), [selectedIdsToResolve]);
59
67
  const handleFetchNextPage = useCallback(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@povio/ui",
3
- "version": "3.2.2-rc.4",
3
+ "version": "3.2.2-rc.6",
4
4
  "type": "module",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",