From 5883d42d800c7b444c59d626bcaa5abca7dc83d0 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 19 Oct 2021 10:56:52 -0300 Subject: add template from merchant backoffice --- .../src/pages/home/ChallengeOverviewScreen.tsx | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx (limited to 'packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx') diff --git a/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx b/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx new file mode 100644 index 000000000..1f108ce6d --- /dev/null +++ b/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx @@ -0,0 +1,63 @@ +import { h, VNode } from "preact"; +import { RecoveryReducerProps, AnastasisClientFrame } from "./index"; + +export function ChallengeOverviewScreen(props: RecoveryReducerProps): VNode { + const { recoveryState, reducer } = props; + const policies = recoveryState.recovery_information!.policies; + const chArr = recoveryState.recovery_information!.challenges; + const challenges: { + [uuid: string]: { + type: string; + instructions: string; + cost: string; + }; + } = {}; + for (const ch of chArr) { + challenges[ch.uuid] = { + type: ch.type, + cost: ch.cost, + instructions: ch.instructions, + }; + } + return ( + +

Policies

+ {policies.map((x, i) => { + return ( +
+

Policy #{i + 1}

+ {x.map((x, j) => { + const ch = challenges[x.uuid]; + const feedback = recoveryState.challenge_feedback?.[x.uuid]; + return ( +
+

+ {ch.type} ({ch.instructions}) +

+

Status: {feedback?.state ?? "unknown"}

+ {feedback?.state !== "solved" ? ( + + ) : null} +
+ ); + })} +
+ ); + })} +
+ ); +} -- cgit v1.2.3