diff options
Diffstat (limited to 'packages/aml-backoffice-ui/src/pages/CaseDetails.tsx')
-rw-r--r-- | packages/aml-backoffice-ui/src/pages/CaseDetails.tsx | 31 |
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 { |