From 1fd337f4fed08d7867359ec52104a6cadb76cdfc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 2 Nov 2021 12:31:37 -0300 Subject: refactoring challenge overview to look more like policy reviewing --- .../src/pages/home/ChallengeOverviewScreen.tsx | 82 ++++++++++++---------- 1 file changed, 43 insertions(+), 39 deletions(-) (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 index cf44d5bf4..7b9b060ce 100644 --- a/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx @@ -1,7 +1,9 @@ +/* eslint-disable @typescript-eslint/camelcase */ import { ChallengeFeedback } from "anastasis-core"; import { h, VNode } from "preact"; import { useAnastasisContext } from "../../context/anastasis"; import { AnastasisClientFrame } from "./index"; +import { authMethods, KnownAuthMethods } from "./authMethod"; export function ChallengeOverviewScreen(): VNode { const reducer = useAnastasisContext() @@ -50,59 +52,61 @@ export function ChallengeOverviewScreen(): VNode { const errors = !atLeastThereIsOnePolicySolved ? "Solve one policy before proceeding" : undefined; return ( - {!policies.length ?

+ {!policies.length ?

No policies found, try with another version of the secret -

: (policies.length === 1 ?

+

: (policies.length === 1 ?

One policy found for this secret. You need to solve all the challenges in order to recover your secret. -

:

+

:

We have found {policies.length} polices. You need to solve all the challenges from one policy in order to recover your secret.

)} - {policiesWithInfo.map((row, i) => { - const tableBody = row.challenges.map(({ info, uuid }) => { + {policiesWithInfo.map((policy, policy_index) => { + const tableBody = policy.challenges.map(({ info, uuid }) => { + const isFree = !info.cost || info.cost.endsWith(':0') + const method = authMethods[info.type as KnownAuthMethods] return ( - - {info.type} - - {info.instructions} - - {info.feedback?.state ?? "unknown"} - {info.cost} - - {info.feedback?.state !== "solved" ? ( - reducer.transition("select_challenge", { uuid })}> - Solve + ); }) + + const policyName = policy.challenges.map(x => x.info.type).join(" + "); + const opa = !atLeastThereIsOnePolicySolved ? undefined : ( policy.isPolicySolved ? undefined : '0.6') return ( -
- Policy #{i + 1} - {row.challenges.length === 0 &&

- This policy doesn't have challenges +

+

+ Policy #{policy_index + 1}: {policyName} +

+ {policy.challenges.length === 0 &&

+ This policy doesn't have challenges.

} - {row.challenges.length === 1 &&

- This policy just have one challenge to be solved + {policy.challenges.length === 1 &&

+ This policy just have one challenge.

} - {row.challenges.length > 1 &&

- This policy have {row.challenges.length} challenges + {policy.challenges.length > 1 &&

+ This policy have {policy.challenges.length} challenges.

} - - - - - - - - - - - {tableBody} - -
Challenge typeDescriptionStatusCost
+ {tableBody}
); })} -- cgit v1.2.3