aboutsummaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/aml-backoffice-ui/src/pages/CaseDetails.tsx')
-rw-r--r--packages/aml-backoffice-ui/src/pages/CaseDetails.tsx31
1 files changed, 15 insertions, 16 deletions
diff --git a/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
index e16a6a103..1ad8c9453 100644
--- a/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
+++ b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
@@ -34,6 +34,7 @@ import {
import {
DefaultForm,
ErrorLoading,
+ FlexibleForm,
InternationalizationAPI,
Loading,
useTranslationContext,
@@ -42,9 +43,9 @@ import { format } from "date-fns";
import { VNode, h } from "preact";
import { useState } from "preact/hooks";
import { privatePages } from "../Routing.js";
-import { BaseForm, FormMetadata, uiForms } from "../forms/declaration.js";
import { useCaseDetails } from "../hooks/useCaseDetails.js";
import { ShowConsolidated } from "./ShowConsolidated.js";
+import { FormMetadata, useUiFormsContext } from "../context/ui-forms.js";
export type AmlEvent =
| AmlFormEvent
@@ -56,7 +57,7 @@ type AmlFormEvent = {
when: AbsoluteTime;
title: TranslatedString;
justification: Justification;
- metadata: FormMetadata<BaseForm>;
+ metadata: FormMetadata;
state: TalerExchangeApi.AmlState;
threshold: AmountJson;
};
@@ -115,9 +116,10 @@ export function getEventsFromAmlHistory(
aml: TalerExchangeApi.AmlDecisionDetail[],
kyc: TalerExchangeApi.KycDetail[],
i18n: InternationalizationAPI,
+ forms: FormMetadata[],
): AmlEvent[] {
const ae: AmlEvent[] = aml.map((a) => {
- const just = parseJustification(a.justification, uiForms.forms(i18n));
+ const just = parseJustification(a.justification, forms);
return {
type: just.type === "ok" ? "aml-form" : "aml-form-error",
state: a.new_state,
@@ -156,11 +158,13 @@ export function CaseDetails({ account }: { account: string }) {
const [selected, setSelected] = useState<AbsoluteTime>(AbsoluteTime.now());
const [showForm, setShowForm] = useState<{
justification: Justification;
- metadata: FormMetadata<BaseForm>;
+ metadata: FormMetadata;
}>();
const { i18n } = useTranslationContext();
const details = useCaseDetails(account);
+ const {forms} = useUiFormsContext()
+
if (!details) {
return <Loading />;
}
@@ -180,14 +184,14 @@ export function CaseDetails({ account }: { account: string }) {
}
const { aml_history, kyc_attributes } = details.body;
- const events = getEventsFromAmlHistory(aml_history, kyc_attributes, i18n);
+ const events = getEventsFromAmlHistory(aml_history, kyc_attributes, i18n, forms);
if (showForm !== undefined) {
return (
<DefaultForm
readOnly={true}
initial={showForm.justification.value}
- form={showForm.metadata.impl(showForm.justification.value)}
+ form={showForm.metadata as any} // FIXME: HERE
>
<div class="mt-6 flex items-center justify-end gap-x-6">
<button
@@ -243,11 +247,7 @@ export function CaseDetails({ account }: { account: string }) {
);
}
-function AmlStateBadge({
- state,
-}: {
- state: TalerExchangeApi.AmlState;
-}): VNode {
+function AmlStateBadge({ state }: { state: TalerExchangeApi.AmlState }): VNode {
switch (state) {
case TalerExchangeApi.AmlState.normal: {
return (
@@ -389,11 +389,10 @@ function ShowTimeline({
);
}
-
-export type Justification<T extends BaseForm = BaseForm> = {
+export type Justification<T = Record<string, unknown>> = {
// form values
value: T;
-} & Omit<Omit<FormMetadata<BaseForm>, "icon">, "impl">;
+} & Omit<Omit<FormMetadata, "icon">, "config">;
type SimpleFormMetadata = {
version?: number;
@@ -414,11 +413,11 @@ type ParseJustificationFail =
function parseJustification(
s: string,
- listOfAllKnownForms: FormMetadata<BaseForm>[],
+ listOfAllKnownForms: FormMetadata[],
):
| OperationOk<{
justification: Justification;
- metadata: FormMetadata<BaseForm>;
+ metadata: FormMetadata;
}>
| OperationFail<ParseJustificationFail> {
try {