import { useState, useEffect } from "preact/hooks"; import { getDiagnostics } from "../wxApi"; import { PageLink } from "../renderHtml"; import { WalletDiagnostics } from "@gnu-taler/taler-util"; import { JSX } from "preact/jsx-runtime"; interface Props { timedOut: boolean; diagnostics: WalletDiagnostics | undefined } export function Diagnostics({timedOut, diagnostics}: Props): JSX.Element | null { if (timedOut) { return

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

; } if (diagnostics) { if (diagnostics.errors.length === 0) { return null; } 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 ...

; }