@povio/ui 3.2.2-rc.4 → 3.2.2-rc.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.
@@ -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,23 @@ 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
  ids: selectedIdsToResolve
27
33
  }, {
28
34
  ...queryOptions,
29
- enabled: resolveSelectedItemsWithIds && isQueryEnabled && shouldResolveSelectedItems && (queryOptions?.enabled ?? true)
35
+ enabled: shouldUseSelectedItemsQuery && (queryOptions?.enabled ?? true)
30
36
  });
31
- const selectedItemsData = selectedItemsQueryResult.data;
32
- const isInfiniteQueryResult = (result) => {
33
- return "hasNextPage" in result && "fetchNextPage" in result;
34
- };
35
37
  const handleEnableQuery = () => {
36
38
  setIsQueryEnabled(true);
37
39
  };
@@ -41,19 +43,22 @@ var useQueryAutocomplete = ({ query, queryParams, queryOptions, mapItems, resolv
41
43
  const fetchNextPage = infiniteQueryResult?.fetchNextPage;
42
44
  const isFetchingNextPage = infiniteQueryResult?.isFetchingNextPage ?? false;
43
45
  const totalItems = infiniteQueryResult?.data?.pages?.[0]?.totalItems;
46
+ const shouldUseOnlySelectedItemsQuery = shouldUseSelectedItemsQuery && !isQueryEnabled;
47
+ const queryData = getDataForMapping(queryResult);
48
+ const selectedItemsQueryData = getDataForMapping(selectedItemsQueryResult);
49
+ const itemsQueryData = shouldUseOnlySelectedItemsQuery ? selectedItemsQueryData : queryData;
50
+ const selectedItemsDataToMerge = shouldUseOnlySelectedItemsQuery ? void 0 : selectedItemsQueryData;
44
51
  const items = useMemo(() => {
45
- const extractedData = data ? isInfiniteQuery ? data.pages?.flatMap((page) => page?.items ?? []) : data : void 0;
46
- const queryItems = extractedData ? mapItems(extractedData) : [];
52
+ const queryItems = itemsQueryData ? mapItems(itemsQueryData) : [];
47
53
  const itemsById = new Map(queryItems.map((item) => [item.id, item]));
48
- (selectedItemsData ? mapItems(selectedItemsData) : []).forEach((item_0) => {
54
+ (selectedItemsDataToMerge ? mapItems(selectedItemsDataToMerge) : []).forEach((item_0) => {
49
55
  itemsById.set(item_0.id, item_0);
50
56
  });
51
57
  return Array.from(itemsById.values());
52
58
  }, [
53
- data,
54
- isInfiniteQuery,
59
+ itemsQueryData,
55
60
  mapItems,
56
- selectedItemsData
61
+ selectedItemsDataToMerge
57
62
  ]);
58
63
  const selectedIdsToResolveSet = useMemo(() => new Set(selectedIdsToResolve), [selectedIdsToResolve]);
59
64
  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.5",
4
4
  "type": "module",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",