diff --git a/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx b/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx index c63f19eb6..69dbce037 100644 --- a/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/ChallengeOverviewScreen.tsx @@ -5,6 +5,38 @@ import { useAnastasisContext } from "../../context/anastasis"; import { AnastasisClientFrame } from "./index"; import { authMethods, KnownAuthMethods } from "./authMethod"; +function FeedbackDisplay(props: { feedback?: ChallengeFeedback }) { + const { feedback } = props; + if (!feedback) { + return null; + } + switch (feedback.state) { + case ChallengeFeedbackStatus.Message: + return ( +
+

{feedback.message}

+
+ ); + case ChallengeFeedbackStatus.Pending: + case ChallengeFeedbackStatus.AuthIban: + return null; + case ChallengeFeedbackStatus.RateLimitExceeded: + return
Rate limit exceeded.
; + case ChallengeFeedbackStatus.Redirect: + return
Redirect (FIXME: not supported)
; + case ChallengeFeedbackStatus.Unsupported: + return
Challenge not supported by client.
; + case ChallengeFeedbackStatus.TruthUnknown: + return
Truth unknown
; + default: + return ( +
+
{JSON.stringify(feedback)}
+
+ ); + } +} + export function ChallengeOverviewScreen(): VNode { const reducer = useAnastasisContext(); @@ -98,11 +130,7 @@ export function ChallengeOverviewScreen(): VNode { {method?.icon} {info.instructions} - {info.feedback?.state === ChallengeFeedbackStatus.Message ? ( -
-

{info.feedback.message}

-
- ) : null} +
{method && info.feedback?.state !== "solved" ? (