aboutsummaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/pages/Cases.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/aml-backoffice-ui/src/pages/Cases.tsx')
-rw-r--r--packages/aml-backoffice-ui/src/pages/Cases.tsx46
1 files changed, 25 insertions, 21 deletions
diff --git a/packages/aml-backoffice-ui/src/pages/Cases.tsx b/packages/aml-backoffice-ui/src/pages/Cases.tsx
index 990c0d2d4..5f79db71e 100644
--- a/packages/aml-backoffice-ui/src/pages/Cases.tsx
+++ b/packages/aml-backoffice-ui/src/pages/Cases.tsx
@@ -1,4 +1,5 @@
-import { TranslatedString } from "@gnu-taler/taler-util";
+import { TalerError, TranslatedString, assertUnreachable } from "@gnu-taler/taler-util";
+import { ErrorLoading, Loading, useTranslationContext } from "@gnu-taler/web-util/browser";
import { VNode, h } from "preact";
import { useState } from "preact/hooks";
import { createNewForm } from "../handlers/forms.js";
@@ -7,34 +8,37 @@ import { useOfficer } from "../hooks/useOfficer.js";
import { Pages } from "../pages.js";
import { AmlExchangeBackend } from "../types.js";
import { amlStateConverter } from "./CaseDetails.js";
-import { HandleAccountNotReady } from "./HandleAccountNotReady.js";
-import { buildQuerySignature } from "../account.js";
-import { handleNotOkResult } from "../utils/errors.js";
-import { useTranslationContext } from "@gnu-taler/web-util/browser";
export function Cases() {
- const officer = useOfficer();
const { i18n } = useTranslationContext();
- if (officer.state !== "ready") {
- return <HandleAccountNotReady officer={officer} />;
- }
- const form = createNewForm<{
- state: AmlExchangeBackend.AmlState;
- }>();
- const signature =
- officer.state === "ready"
- ? buildQuerySignature(officer.account.signingKey)
- : undefined;
+ const form = createNewForm<{ state: AmlExchangeBackend.AmlState }>();
+
const initial = AmlExchangeBackend.AmlState.pending;
const [stateFilter, setStateFilter] = useState(initial);
- const list = useCases(officer.account.accountId, stateFilter, signature);
- if (!list.ok && !list.loading) {
- return handleNotOkResult(i18n)(list);
+ const list = useCases(stateFilter);
+
+ if (!list) {
+ return <Loading />
+ }
+
+ if (list instanceof TalerError) {
+ return <ErrorLoading error={list} />
}
- const records = list.loading ? [] : list.data.records
+
+ if (list.data.type === "fail") {
+ switch (list.data.case) {
+ case "unauthorized":
+ case "officer-not-found":
+ case "officer-disabled": return <div />
+ default: assertUnreachable(list.data)
+ }
+ }
+
+ const { records } = list.data.body
+
return (
<div>
<div class="px-4 sm:px-6 lg:px-8">
@@ -52,7 +56,7 @@ export function Cases() {
onUpdate={(v) => {
setStateFilter(v.state ?? initial);
}}
- onSubmit={(v) => {}}
+ onSubmit={(v) => { }}
>
<form.InputChoiceHorizontal
name="state"