Commit c02cd333 authored by Max Alekseenko's avatar Max Alekseenko

replace type

parent 17dced86
...@@ -22,7 +22,10 @@ export type MarketplaceAppOverview = MarketplaceAppPreview & MarketplaceAppSocia ...@@ -22,7 +22,10 @@ export type MarketplaceAppOverview = MarketplaceAppPreview & MarketplaceAppSocia
author: string; author: string;
description: string; description: string;
site?: string; site?: string;
securityReport?: any; // eslint-disable-line @typescript-eslint/no-explicit-any }
export type MarketplaceAppWithSecurityReport = MarketplaceAppOverview & {
securityReport: any; // eslint-disable-line @typescript-eslint/no-explicit-any
} }
export enum MarketplaceCategory { export enum MarketplaceCategory {
......
import { test, expect, devices } from '@playwright/experimental-ct-react'; import { test, expect, devices } from '@playwright/experimental-ct-react';
import React from 'react'; import React from 'react';
import type { MarketplaceAppWithSecurityReport } from 'types/client/marketplace';
import { apps as appsMock } from 'mocks/apps/apps'; import { apps as appsMock } from 'mocks/apps/apps';
import TestApp from 'playwright/TestApp'; import TestApp from 'playwright/TestApp';
...@@ -10,7 +12,7 @@ const props = { ...@@ -10,7 +12,7 @@ const props = {
onClose: () => {}, onClose: () => {},
onFavoriteClick: () => {}, onFavoriteClick: () => {},
showContractList: () => {}, showContractList: () => {},
data: appsMock[0], data: appsMock[0] as MarketplaceAppWithSecurityReport,
isFavorite: false, isFavorite: false,
}; };
......
...@@ -4,7 +4,7 @@ import { ...@@ -4,7 +4,7 @@ import {
} from '@chakra-ui/react'; } from '@chakra-ui/react';
import React, { useCallback } from 'react'; import React, { useCallback } from 'react';
import type { MarketplaceAppOverview } from 'types/client/marketplace'; import type { MarketplaceAppWithSecurityReport } from 'types/client/marketplace';
import { ContractListTypes } from 'types/client/marketplace'; import { ContractListTypes } from 'types/client/marketplace';
import useIsMobile from 'lib/hooks/useIsMobile'; import useIsMobile from 'lib/hooks/useIsMobile';
...@@ -20,7 +20,7 @@ type Props = { ...@@ -20,7 +20,7 @@ type Props = {
onClose: () => void; onClose: () => void;
isFavorite: boolean; isFavorite: boolean;
onFavoriteClick: (id: string, isFavorite: boolean) => void; onFavoriteClick: (id: string, isFavorite: boolean) => void;
data: MarketplaceAppOverview; data: MarketplaceAppWithSecurityReport;
showContractList: (id: string, type: ContractListTypes) => void; showContractList: (id: string, type: ContractListTypes) => void;
} }
......
...@@ -2,7 +2,7 @@ import { Hide, Show } from '@chakra-ui/react'; ...@@ -2,7 +2,7 @@ import { Hide, Show } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import type { MouseEvent } from 'react'; import type { MouseEvent } from 'react';
import type { MarketplaceAppOverview, ContractListTypes } from 'types/client/marketplace'; import type { MarketplaceAppWithSecurityReport, ContractListTypes } from 'types/client/marketplace';
import { MarketplaceCategory } from 'types/client/marketplace'; import { MarketplaceCategory } from 'types/client/marketplace';
import { apos } from 'lib/html-entities'; import { apos } from 'lib/html-entities';
...@@ -14,7 +14,7 @@ import ListItem from './MarketplaceListWithScores/ListItem'; ...@@ -14,7 +14,7 @@ import ListItem from './MarketplaceListWithScores/ListItem';
import Table from './MarketplaceListWithScores/Table'; import Table from './MarketplaceListWithScores/Table';
interface Props { interface Props {
apps: Array<MarketplaceAppOverview>; apps: Array<MarketplaceAppWithSecurityReport>;
showAppInfo: (id: string) => void; showAppInfo: (id: string) => void;
favoriteApps: Array<string>; favoriteApps: Array<string>;
onFavoriteClick: (id: string, isFavorite: boolean) => void; onFavoriteClick: (id: string, isFavorite: boolean) => void;
......
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import React from 'react'; import React from 'react';
import type { MarketplaceAppOverview } from 'types/client/marketplace'; import type { MarketplaceAppWithSecurityReport } from 'types/client/marketplace';
import { MarketplaceCategory } from 'types/client/marketplace'; import { MarketplaceCategory } from 'types/client/marketplace';
import config from 'configs/app'; import config from 'configs/app';
...@@ -14,17 +14,17 @@ import useSecurityReports from './useSecurityReports'; ...@@ -14,17 +14,17 @@ import useSecurityReports from './useSecurityReports';
const feature = config.features.marketplace; const feature = config.features.marketplace;
function isAppNameMatches(q: string, app: MarketplaceAppOverview) { function isAppNameMatches(q: string, app: MarketplaceAppWithSecurityReport) {
return app.title.toLowerCase().includes(q.toLowerCase()); return app.title.toLowerCase().includes(q.toLowerCase());
} }
function isAppCategoryMatches(category: string, app: MarketplaceAppOverview, favoriteApps: Array<string>) { function isAppCategoryMatches(category: string, app: MarketplaceAppWithSecurityReport, favoriteApps: Array<string>) {
return category === MarketplaceCategory.ALL || return category === MarketplaceCategory.ALL ||
(category === MarketplaceCategory.FAVORITES && favoriteApps.includes(app.id)) || (category === MarketplaceCategory.FAVORITES && favoriteApps.includes(app.id)) ||
app.categories.includes(category); app.categories.includes(category);
} }
function sortApps(apps: Array<MarketplaceAppOverview>, favoriteApps: Array<string>) { function sortApps(apps: Array<MarketplaceAppWithSecurityReport>, favoriteApps: Array<string>) {
return apps.sort((a, b) => { return apps.sort((a, b) => {
const priorityA = a.priority || 0; const priorityA = a.priority || 0;
const priorityB = b.priority || 0; const priorityB = b.priority || 0;
...@@ -66,18 +66,18 @@ export default function useMarketplaceApps( ...@@ -66,18 +66,18 @@ export default function useMarketplaceApps(
lastFavoriteAppsRef.current = favoriteApps; lastFavoriteAppsRef.current = favoriteApps;
}, [ 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<MarketplaceAppWithSecurityReport>>({
queryKey: [ 'marketplace-dapps' ], queryKey: [ 'marketplace-dapps' ],
queryFn: async() => { queryFn: async() => {
if (!feature.isEnabled) { if (!feature.isEnabled) {
return []; return [];
} else if ('configUrl' in feature) { } else if ('configUrl' in feature) {
return fetch<Array<MarketplaceAppOverview>, unknown>(feature.configUrl, undefined, { resource: 'marketplace-dapps' }); return fetch<Array<MarketplaceAppWithSecurityReport>, unknown>(feature.configUrl, undefined, { resource: 'marketplace-dapps' });
} else { } else {
return apiFetch('marketplace_dapps', { pathParams: { chainId: config.chain.id } }); return apiFetch('marketplace_dapps', { pathParams: { chainId: config.chain.id } });
} }
}, },
select: (data) => sortApps(data as Array<MarketplaceAppOverview>, lastFavoriteAppsRef.current), select: (data) => sortApps(data as Array<MarketplaceAppWithSecurityReport>, 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, enabled: feature.isEnabled,
......
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