/* This file is part of GNU Taler (C) 2022 Taler Systems S.A. 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 */ import { ComponentChildren, Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; import { useTranslationContext } from "../../../web-util/src/index.browser.js"; import { ErrorAlert, Alert as AlertNotification, useAlertContext, } from "../context/alert.js"; import { Alert } from "../mui/Alert.js"; /** * * @author sebasjm */ function AlertContext({ context, cause, }: { cause: unknown; context: undefined | object; }): VNode { const [more, setMore] = useState(false); const { i18n } = useTranslationContext(); if (!more) { return (
setMore(true)}> more info
); } return (
      {JSON.stringify(
        context === undefined ? { cause } : { context, cause },
        undefined,
        2,
      )}
    
); } export function ErrorAlertView({ error: alert, onClose, }: { error: ErrorAlert; onClose?: () => Promise; }): VNode { return (
{alert.description}
); } export function AlertView({ alert, onClose, }: { alert: AlertNotification; onClose?: () => Promise; }): VNode { return (
{alert.description}
); } export function CurrentAlerts(): VNode { const { alerts, removeAlert } = useAlertContext(); if (alerts.length === 0) return ; return ( {alerts.map((n, i) => ( removeAlert(n)} /> ))} ); } function Wrapper({ children }: { children: ComponentChildren }): VNode { return
{children}
; }