import { AuthenticationProviderStatusOk } from "@gnu-taler/anastasis-core"; import { format } from "date-fns"; import { h, VNode } from "preact"; import { useAnastasisContext } from "../../context/anastasis"; import { AnastasisClientFrame } from "./index"; export function BackupFinishedScreen(): VNode { const reducer = useAnastasisContext(); if (!reducer) { return
no reducer in context
; } if (reducer.currentReducerState?.reducer_type !== "backup") { return
invalid state
; } const details = reducer.currentReducerState.success_details; const providers = reducer.currentReducerState.authentication_providers ?? {}; return (

Your backup is complete.

{details && (

The backup is stored by the following providers:

{Object.keys(details).map((url, i) => { const sd = details[url]; const p = providers[url] as AuthenticationProviderStatusOk; return (
{p.business_name}

version {sd.policy_version} {sd.policy_expiration.t_s !== "never" ? ` expires at: ${format( new Date(sd.policy_expiration.t_s), "dd-MM-yyyy", )}` : " without expiration date"}

); })}
)}
); }