aboutsummaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-09-11 12:18:02 -0300
committerSebastian <sebasjm@gmail.com>2024-09-11 12:18:16 -0300
commite2ede9ff4f5df733fc89e10d5b61f3867b0479ae (patch)
treeb34c906799bab26b3a56d414ef096953b3e50c34 /packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
parentf401ab076bb037e46c4b12e371dfe13a777bf582 (diff)
downloadwallet-core-e2ede9ff4f5df733fc89e10d5b61f3867b0479ae.tar.xz
fix #9156
Diffstat (limited to 'packages/aml-backoffice-ui/src/pages/CaseDetails.tsx')
-rw-r--r--packages/aml-backoffice-ui/src/pages/CaseDetails.tsx438
1 files changed, 225 insertions, 213 deletions
diff --git a/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
index 54f979846..88366c1d0 100644
--- a/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
+++ b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
@@ -22,6 +22,7 @@ import {
HttpStatusCode,
OperationFail,
OperationOk,
+ PaytoString,
TalerError,
TalerErrorDetail,
TalerExchangeApi,
@@ -171,7 +172,7 @@ export function getEventsFromAmlHistory(
return ke.sort(selectSooner);
}
-export function CaseDetails({ account }: { account: string }) {
+export function CaseDetails({ account, paytoString }: { account: string, paytoString?: PaytoString }) {
const [selected, setSelected] = useState<AbsoluteTime>(AbsoluteTime.now());
const [showForm, setShowForm] = useState<{
justification: Justification;
@@ -273,6 +274,7 @@ export function CaseDetails({ account }: { account: string }) {
onClick={async () => {
if (!session) return;
lib.exchange.makeAmlDesicion(session, {
+ payto_uri: paytoString,
decision_time: AbsoluteTime.toProtocolTimestamp(
AbsoluteTime.now(),
),
@@ -298,6 +300,7 @@ export function CaseDetails({ account }: { account: string }) {
onClick={async () => {
if (!session) return;
lib.exchange.makeAmlDesicion(session, {
+ payto_uri: paytoString,
decision_time: AbsoluteTime.toProtocolTimestamp(
AbsoluteTime.now(),
),
@@ -323,6 +326,7 @@ export function CaseDetails({ account }: { account: string }) {
onClick={async () => {
if (!session) return;
lib.exchange.makeAmlDesicion(session, {
+ payto_uri: paytoString,
decision_time: AbsoluteTime.toProtocolTimestamp(
AbsoluteTime.now(),
),
@@ -348,6 +352,7 @@ export function CaseDetails({ account }: { account: string }) {
onClick={async () => {
if (!session) return;
lib.exchange.makeAmlDesicion(session, {
+ payto_uri: paytoString,
decision_time: AbsoluteTime.toProtocolTimestamp(
AbsoluteTime.now(),
),
@@ -385,24 +390,28 @@ export function CaseDetails({ account }: { account: string }) {
<h1 class="my-4 text-base font-semibold leading-6 text-black">
<i18n.Translate>KYC collection events</i18n.Translate>
</h1>
- <ShowTimeline
- history={events}
- onSelect={(e) => {
- switch (e.type) {
- case "aml-form": {
- // const { justification, metadata } = e;
- // setShowForm({ justification, metadata });
- break;
+ {events.length === 0 ?
+ <Attention title={i18n.str`No events found`} type="warning" />
+ :
+ <ShowTimeline
+ history={events}
+ onSelect={(e) => {
+ switch (e.type) {
+ case "aml-form": {
+ // const { justification, metadata } = e;
+ // setShowForm({ justification, metadata });
+ break;
+ }
+ case "kyc-collection":
+ case "kyc-expiration": {
+ setSelected(e.when);
+ break;
+ }
+ case "aml-form-error":
}
- case "kyc-collection":
- case "kyc-expiration": {
- setSelected(e.when);
- break;
- }
- case "aml-form-error":
- }
- }}
- />
+ }}
+ />
+ }
{/* {selected && <ShowEventDetails event={selected} />} */}
{selected && <ShowConsolidated history={events} until={selected} />}
{restDecisions.length > 0 ? (
@@ -415,7 +424,10 @@ export function CaseDetails({ account }: { account: string }) {
})}
</Fragment>
) : (
- <div />
+ !activeDecision ?
+ <div class="ty-4">
+ <Attention title={i18n.str`No aml history found`} type="warning" />
+ </div> : undefined
)}
</div>
);
@@ -569,11 +581,11 @@ function ShowDecisionInfo({
{r.timeframe.d_us === "forever"
? ""
: formatDuration(
- intervalToDuration({
- start: 0,
- end: r.timeframe.d_us / 1000,
- }),
- )}
+ intervalToDuration({
+ start: 0,
+ end: r.timeframe.d_us / 1000,
+ }),
+ )}
</td>
<td class=" relative whitespace-nowrap py-4 pl-3 pr-4 text-right text-sm font-medium sm:pr-6 text-right">
<RenderAmount
@@ -808,13 +820,13 @@ function InputAmount(
if (
sep_pos !== -1 &&
l - sep_pos - 1 >
- config.currency_specification.num_fractional_input_digits
+ config.currency_specification.num_fractional_input_digits
) {
e.currentTarget.value = e.currentTarget.value.substring(
0,
sep_pos +
- config.currency_specification.num_fractional_input_digits +
- 1,
+ config.currency_specification.num_fractional_input_digits +
+ 1,
);
}
onChange(e.currentTarget.value);
@@ -852,9 +864,9 @@ function parseJustification(
listOfAllKnownForms: FormMetadata[],
):
| OperationOk<{
- justification: Justification;
- metadata: FormMetadata;
- }>
+ justification: Justification;
+ metadata: FormMetadata;
+ }>
| OperationFail<ParseJustificationFail> {
try {
const justification = JSON.parse(s);
@@ -902,212 +914,212 @@ function parseJustification(
const THRESHOLD_2000_WEEK: (currency: string) => TalerExchangeApi.KycRule[] = (
currency,
) => [
- {
- operation_type: "WITHDRAW",
- threshold: `${currency}:2000`,
- timeframe: {
- d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "WITHDRAW",
+ threshold: `${currency}:2000`,
+ timeframe: {
+ d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "DEPOSIT",
- threshold: `${currency}:2000`,
- timeframe: {
- d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "DEPOSIT",
+ threshold: `${currency}:2000`,
+ timeframe: {
+ d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "AGGREGATE",
- threshold: `${currency}:2000`,
- timeframe: {
- d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "AGGREGATE",
+ threshold: `${currency}:2000`,
+ timeframe: {
+ d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "MERGE",
- threshold: `${currency}:2000`,
- timeframe: {
- d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "MERGE",
+ threshold: `${currency}:2000`,
+ timeframe: {
+ d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "BALANCE",
- threshold: `${currency}:2000`,
- timeframe: {
- d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "BALANCE",
+ threshold: `${currency}:2000`,
+ timeframe: {
+ d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "CLOSE",
- threshold: `${currency}:2000`,
- timeframe: {
- d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "CLOSE",
+ threshold: `${currency}:2000`,
+ timeframe: {
+ d_us: 7 * 24 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
-];
+ ];
const THRESHOLD_100_HOUR: (currency: string) => TalerExchangeApi.KycRule[] = (
currency,
) => [
- {
- operation_type: "WITHDRAW",
- threshold: `${currency}:100`,
- timeframe: {
- d_us: 1 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "WITHDRAW",
+ threshold: `${currency}:100`,
+ timeframe: {
+ d_us: 1 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "DEPOSIT",
- threshold: `${currency}:100`,
- timeframe: {
- d_us: 1 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "DEPOSIT",
+ threshold: `${currency}:100`,
+ timeframe: {
+ d_us: 1 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "AGGREGATE",
- threshold: `${currency}:100`,
- timeframe: {
- d_us: 1 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "AGGREGATE",
+ threshold: `${currency}:100`,
+ timeframe: {
+ d_us: 1 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "MERGE",
- threshold: `${currency}:100`,
- timeframe: {
- d_us: 1 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "MERGE",
+ threshold: `${currency}:100`,
+ timeframe: {
+ d_us: 1 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "BALANCE",
- threshold: `${currency}:100`,
- timeframe: {
- d_us: 1 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "BALANCE",
+ threshold: `${currency}:100`,
+ timeframe: {
+ d_us: 1 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "CLOSE",
- threshold: `${currency}:100`,
- timeframe: {
- d_us: 1 * 60 * 60 * 1000 * 1000,
+ {
+ operation_type: "CLOSE",
+ threshold: `${currency}:100`,
+ timeframe: {
+ d_us: 1 * 60 * 60 * 1000 * 1000,
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
-];
+ ];
const FREEZE_RULES: (currency: string) => TalerExchangeApi.KycRule[] = (
currency,
) => [
- {
- operation_type: "WITHDRAW",
- threshold: `${currency}:0`,
- timeframe: {
- d_us: "forever",
+ {
+ operation_type: "WITHDRAW",
+ threshold: `${currency}:0`,
+ timeframe: {
+ d_us: "forever",
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "DEPOSIT",
- threshold: `${currency}:0`,
- timeframe: {
- d_us: "forever",
+ {
+ operation_type: "DEPOSIT",
+ threshold: `${currency}:0`,
+ timeframe: {
+ d_us: "forever",
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "AGGREGATE",
- threshold: `${currency}:0`,
- timeframe: {
- d_us: "forever",
+ {
+ operation_type: "AGGREGATE",
+ threshold: `${currency}:0`,
+ timeframe: {
+ d_us: "forever",
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "MERGE",
- threshold: `${currency}:0`,
- timeframe: {
- d_us: "forever",
+ {
+ operation_type: "MERGE",
+ threshold: `${currency}:0`,
+ timeframe: {
+ d_us: "forever",
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "BALANCE",
- threshold: `${currency}:0`,
- timeframe: {
- d_us: "forever",
+ {
+ operation_type: "BALANCE",
+ threshold: `${currency}:0`,
+ timeframe: {
+ d_us: "forever",
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
- {
- operation_type: "CLOSE",
- threshold: `${currency}:0`,
- timeframe: {
- d_us: "forever",
+ {
+ operation_type: "CLOSE",
+ threshold: `${currency}:0`,
+ timeframe: {
+ d_us: "forever",
+ },
+ measures: ["verboten"],
+ display_priority: 1,
+ exposed: true,
+ is_and_combinator: true,
},
- measures: ["verboten"],
- display_priority: 1,
- exposed: true,
- is_and_combinator: true,
- },
-];
+ ];