Skip to content

Commit ac65909

Browse files
authoredNov 8, 2024··
Demo envs changes (#2813)
* wip changes for demo envs * feat(*): changes * fix(backoffice-v2): fixed useCollectionFlowUrlMutation

File tree

15 files changed

+164
-60
lines changed

15 files changed

+164
-60
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{
22
"home": {
33
"greeting": "Welcome"
4+
},
5+
"business_report_creation": {
6+
"is_disabled": "Contact Ballerine for access"
47
}
58
}

‎apps/backoffice-v2/src/common/components/organisms/Header/hooks/useNavbarLogic/useNavbarLogic.tsx

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useFiltersQuery } from '@/domains/filters/hooks/queries/useFiltersQuery/useFiltersQuery';
22
import { useFilterId } from '@/common/hooks/useFilterId/useFilterId';
33
import { useCallback, useMemo } from 'react';
4-
import { Building, Goal, Home, Users } from 'lucide-react';
4+
import { Building, Goal, Home, MonitorDot, Users } from 'lucide-react';
55
import { TRoutes, TRouteWithChildren } from '@/Router/types';
66
import { useLocation } from 'react-router-dom';
77
import { useCustomerQuery } from '@/domains/customer/hooks/queries/useCustomerQuery/useCustomerQuery';
@@ -28,26 +28,26 @@ export const useNavbarLogic = () => {
2828
href: `/${locale}/home`,
2929
key: 'nav-item-Home',
3030
},
31+
...(customer?.config?.isMerchantMonitoringEnabled
32+
? [
33+
{
34+
text: 'Merchant Monitoring',
35+
icon: <MonitorDot size={20} />,
36+
href: `/en/merchant-monitoring`,
37+
key: 'nav-item-merchant-monitoring',
38+
},
39+
]
40+
: []),
3141
{
3242
text: 'Businesses',
3343
icon: <Building size={20} />,
34-
children: [
35-
...(customer?.config?.isMerchantMonitoringEnabled
36-
? [
37-
{
38-
text: 'Merchant Monitoring',
39-
href: `/en/merchant-monitoring`,
40-
key: 'nav-item-merchant-monitoring',
41-
},
42-
]
43-
: []),
44-
...(businessesFilters?.map(({ id, name }) => ({
44+
children:
45+
businessesFilters?.map(({ id, name }) => ({
4546
filterId: id,
4647
text: name,
4748
href: `/${locale}/case-management/entities?filterId=${id}`,
4849
key: `nav-item-${id}`,
49-
})) ?? []),
50-
],
50+
})) ?? [],
5151
key: 'nav-item-businesses',
5252
},
5353
{

‎apps/backoffice-v2/src/domains/auth/hooks/mutations/useSignOutMutation/useSignOutMutation.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import { useLocation, useNavigate } from 'react-router-dom';
33
import { ISignInProps } from '../useSignInMutation/interfaces';
44
import { authQueryKeys } from '../../../query-keys';
55
import { fetchSignOut } from '../../../fetchers';
6+
import { customerQueryKeys } from '@/domains/customer/query-keys';
67

78
export const useSignOutMutation = () => {
89
const queryClient = useQueryClient();
910
const navigate = useNavigate();
1011
const authenticatedUser = authQueryKeys.authenticatedUser();
12+
const customer = customerQueryKeys.getCurrent();
1113
const { state } = useLocation();
1214

1315
return useMutation({
@@ -22,6 +24,7 @@ export const useSignOutMutation = () => {
2224
queryClient.setQueryData(authenticatedUser.queryKey, {
2325
user: undefined,
2426
});
27+
queryClient.setQueryData(customer.queryKey, undefined);
2528

2629
if (!callbackUrl || !redirect) return;
2730

‎apps/backoffice-v2/src/domains/metrics/hooks/queries/useHomeMetricsQuery/useHomeMetricsQuery.ts

+20
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,26 @@ export const HomeMetricsOutputSchema = z.object({
2424
inProgress: ReportsByRiskLevelSchema,
2525
approved: ReportsByRiskLevelSchema,
2626
}),
27+
cases: z.object({
28+
all: z.object({
29+
low: z.number(),
30+
medium: z.number(),
31+
high: z.number(),
32+
critical: z.number(),
33+
}),
34+
inProgress: z.object({
35+
low: z.number(),
36+
medium: z.number(),
37+
high: z.number(),
38+
critical: z.number(),
39+
}),
40+
approved: z.object({
41+
low: z.number(),
42+
medium: z.number(),
43+
high: z.number(),
44+
critical: z.number(),
45+
}),
46+
}),
2747
});
2848

2949
export const fetchHomeMetrics = async () => {

‎apps/backoffice-v2/src/lib/blocks/variants/WebsiteMonitoringBlocks/hooks/useWebsiteMonitoringReportBlock/useWebsiteMonitoringReportBlock.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ import React, { useMemo } from 'react';
33
import { useCurrentCaseQuery } from '@/pages/Entity/hooks/useCurrentCaseQuery/useCurrentCaseQuery';
44
import { WebsiteMonitoringBusinessReportTab } from '@/lib/blocks/variants/WebsiteMonitoringBlocks/hooks/useWebsiteMonitoringReportBlock/WebsiteMonitoringBusinessReportTab';
55
import { useBusinessReportByIdQuery } from '@/domains/business-reports/hooks/queries/useBusinessReportByIdQuery/useBusinessReportByIdQuery';
6+
import { useCustomerQuery } from '@/domains/customer/hooks/queries/useCustomerQuery/useCustomerQuery';
67

78
export const useWebsiteMonitoringReportBlock = () => {
89
const { data: workflow } = useCurrentCaseQuery();
9-
const { data: businessReport } = useBusinessReportByIdQuery({
10+
const { data: customer } = useCustomerQuery();
11+
const { data: nonContextBusinessReport } = useBusinessReportByIdQuery({
1012
id: workflow?.context?.pluginsOutput?.merchantMonitoring?.reportId ?? '',
1113
});
14+
const businessReport = customer?.config?.isDemo
15+
? workflow?.context?.pluginsOutput?.merchantMonitoring
16+
: nonContextBusinessReport;
1217

1318
const blocks = useMemo(() => {
1419
if (!businessReport?.data) {

‎apps/backoffice-v2/src/pages/Entity/components/Case/components/CaseOptions/hooks/useCaseOptionsLogic/useCaseOptionsLogic.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useCustomerQuery } from '@/domains/customer/hooks/queries/useCustomerQuery/useCustomerQuery';
22
import { useCurrentCaseQuery } from '@/pages/Entity/hooks/useCurrentCaseQuery/useCurrentCaseQuery';
33
import { useGeneratePDFMutation } from '@/pages/Entity/components/Case/components/CaseOptions/hooks/useCaseOptionsLogic/mutations/useGeneratePDFMutation/useGeneratePDFMutation';
4-
import { useCopyCollectionFlowLinkMutation } from './mutations/CopyingCollectionFlowLinkMutation';
4+
import { useCopyCollectionFlowLinkMutation } from './mutations/useCopyCollectionFlowLinkMutation/useCopyCollectionFlowLinkMutation';
55

66
export const useCaseOptionsLogic = () => {
77
const { data: workflow } = useCurrentCaseQuery();

‎apps/backoffice-v2/src/pages/MerchantMonitoring/MerchantMonitoring.page.tsx

+57-26
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ import { Plus, Table2 } from 'lucide-react';
99
import { Link } from 'react-router-dom';
1010
import { Search } from '@/common/components/molecules/Search';
1111
import { Skeleton } from '@ballerine/ui';
12+
import { TooltipProvider } from '@/common/components/atoms/Tooltip/Tooltip.Provider';
13+
import { Tooltip } from '@/common/components/atoms/Tooltip/Tooltip';
14+
import { TooltipTrigger } from '@/common/components/atoms/Tooltip/Tooltip.Trigger';
15+
import { TooltipContent } from '@/common/components/atoms/Tooltip/Tooltip.Content';
16+
import { t } from 'i18next';
1217

1318
export const MerchantMonitoring: FunctionComponent = () => {
1419
const {
@@ -32,32 +37,58 @@ export const MerchantMonitoring: FunctionComponent = () => {
3237
<div className="flex h-full flex-col space-y-4 px-6 pb-6 pt-10">
3338
<div className={`flex justify-between`}>
3439
<h1 className="pb-5 text-2xl font-bold">Merchant Monitoring</h1>
35-
{createBusinessReport?.enabled && (
36-
<div className={`flex space-x-3`}>
37-
{createBusinessReportBatch?.enabled && (
38-
<Link
39-
className={buttonVariants({
40-
variant: 'outline',
41-
className: 'flex items-center justify-start gap-2 font-semibold',
42-
})}
43-
to={`/${locale}/merchant-monitoring/upload-multiple-merchants`}
44-
>
45-
<Table2 />
46-
<span>Upload Multiple Merchants</span>
47-
</Link>
48-
)}
49-
<Link
50-
className={buttonVariants({
51-
variant: 'outline',
52-
className: 'flex items-center justify-start gap-2 font-semibold',
53-
})}
54-
to={`/${locale}/merchant-monitoring/create-check`}
55-
>
56-
<Plus />
57-
<span>Create Merchant Check</span>
58-
</Link>
59-
</div>
60-
)}
40+
<div className={`flex space-x-3`}>
41+
<TooltipProvider delayDuration={0}>
42+
<Tooltip>
43+
<TooltipTrigger className={`flex items-center`} asChild>
44+
<div>
45+
<Link
46+
className={buttonVariants({
47+
variant: 'outline',
48+
className:
49+
'flex items-center justify-start gap-2 font-semibold aria-disabled:pointer-events-none aria-disabled:opacity-50',
50+
})}
51+
to={`/${locale}/merchant-monitoring/upload-multiple-merchants`}
52+
aria-disabled={!createBusinessReportBatch?.enabled}
53+
>
54+
<Table2 />
55+
<span>Upload Multiple Merchants</span>
56+
</Link>
57+
</div>
58+
</TooltipTrigger>
59+
{!createBusinessReportBatch?.enabled && (
60+
<TooltipContent side={'left'} align={'start'}>
61+
{t('business_report_creation.is_disabled')}
62+
</TooltipContent>
63+
)}
64+
</Tooltip>
65+
</TooltipProvider>
66+
<TooltipProvider delayDuration={0}>
67+
<Tooltip>
68+
<TooltipTrigger className={`flex items-center`} asChild>
69+
<div>
70+
<Link
71+
className={buttonVariants({
72+
variant: 'outline',
73+
className:
74+
'flex items-center justify-start gap-2 font-semibold aria-disabled:pointer-events-none aria-disabled:opacity-50',
75+
})}
76+
to={`/${locale}/merchant-monitoring/create-check`}
77+
aria-disabled={!createBusinessReport?.enabled}
78+
>
79+
<Plus />
80+
<span>Create Merchant Check</span>
81+
</Link>
82+
</div>
83+
</TooltipTrigger>
84+
{!createBusinessReport?.enabled && (
85+
<TooltipContent side={'left'} align={'start'}>
86+
{t('business_report_creation.is_disabled')}
87+
</TooltipContent>
88+
)}
89+
</Tooltip>
90+
</TooltipProvider>
91+
</div>
6192
</div>
6293
{!!businessReports?.length && (
6394
<div className={`flex`}>

‎apps/backoffice-v2/src/pages/Statistics/Statistics.page.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ export const Statistics: FunctionComponent = () => {
2121
<h1 className={'pb-5 text-2xl font-bold'}>Statistics</h1>
2222
<div className={'flex flex-col space-y-8'}>
2323
<UserStatistics fullName={'John Doe'} />
24-
<PortfolioRiskStatistics riskIndicators={data.riskIndicators} reports={data.reports} />
24+
<PortfolioRiskStatistics
25+
riskIndicators={data.riskIndicators}
26+
reports={data.reports}
27+
cases={data.cases}
28+
/>
2529
<WorkflowStatistics />
2630
</div>
2731
</div>

‎apps/backoffice-v2/src/pages/Statistics/components/PortfolioRiskStatistics/PortfolioRiskStatistics.tsx

+7-7
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ import { usePortfolioRiskStatisticsLogic } from '@/pages/Statistics/components/P
1919
import { z } from 'zod';
2020
import { HomeMetricsOutputSchema } from '@/domains/metrics/hooks/queries/useHomeMetricsQuery/useHomeMetricsQuery';
2121

22-
export const PortfolioRiskStatistics: FunctionComponent<{
23-
riskIndicators: z.infer<typeof HomeMetricsOutputSchema>['riskIndicators'];
24-
reports: z.infer<typeof HomeMetricsOutputSchema>['reports'];
25-
}> = ({ riskIndicators, reports }) => {
22+
export const PortfolioRiskStatistics: FunctionComponent<
23+
z.infer<typeof HomeMetricsOutputSchema>
24+
> = ({ riskIndicators, reports, cases }) => {
2625
const {
2726
riskLevelToFillColor,
2827
parent,
@@ -36,6 +35,7 @@ export const PortfolioRiskStatistics: FunctionComponent<{
3635
} = usePortfolioRiskStatisticsLogic({
3736
riskIndicators,
3837
reports,
38+
cases,
3939
});
4040

4141
return (
@@ -58,13 +58,13 @@ export const PortfolioRiskStatistics: FunctionComponent<{
5858
dominantBaseline="middle"
5959
className={'text-lg font-bold'}
6060
>
61-
{Object.values(reports.approved).reduce((acc, curr) => acc + curr, 0)}
61+
{Object.values(cases.approved).reduce((acc, curr) => acc + curr, 0)}
6262
</text>
6363
<text x={92} y={102} textAnchor="middle" dominantBaseline="middle">
6464
Merchants
6565
</text>
6666
<Pie
67-
data={Object.entries(reports.approved).map(([riskLevel, value]) => ({
67+
data={Object.entries(cases.approved).map(([riskLevel, value]) => ({
6868
name: `${titleCase(riskLevel)} Risk`,
6969
value,
7070
}))}
@@ -89,7 +89,7 @@ export const PortfolioRiskStatistics: FunctionComponent<{
8989
</Pie>
9090
</PieChart>
9191
<ul className={'flex w-full max-w-sm flex-col space-y-2'}>
92-
{Object.entries(reports.approved).map(([riskLevel, value]) => (
92+
{Object.entries(cases.approved).map(([riskLevel, value]) => (
9393
<li
9494
key={riskLevel}
9595
className={'flex items-center space-x-4 border-b py-1 text-xs'}

‎apps/backoffice-v2/src/pages/Statistics/components/PortfolioRiskStatistics/hooks/usePortfolioRiskStatisticsLogic/usePortfolioRiskStatisticsLogic.tsx

+6-8
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@ import { HomeMetricsOutputSchema } from '@/domains/metrics/hooks/queries/useHome
1111
export const usePortfolioRiskStatisticsLogic = ({
1212
riskIndicators,
1313
reports,
14-
}: {
15-
riskIndicators: z.infer<typeof HomeMetricsOutputSchema>['riskIndicators'];
16-
reports: z.infer<typeof HomeMetricsOutputSchema>['reports'];
17-
}) => {
14+
cases,
15+
}: z.infer<typeof HomeMetricsOutputSchema>) => {
1816
const [parent] = useAutoAnimate<HTMLTableSectionElement>();
1917
const [riskIndicatorsSorting, setRiskIndicatorsSorting] = useState<SortDirection>('desc');
2018
const onSortRiskIndicators = useCallback(
@@ -59,10 +57,10 @@ export const usePortfolioRiskStatisticsLogic = ({
5957
description: 'Risk levels of all active onboarding cases.',
6058
entityPlural: 'Cases',
6159
riskLevels: {
62-
low: reports.inProgress.low,
63-
medium: reports.inProgress.medium,
64-
high: reports.inProgress.high,
65-
critical: reports.inProgress.critical,
60+
low: cases.inProgress.low,
61+
medium: cases.inProgress.medium,
62+
high: cases.inProgress.high,
63+
critical: cases.inProgress.critical,
6664
},
6765
},
6866
];

‎apps/kyb-app/src/pages/CollectionFlow/CollectionFlow.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ export const CollectionFlow = withSessionProtected(() => {
229229
)}
230230
{themeDefinition.ui?.poweredBy !== false && (
231231
<div className="flex flex-col">
232-
<div className="pb-12 border-b" />
232+
<div className="border-b pb-12" />
233233
<PoweredByLogo className="mt-8" sidebarRootId="sidebar" />
234234
</div>
235235
)}

‎services/workflows-service/src/metrics/schemas/home-metrics.schema.ts

+20
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,24 @@ export const HomeMetricsSchema = Type.Object({
1919
inProgress: ReportsByRiskLevelSchema,
2020
approved: ReportsByRiskLevelSchema,
2121
}),
22+
cases: Type.Object({
23+
all: Type.Object({
24+
low: Type.Number(),
25+
medium: Type.Number(),
26+
high: Type.Number(),
27+
critical: Type.Number(),
28+
}),
29+
inProgress: Type.Object({
30+
low: Type.Number(),
31+
medium: Type.Number(),
32+
high: Type.Number(),
33+
critical: Type.Number(),
34+
}),
35+
approved: Type.Object({
36+
low: Type.Number(),
37+
medium: Type.Number(),
38+
high: Type.Number(),
39+
critical: Type.Number(),
40+
}),
41+
}),
2242
});

‎services/workflows-service/src/metrics/service/metrics.service.ts

+20
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,26 @@ export class MetricsService {
106106
currentProjectId,
107107
),
108108
},
109+
cases: {
110+
all: {
111+
low: 0,
112+
medium: 4,
113+
high: 0,
114+
critical: 12,
115+
},
116+
inProgress: {
117+
low: 1,
118+
medium: 0,
119+
high: 2,
120+
critical: 14,
121+
},
122+
approved: {
123+
low: 24,
124+
medium: 0,
125+
high: 12,
126+
critical: 0,
127+
},
128+
},
109129
};
110130
}
111131
}

0 commit comments

Comments
 (0)
Please sign in to comment.