summaryrefslogtreecommitdiff
path: root/src/webex/pages/reset-required.tsx
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-06-05 03:20:28 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-06-05 03:20:28 +0200
commit290459133226503bcbc16f7dc3cb04d7abdc6735 (patch)
tree0d21f175f60c10f144f9dc6a661979e5e06c8d71 /src/webex/pages/reset-required.tsx
parente95027f37712c37be243403a78ff6a327a83177e (diff)
downloadwallet-core-290459133226503bcbc16f7dc3cb04d7abdc6735.tar.gz
wallet-core-290459133226503bcbc16f7dc3cb04d7abdc6735.tar.bz2
wallet-core-290459133226503bcbc16f7dc3cb04d7abdc6735.zip
pretty reset page
Diffstat (limited to 'src/webex/pages/reset-required.tsx')
-rw-r--r--src/webex/pages/reset-required.tsx73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/webex/pages/reset-required.tsx b/src/webex/pages/reset-required.tsx
new file mode 100644
index 000000000..90ea51abe
--- /dev/null
+++ b/src/webex/pages/reset-required.tsx
@@ -0,0 +1,73 @@
+/*
+ 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 <http://www.gnu.org/licenses/>
+ */
+
+
+/**
+ * Page to inform the user when a database reset is required.
+ *
+ * @author Florian Dold
+ */
+
+import * as React from "react";
+import * as ReactDOM from "react-dom";
+
+import * as wxApi from "../wxApi";
+
+class State {
+ checked: boolean;
+ resetRequired: boolean;
+}
+
+
+class ResetNotification extends React.Component<any, State> {
+ constructor(props: any) {
+ super(props);
+ this.state = {checked: false, resetRequired: true};
+ setInterval(() => this.update(), 500);
+ }
+ async update() {
+ const res = await wxApi.checkUpgrade();
+ this.setState({resetRequired: res.dbResetRequired});
+ }
+ render() {
+ if (this.state.resetRequired) {
+ return (
+ <div>
+ <h1>Manual Reset Reqired</h1>
+ <p>The wallet's database in your browser is incompatible with the currently installed wallet. Please reset manually.</p>
+ <p>Once the database format has stabilized, we will provide automatic upgrades.</p>
+ <input id="check" type="checkbox" checked={this.state.checked} onChange={(e) => this.setState({checked: e.target.checked})} />{" "}
+ <label htmlFor="check">
+ I understand that I will lose all my data
+ </label>
+ <br />
+ <button className="pure-button" disabled={!this.state.checked} onClick={() => wxApi.resetDb()}>Reset</button>
+ </div>
+ );
+ }
+ return (
+ <div>
+ <h1>Everything is fine!</h1>
+ A reset is not required anymore, you can close this page.
+ </div>
+ );
+ }
+}
+
+
+document.addEventListener("DOMContentLoaded", () => {
+ ReactDOM.render(<ResetNotification />, document.getElementById( "container")!);
+});