/* This file is part of GNU Anastasis (C) 2021-2022 Anastasis SARL GNU Anastasis is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with GNU Anastasis; see the file COPYING. If not, see */ import { h, VNode } from "preact"; import { useState } from "preact/hooks"; import { useAnastasisContext } from "../../context/anastasis.js"; import { AnastasisClientFrame, withProcessLabel } from "./index.js"; export function ContinentSelectionScreen(): VNode { const reducer = useAnastasisContext(); // FIXME: remove this when #7056 is fixed const countryFromReducer = (reducer?.currentReducerState as any).selected_country || ""; const [countryCode, setCountryCode] = useState(countryFromReducer); if ( !reducer || !reducer.currentReducerState || !("continents" in reducer.currentReducerState) ) { return
; } const selectContinent = (continent: string): void => { reducer.transition("select_continent", { continent }); }; const selectCountry = (country: string): void => { setCountryCode(country); }; const continentList = reducer.currentReducerState.continents || []; const countryList = reducer.currentReducerState.countries || []; const theContinent = reducer.currentReducerState.selected_continent || ""; // const cc = reducer.currentReducerState.selected_country || ""; const theCountry = countryList.find((c) => c.code === countryCode); const selectCountryAction = async () => { // selection should be when the select box changes it value if (!theCountry) return; // FIXME: Why is there no await? reducer.transition("select_country", { country_code: countryCode, }); }; // const step1 = reducer.currentReducerState.backup_state === BackupStates.ContinentSelecting || // reducer.currentReducerState.recovery_state === RecoveryStates.ContinentSelecting; // FIXME: i18n const errors = !theCountry ? "Select a country" : undefined; const handleBack = async () => { // We want to go to the start, even if we already selected // a country. // FIXME: What if we don't want to lose all information here? // Can we do some kind of soft reset? reducer.reset(); }; return (

Your selection will help us ask right information to uniquely identify you when you want to recover your secret again.

Choose the country that issued most of your long-term legal documents or personal identifiers.

{/*

If you just want to try out Anastasis, we recommend that you choose Testcontinent with Demoland. For this special country, you will be asked for a simple number and not real, personal identifiable information.

*/}
); }