/* This file is part of TALER (C) 2015-2016 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 shown to the user to confirm creation * of a reserve, usually requested by the bank. * * @author Florian Dold */ import * as React from "react"; import * as ReactDOM from "react-dom"; import URI = require("urijs"); import * as wxApi from "../wxApi"; import { Collapsible } from "../renderHtml"; interface ErrorProps { report: any; } class ErrorView extends React.Component { render(): JSX.Element { const report = this.props.report; if (!report) { return (

Error Report Not Found

This page is supposed to display an error reported by the GNU Taler wallet, but the corresponding error report can't be found.

Maybe the error occured before the browser was restarted or the wallet was reloaded.

); } try { switch (report.name) { case "pay-post-failed": { const summary = report.contractTerms.summary || report.contractTerms.order_id; return (

Failed to send payment

Failed to send payment for {summary} to merchant {report.contractTerms.merchant.name}.

You can retry the payment. If this problem persists, please contact the mechant with the error details below.

                  {JSON.stringify(report, null, " ")}
                
); } default: return (

Unknown Error

The GNU Taler wallet reported an unknown error. Here are the details:
                {JSON.stringify(report, null, " ")}
              
); } } catch (e) { return (

Error

The GNU Taler wallet reported an error. Here are the details:
              {JSON.stringify(report, null, " ")}
            
A detailed error report could not be generated:
              {e.toString()}
            
); } } } async function main() { const url = new URI(document.location.href); const query: any = URI.parseQuery(url.query()); const container = document.getElementById("container"); if (!container) { console.error("fatal: can't mount component, countainer missing"); return; } // report that we'll render, either looked up from the // logging module or synthesized here for fixed/fatal errors let report; const reportUid: string = query.reportUid; if (!reportUid) { report = { name: "missing-error", }; } else { report = await wxApi.getReport(reportUid); } ReactDOM.render(, container); } document.addEventListener("DOMContentLoaded", () => main());