Commit 00ed752a authored by Max Alekseenko's avatar Max Alekseenko

change format of security reports data

parent 4d3ce52b
...@@ -83,20 +83,9 @@ export default function useMarketplaceApps( ...@@ -83,20 +83,9 @@ export default function useMarketplaceApps(
enabled: feature.isEnabled, enabled: feature.isEnabled,
}); });
const appsWithSecurityReports = React.useMemo(() => { const appsWithSecurityReports = React.useMemo(() =>
if (!securityReports && !isSecurityReportsPlaceholderData) { data?.map((app) => ({ ...app, securityReport: securityReports?.[app.id] })),
return data; [ data, securityReports ]);
}
return data?.map((app) => {
const securityReport = securityReports?.find(item => item.appName === app.id)?.chainsData[config.chain.id || ''];
if (securityReport) {
const issues: Record<string, number> = securityReport.overallInfo.issueSeverityDistribution;
securityReport.overallInfo.totalIssues = Object.values(issues).reduce((acc, val) => acc + val, 0);
securityReport.overallInfo.securityScore = Number(securityReport.overallInfo.securityScore.toFixed(2));
}
return { ...app, securityReport };
});
}, [ data, securityReports, isSecurityReportsPlaceholderData ]);
const displayedApps = React.useMemo(() => { const displayedApps = React.useMemo(() => {
return appsWithSecurityReports?.filter(app => isAppNameMatches(filter, app) && isAppCategoryMatches(selectedCategoryId, app, favoriteApps)) || []; return appsWithSecurityReports?.filter(app => isAppNameMatches(filter, app) && isAppCategoryMatches(selectedCategoryId, app, favoriteApps)) || [];
......
...@@ -10,10 +10,23 @@ const securityReportsUrl = (feature.isEnabled && feature.securityReportsUrl) || ...@@ -10,10 +10,23 @@ const securityReportsUrl = (feature.isEnabled && feature.securityReportsUrl) ||
export default function useSecurityReports() { export default function useSecurityReports() {
const apiFetch = useApiFetch(); const apiFetch = useApiFetch();
return useQuery<unknown, ResourceError<unknown>, Array<any>>({ // eslint-disable-line @typescript-eslint/no-explicit-any return useQuery<unknown, ResourceError<unknown>, Record<string, any>>({ // eslint-disable-line @typescript-eslint/no-explicit-any
queryKey: [ 'marketplace-security-reports' ], queryKey: [ 'marketplace-security-reports' ],
queryFn: async() => apiFetch(securityReportsUrl, undefined, { resource: 'marketplace-security-reports' }), queryFn: async() => apiFetch(securityReportsUrl, undefined, { resource: 'marketplace-security-reports' }),
placeholderData: securityReportsUrl ? [] : undefined, select: (data) => {
const securityReports: Record<string, any> = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
(data as Array<any>).forEach((item) => { // eslint-disable-line @typescript-eslint/no-explicit-any
const report = item.chainsData[config.chain.id || ''];
if (report) {
const issues: Record<string, number> = report.overallInfo.issueSeverityDistribution;
report.overallInfo.totalIssues = Object.values(issues).reduce((acc, val) => acc + val, 0);
report.overallInfo.securityScore = Number(report.overallInfo.securityScore.toFixed(2));
}
securityReports[item.appName] = report;
});
return securityReports;
},
placeholderData: securityReportsUrl ? {} : undefined,
staleTime: Infinity, staleTime: Infinity,
enabled: Boolean(securityReportsUrl), enabled: Boolean(securityReportsUrl),
}); });
......
...@@ -106,7 +106,6 @@ const MarketplaceApp = () => { ...@@ -106,7 +106,6 @@ const MarketplaceApp = () => {
useAutoConnectWallet(); useAutoConnectWallet();
const { data: securityReports, isPending: isSecurityReportsPending } = useSecurityReports(); const { data: securityReports, isPending: isSecurityReportsPending } = useSecurityReports();
const securityReport = securityReports?.find(item => item.appName === id)?.chainsData[config.chain.id || ''];
const query = useQuery<unknown, ResourceError<unknown>, MarketplaceAppOverview>({ const query = useQuery<unknown, ResourceError<unknown>, MarketplaceAppOverview>({
queryKey: [ 'marketplace-dapps', id ], queryKey: [ 'marketplace-dapps', id ],
...@@ -148,7 +147,7 @@ const MarketplaceApp = () => { ...@@ -148,7 +147,7 @@ const MarketplaceApp = () => {
data={ data } data={ data }
isLoading={ isPending || isSecurityReportsPending } isLoading={ isPending || isSecurityReportsPending }
isWalletConnected={ Boolean(address) } isWalletConnected={ Boolean(address) }
securityReport={ securityReport } securityReport={ securityReports?.[id] }
/> />
<DappscoutIframeProvider <DappscoutIframeProvider
address={ address } address={ address }
......
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