diff options
Diffstat (limited to 'packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx')
-rw-r--r-- | packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx b/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx index 7ccc511ff..8c8a2c7c8 100644 --- a/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx @@ -3,13 +3,31 @@ import { decodeCrock } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; -import { RecoveryReducerProps, AnastasisClientFrame } from "./index"; +import { useAnastasisContext } from "../../context/anastasis"; +import { AnastasisClientFrame } from "./index"; -export function RecoveryFinishedScreen(props: RecoveryReducerProps): VNode { +export function RecoveryFinishedScreen(): VNode { + const reducer = useAnastasisContext() + + if (!reducer) { + return <div>no reducer in context</div> + } + if (!reducer.currentReducerState || reducer.currentReducerState.recovery_state === undefined) { + return <div>invalid state</div> + } + const encodedSecret = reducer.currentReducerState.core_secret?.value + if (!encodedSecret) { + return <AnastasisClientFrame title="Recovery Problem" hideNext> + <p> + Secret not found + </p> + </AnastasisClientFrame> + } + const secret = bytesToString(decodeCrock(encodedSecret)) return ( <AnastasisClientFrame title="Recovery Finished" hideNext> <p> - Secret: {bytesToString(decodeCrock(props.recoveryState.core_secret?.value!))} + Secret: {secret} </p> </AnastasisClientFrame> ); |