Skip to content

Commit ac65909

Browse files
authored
Demo envs changes (#2813)
* wip changes for demo envs * feat(*): changes * fix(backoffice-v2): fixed useCollectionFlowUrlMutation
1 parent 1827e32 commit ac65909

File tree

15 files changed

+164
-60
lines changed

15 files changed

+164
-60
lines changed
Lines changed: 3 additions & 0 deletions
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

Lines changed: 14 additions & 14 deletions
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

Lines changed: 3 additions & 0 deletions
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

Lines changed: 20 additions & 0 deletions
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

Lines changed: 6 additions & 1 deletion
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/mutations/copyingCollectionFlowLinkMutation.tsx renamed to apps/backoffice-v2/src/pages/Entity/components/Case/components/CaseOptions/hooks/useCaseOptionsLogic/mutations/useCopyCollectionFlowLinkMutation/useCopyCollectionFlowLinkMutation.tsx

File renamed without changes.

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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 57 additions & 26 deletions
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

Lines changed: 5 additions & 1 deletion
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

Lines changed: 7 additions & 7 deletions
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'}

0 commit comments

Comments
 (0)