diff options
Diffstat (limited to 'packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx')
-rw-r--r-- | packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx b/packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx index 47c8f8ab4..64bfb90f1 100644 --- a/packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx +++ b/packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx @@ -15,27 +15,29 @@ */ import { AbsoluteTime, + AmountJson, Amounts, HttpStatusCode, TalerExchangeApi, TalerProtocolTimestamp, - assertUnreachable + assertUnreachable, } from "@gnu-taler/taler-util"; import { Button, LocalNotificationBanner, RenderAllFieldsByUiConfig, + UIFormField, useExchangeApiContext, useLocalNotificationHandler, - useTranslationContext + useTranslationContext, } from "@gnu-taler/web-util/browser"; import { Fragment, VNode, h } from "preact"; import { privatePages } from "../Routing.js"; -import { BaseForm, uiForms } from "../forms/declaration.js"; +import { UIFormFieldConfig, useUiFormsContext } from "../context/ui-forms.js"; import { useFormState } from "../hooks/form.js"; import { useOfficer } from "../hooks/officer.js"; -import { HandleAccountNotReady } from "./HandleAccountNotReady.js"; import { Justification } from "./CaseDetails.js"; +import { HandleAccountNotReady } from "./HandleAccountNotReady.js"; export function CaseUpdate({ account, @@ -53,7 +55,7 @@ export function CaseUpdate({ // const [notification, notify, handleError] = useLocalNotification(); const [notification, withErrorHandler] = useLocalNotificationHandler(); const { config } = useExchangeApiContext(); - + const { forms } = useUiFormsContext(); const initial = { when: AbsoluteTime.now(), state: TalerExchangeApi.AmlState.pending, @@ -63,12 +65,12 @@ export function CaseUpdate({ if (officer.state !== "ready") { return <HandleAccountNotReady officer={officer} />; } - const theForm = uiForms.forms(i18n).find((v) => v.id === formId); + const theForm = forms.find((v) => v.id === formId); if (!theForm) { return <div>form with id {formId} not found</div>; } - const [form, state] = useFormState<BaseForm>(initial, (st) => { + const [form, state] = useFormState(initial, (st) => { return { status: "ok", result: st as any, @@ -76,8 +78,6 @@ export function CaseUpdate({ }; }); - const ff = theForm.impl(state.result as any); - const validatedForm = state.status === "fail" ? undefined : state.result; const submitHandler = @@ -97,8 +97,11 @@ export function CaseUpdate({ justification: JSON.stringify(justification), decision_time: TalerProtocolTimestamp.now(), h_payto: account, - new_state: justification.value.state, - new_threshold: Amounts.stringify(justification.value.threshold), + new_state: justification.value + .state as TalerExchangeApi.AmlState, + new_threshold: Amounts.stringify( + justification.value.threshold as AmountJson, + ), kyc_requirements: undefined, }; @@ -122,13 +125,15 @@ export function CaseUpdate({ }, ); - // const asd = ff.design[0]?.fields[0]?.props - + function convertUiField(_f: UIFormFieldConfig[]): UIFormField[] { + return []; + } + return ( <Fragment> <LocalNotificationBanner notification={notification} /> <div class="space-y-10 divide-y -mt-5 divide-gray-900/10"> - {ff.design.map((section, i) => { + {theForm.config.design.map((section, i) => { if (!section) return <Fragment />; return ( <div @@ -150,7 +155,7 @@ export function CaseUpdate({ <div class="grid max-w-2xl grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6"> <RenderAllFieldsByUiConfig key={i} - fields={section.fields} + fields={convertUiField(section.fields)} /> </div> </div> @@ -180,11 +185,11 @@ export function CaseUpdate({ } export function SelectForm({ account }: { account: string }) { - const { i18n } = useTranslationContext(); + const { forms } = useUiFormsContext(); return ( <div> <pre>New form for account: {account.substring(0, 16)}...</pre> - {uiForms.forms(i18n).map((form) => { + {forms.map((form) => { return ( <a key={form.id} |