From 7cbaa35e3fe36d17a4f97d8d54e05fcc07238d99 Mon Sep 17 00:00:00 2001 From: Matan Yadaev Date: Wed, 12 Feb 2025 17:59:00 +0200 Subject: [PATCH] fix --- .../src/domains/business-reports/fetchers.ts | 11 +++++++---- packages/common/src/consts/index.ts | 10 +++++----- packages/common/src/schemas/report-schema.ts | 2 +- .../AdsAndSocialMedia/AdsAndSocialMedia.tsx | 18 ++++++++++-------- .../BusinessReportSummary.tsx | 3 ++- .../report/components/Ecosystem/Ecosystem.tsx | 2 +- .../EcosystemTable/EcosystemTable.tsx | 2 +- .../WebsiteCredibility/WebsiteCredibility.tsx | 6 +++--- .../components/templates/report/constants.ts | 4 ++-- 9 files changed, 32 insertions(+), 26 deletions(-) diff --git a/apps/backoffice-v2/src/domains/business-reports/fetchers.ts b/apps/backoffice-v2/src/domains/business-reports/fetchers.ts index d67eb40894..7b8100c0d2 100644 --- a/apps/backoffice-v2/src/domains/business-reports/fetchers.ts +++ b/apps/backoffice-v2/src/domains/business-reports/fetchers.ts @@ -13,17 +13,20 @@ import { MERCHANT_REPORT_STATUSES_MAP, MERCHANT_REPORT_TYPES, MERCHANT_REPORT_VERSIONS, + MerchantReportStatus, MerchantReportType, MerchantReportVersion, ReportSchema, } from '@ballerine/common'; +const statusOverrides = { + [MERCHANT_REPORT_STATUSES_MAP.failed]: MERCHANT_REPORT_STATUSES_MAP['in-progress'], + [MERCHANT_REPORT_STATUSES_MAP['quality-control']]: MERCHANT_REPORT_STATUSES_MAP['in-progress'], +} as const satisfies Partial>; + export const BusinessReportSchema = ReportSchema.transform(data => ({ ...data, - status: - data.status === MERCHANT_REPORT_STATUSES_MAP.failed - ? MERCHANT_REPORT_STATUSES_MAP['quality-control'] - : data.status, + status: data.status in statusOverrides ? statusOverrides[data.status] : data.status, website: data.website.url, riskLevel: data.status === MERCHANT_REPORT_STATUSES_MAP.completed ? data.riskLevel : null, data: data.status === MERCHANT_REPORT_STATUSES_MAP.completed ? data?.data : null, diff --git a/packages/common/src/consts/index.ts b/packages/common/src/consts/index.ts index 5914d781ec..c97efcac94 100644 --- a/packages/common/src/consts/index.ts +++ b/packages/common/src/consts/index.ts @@ -183,7 +183,7 @@ export type MerchantReportStatus = (typeof MERCHANT_REPORT_STATUSES)[number]; export const MERCHANT_REPORT_STATUSES_MAP = Object.fromEntries( MERCHANT_REPORT_STATUSES.map(status => [status, status]), -) as Record; +) as { [K in MerchantReportStatus]: K }; export const MERCHANT_REPORT_TYPES = ['MERCHANT_REPORT_T1', 'ONGOING_MERCHANT_REPORT_T1'] as const; @@ -191,7 +191,7 @@ export type MerchantReportType = (typeof MERCHANT_REPORT_TYPES)[number]; export const MERCHANT_REPORT_TYPES_MAP = Object.fromEntries( MERCHANT_REPORT_TYPES.map(type => [type, type]), -) as Record; +) as { [K in MerchantReportType]: K }; export const MERCHANT_REPORT_VERSIONS = ['1', '2', '3'] as const; @@ -199,7 +199,7 @@ export type MerchantReportVersion = (typeof MERCHANT_REPORT_VERSIONS)[number]; export const MERCHANT_REPORT_VERSIONS_MAP = Object.fromEntries( MERCHANT_REPORT_VERSIONS.map(version => [version, version]), -) as Record; +) as { [K in MerchantReportVersion]: K }; export const MERCHANT_REPORT_RISK_LEVELS = ['low', 'medium', 'high', 'critical'] as const; @@ -207,7 +207,7 @@ export type MerchantReportRiskLevel = (typeof MERCHANT_REPORT_RISK_LEVELS)[numbe export const MERCHANT_REPORT_RISK_LEVELS_MAP = Object.fromEntries( MERCHANT_REPORT_RISK_LEVELS.map(level => [level, level]), -) as Record; +) as { [K in MerchantReportRiskLevel]: K }; export const RISK_INDICATOR_RISK_LEVELS = ['positive', 'moderate', 'critical'] as const; @@ -215,4 +215,4 @@ export type RiskIndicatorRiskLevel = (typeof RISK_INDICATOR_RISK_LEVELS)[number] export const RISK_INDICATOR_RISK_LEVELS_MAP = Object.fromEntries( RISK_INDICATOR_RISK_LEVELS.map(level => [level, level]), -) as Record; +) as { [K in RiskIndicatorRiskLevel]: K }; diff --git a/packages/common/src/schemas/report-schema.ts b/packages/common/src/schemas/report-schema.ts index 229882f0a4..c03151f399 100644 --- a/packages/common/src/schemas/report-schema.ts +++ b/packages/common/src/schemas/report-schema.ts @@ -8,7 +8,7 @@ import { export const FacebookPageSchema = z.object({ id: z.string(), - url: z.string().nullish(), + url: z.string(), name: z.string().nullish(), email: z.string().nullish(), likes: z.number().nullish(), diff --git a/packages/ui/src/components/templates/report/components/AdsAndSocialMedia/AdsAndSocialMedia.tsx b/packages/ui/src/components/templates/report/components/AdsAndSocialMedia/AdsAndSocialMedia.tsx index cac09cc64f..eb947d083e 100644 --- a/packages/ui/src/components/templates/report/components/AdsAndSocialMedia/AdsAndSocialMedia.tsx +++ b/packages/ui/src/components/templates/report/components/AdsAndSocialMedia/AdsAndSocialMedia.tsx @@ -124,7 +124,7 @@ export const AdsAndSocialMedia = (pages: {

Social Media

- {AdsProviders.map(toLowerCase).map(provider => { + {AdsProviders.map(provider => { const page = pages[provider]; if (!page) { @@ -216,13 +216,15 @@ export const AdsAndSocialMedia = (pages: { })} href={url} > - {`${capitalize(provider)} + {screenshotUrl && ( + {`${capitalize(provider)} + )}
diff --git a/packages/ui/src/components/templates/report/components/BusinessReportSummary/BusinessReportSummary.tsx b/packages/ui/src/components/templates/report/components/BusinessReportSummary/BusinessReportSummary.tsx index 7ab9dd1c35..e5a818fa63 100644 --- a/packages/ui/src/components/templates/report/components/BusinessReportSummary/BusinessReportSummary.tsx +++ b/packages/ui/src/components/templates/report/components/BusinessReportSummary/BusinessReportSummary.tsx @@ -2,6 +2,7 @@ import React, { ComponentProps, FunctionComponent } from 'react'; import { getSeverityFromRiskScore, MERCHANT_REPORT_RISK_LEVELS_MAP, + MerchantReportRiskLevel, RiskIndicatorRiskLevel, Severity, SeverityType, @@ -21,7 +22,7 @@ export const BusinessReportSummary: FunctionComponent<{ search: string; riskIndicators: z.infer[] | null; }>; - riskLevel: string; + riskLevel: MerchantReportRiskLevel; homepageScreenshotUrl: string | null; Link: ComponentProps['Link']; }> = ({ sections, summary, ongoingMonitoringSummary, riskLevel, homepageScreenshotUrl, Link }) => { diff --git a/packages/ui/src/components/templates/report/components/Ecosystem/Ecosystem.tsx b/packages/ui/src/components/templates/report/components/Ecosystem/Ecosystem.tsx index 1363913488..6ab8613318 100644 --- a/packages/ui/src/components/templates/report/components/Ecosystem/Ecosystem.tsx +++ b/packages/ui/src/components/templates/report/components/Ecosystem/Ecosystem.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from 'react'; import { Card, CardContent, CardHeader } from '@/components'; import { EcosystemTable } from '@/components/templates/report/components/Ecosystem/components/EcosystemTable/EcosystemTable'; import { ContentTooltip } from '@/components/molecules/ContentTooltip/ContentTooltip'; -import { EcosystemRecordSchema } from '@/schemas/report-schema'; +import { EcosystemRecordSchema } from '@ballerine/common'; import { z } from 'zod'; export const Ecosystem: FunctionComponent<{ diff --git a/packages/ui/src/components/templates/report/components/Ecosystem/components/EcosystemTable/EcosystemTable.tsx b/packages/ui/src/components/templates/report/components/Ecosystem/components/EcosystemTable/EcosystemTable.tsx index 8607eaec62..c9736c588f 100644 --- a/packages/ui/src/components/templates/report/components/Ecosystem/components/EcosystemTable/EcosystemTable.tsx +++ b/packages/ui/src/components/templates/report/components/Ecosystem/components/EcosystemTable/EcosystemTable.tsx @@ -2,8 +2,8 @@ import React, { FunctionComponent } from 'react'; import { columns } from '@/components/templates/report/components/Ecosystem/components/EcosystemTable/columns'; import { DataTable } from '@/components/organisms/DataTable/DataTable'; import { ColumnDef } from '@tanstack/react-table'; -import { EcosystemRecordSchema } from '@/schemas/report-schema'; import { z } from 'zod'; +import { EcosystemRecordSchema } from '@ballerine/common'; export const EcosystemTable: FunctionComponent<{ data: z.infer[]; diff --git a/packages/ui/src/components/templates/report/components/WebsiteCredibility/WebsiteCredibility.tsx b/packages/ui/src/components/templates/report/components/WebsiteCredibility/WebsiteCredibility.tsx index 29ed37d602..ccf94e9d1c 100644 --- a/packages/ui/src/components/templates/report/components/WebsiteCredibility/WebsiteCredibility.tsx +++ b/packages/ui/src/components/templates/report/components/WebsiteCredibility/WebsiteCredibility.tsx @@ -73,11 +73,11 @@ export const WebsiteCredibility: FunctionComponent<{ }) => { // TODO: Ideally should happen on backend const trafficSources = useMemo(() => { - if (!trafficData.trafficSources?.length) { + if (!Object.keys(trafficData.trafficSources ?? {}).length) { return []; } - const values = Object.entries(trafficData.trafficSources) + const values = Object.entries(trafficData.trafficSources ?? {}) .map(([label, value]) => ({ label, value: Number((value * 100).toFixed(2)), @@ -211,7 +211,7 @@ export const WebsiteCredibility: FunctionComponent<{ > {!!websiteReputationRiskIndicators?.length && websiteReputationRiskIndicators.map(({ reason, sourceUrl }) => ( -
  • +
  • {reason} {!!sourceUrl && ( diff --git a/packages/ui/src/components/templates/report/constants.ts b/packages/ui/src/components/templates/report/constants.ts index 5c59eec119..45aeb7fb3c 100644 --- a/packages/ui/src/components/templates/report/constants.ts +++ b/packages/ui/src/components/templates/report/constants.ts @@ -1,8 +1,8 @@ import { ObjectValues } from '@ballerine/common'; export const AdsProvider = { - FACEBOOK: 'FACEBOOK', - INSTAGRAM: 'INSTAGRAM', + FACEBOOK: 'facebook', + INSTAGRAM: 'instagram', } as const; export const AdsProviders = [