/* This file is part of GNU Taler (C) 2019 Taler Systems SA GNU 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. GNU 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 GNU Taler; see the file COPYING. If not, see */ /** * Welcome page, shown on first installs. * * @author Florian Dold */ import React, { useState, useEffect } from "react"; import { getDiagnostics } from "../wxApi"; import { PageLink } from "../renderHtml"; import { WalletDiagnostics } from "../../types/walletTypes"; function Diagnostics(): JSX.Element { const [timedOut, setTimedOut] = useState(false); const [diagnostics, setDiagnostics] = useState( undefined, ); useEffect(() => { let gotDiagnostics = false; setTimeout(() => { if (!gotDiagnostics) { console.error("timed out"); setTimedOut(true); } }, 1000); const doFetch = async (): Promise => { const d = await getDiagnostics(); console.log("got diagnostics", d); gotDiagnostics = true; setDiagnostics(d); }; console.log("fetching diagnostics"); doFetch(); }, []); if (timedOut) { return

Diagnostics timed out. Could not talk to the wallet backend.

; } if (diagnostics) { if (diagnostics.errors.length === 0) { return

Running diagnostics ... everything looks fine.

; } else { return (

Problems detected:

    {diagnostics.errors.map((errMsg) => (
  1. {errMsg}
  2. ))}
{diagnostics.firefoxIdbProblem ? (

Please check in your about:config settings that you have IndexedDB enabled (check the preference name{" "} dom.indexedDB.enabled).

) : null} {diagnostics.dbOutdated ? (

Your wallet database is outdated. Currently automatic migration is not supported. Please go{" "} here to reset the wallet database.

) : null}
); } } return

Running diagnostics ...

; } function Welcome(): JSX.Element { return ( <>

Thank you for installing the wallet.

First Steps

Check out demo.taler.net for a demo.

Troubleshooting

); } export function createWelcomePage(): JSX.Element { return ; }