aboutsummaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx')
-rw-r--r--packages/aml-backoffice-ui/src/pages/CaseUpdate.tsx39
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}