import { canonicalJson, encodeCrock, stringToBytes } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; import { useState } from "preact/hooks"; import { AnastasisClientFrame } from ".."; import { TextInput } from "../../../components/fields/TextInput"; import { AuthMethodSetupProps } from "./index"; export function AuthMethodPostSetup({ addAuthMethod, cancel, configured }: AuthMethodSetupProps): VNode { const [fullName, setFullName] = useState(""); const [street, setStreet] = useState(""); const [city, setCity] = useState(""); const [postcode, setPostcode] = useState(""); const [country, setCountry] = useState(""); const addPostAuth = () => { const challengeJson = { full_name: fullName, street, city, postcode, country, }; addAuthMethod({ authentication_method: { type: "post", instructions: `Letter to address in postal code ${postcode}`, challenge: encodeCrock(stringToBytes(canonicalJson(challengeJson))), }, }); }; const errors = !fullName ? 'The full name is missing' : ( !street ? 'The street is missing' : ( !city ? 'The city is missing' : ( !postcode ? 'The postcode is missing' : ( !country ? 'The country is missing' : undefined ) ) ) ) return (

For postal letter authentication, you need to provide a postal address. When recovering your secret, you will be asked to enter a code that you will receive in a letter to that address.

{configured.length > 0 &&
Your postal code:
{configured.map((c, i) => { return

{c.instructions}

})}
}
); }