/* This file is part of TALER (C) 2017 GNUnet e.V. TALER is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. TALER 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 General Public License for more details. You should have received a copy of the GNU General Public License along with TALER; see the file COPYING. If not, see */ /** * Page to inform the user when a database reset is required. * * @author Florian Dold */ import { Component, JSX, h } from "preact"; import * as wxApi from "../wxApi"; interface State { /** * Did the user check the confirmation check box? */ checked: boolean; /** * Do we actually need to reset the db? */ resetRequired: boolean; } class ResetNotification extends Component { constructor(props: any) { super(props); this.state = { checked: false, resetRequired: true }; setInterval(() => this.update(), 500); } async update(): Promise { const res = await wxApi.checkUpgrade(); this.setState({ resetRequired: res.dbResetRequired }); } render(): JSX.Element { if (this.state.resetRequired) { return (

Manual Reset Required

The wallet's database in your browser is incompatible with the{" "} currently installed wallet. Please reset manually.

Once the database format has stabilized, we will provide automatic upgrades.

{ this.setState(prev => ({ checked: prev.checked })) }} />{" "}
); } return (

Everything is fine!

A reset is not required anymore, you can close this page.
); } } /** * @deprecated to be removed */ export function createResetRequiredPage(): JSX.Element { return ; }