Commit 0e005e2f authored by Max Alekseenko's avatar Max Alekseenko

fix useMarketplaceApps hook

parent af2ef281
...@@ -50,7 +50,7 @@ function sortApps(apps: Array<MarketplaceAppOverview>, favoriteApps: Array<strin ...@@ -50,7 +50,7 @@ function sortApps(apps: Array<MarketplaceAppOverview>, favoriteApps: Array<strin
export default function useMarketplaceApps( export default function useMarketplaceApps(
filter: string, filter: string,
selectedCategoryId: string = MarketplaceCategory.ALL, selectedCategoryId: string = MarketplaceCategory.ALL,
favoriteApps: Array<string> = [], favoriteApps: Array<string> | undefined,
isFavoriteAppsLoaded: boolean = false, // eslint-disable-line @typescript-eslint/no-inferrable-types isFavoriteAppsLoaded: boolean = false, // eslint-disable-line @typescript-eslint/no-inferrable-types
) { ) {
const fetch = useFetch(); const fetch = useFetch();
...@@ -65,7 +65,7 @@ export default function useMarketplaceApps( ...@@ -65,7 +65,7 @@ export default function useMarketplaceApps(
}, [ selectedCategoryId, isFavoriteAppsLoaded ]); // eslint-disable-line react-hooks/exhaustive-deps }, [ selectedCategoryId, isFavoriteAppsLoaded ]); // eslint-disable-line react-hooks/exhaustive-deps
const { isPlaceholderData, isError, error, data } = useQuery<unknown, ResourceError<unknown>, Array<MarketplaceAppOverview>>({ const { isPlaceholderData, isError, error, data } = useQuery<unknown, ResourceError<unknown>, Array<MarketplaceAppOverview>>({
queryKey: [ 'marketplace-dapps', lastFavoriteAppsRef.current ], queryKey: [ 'marketplace-dapps', lastFavoriteAppsRef.current, favoriteApps ],
queryFn: async() => { queryFn: async() => {
if (!feature.isEnabled) { if (!feature.isEnabled) {
return []; return [];
...@@ -78,11 +78,11 @@ export default function useMarketplaceApps( ...@@ -78,11 +78,11 @@ export default function useMarketplaceApps(
select: (data) => sortApps(data as Array<MarketplaceAppOverview>, lastFavoriteAppsRef.current || []), select: (data) => sortApps(data as Array<MarketplaceAppOverview>, lastFavoriteAppsRef.current || []),
placeholderData: feature.isEnabled ? Array(9).fill(MARKETPLACE_APP) : undefined, placeholderData: feature.isEnabled ? Array(9).fill(MARKETPLACE_APP) : undefined,
staleTime: Infinity, staleTime: Infinity,
enabled: feature.isEnabled && Boolean(lastFavoriteAppsRef.current), enabled: feature.isEnabled && (!favoriteApps || Boolean(lastFavoriteAppsRef.current)),
}); });
const displayedApps = React.useMemo(() => { const displayedApps = React.useMemo(() => {
return data?.filter(app => isAppNameMatches(filter, app) && isAppCategoryMatches(selectedCategoryId, app, favoriteApps)) || []; return data?.filter(app => isAppNameMatches(filter, app) && isAppCategoryMatches(selectedCategoryId, app, favoriteApps || [])) || [];
}, [ selectedCategoryId, data, filter, favoriteApps ]); }, [ selectedCategoryId, data, filter, favoriteApps ]);
return React.useMemo(() => ({ return React.useMemo(() => ({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment