/* This file is part of GNU Taler (C) 2021-2023 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 { HttpResponse, HttpResponseOk, HttpResponsePaginated, RequestError, } from "@gnu-taler/web-util/browser"; import { useEffect, useState } from "preact/hooks"; import { AuditorBackend, WithId } from "../declaration.js"; import { MAX_RESULT_SIZE, PAGE_SIZE } from "../utils/constants.js"; import { useBackendRequest, useMatchMutate } from "./backend.js"; // FIX default import https://github.com/microsoft/TypeScript/issues/49189 import _useSWR, { SWRHook, useSWRConfig } from "swr"; const useSWR = _useSWR as unknown as SWRHook; type YesOrNo = "yes" | "no"; export interface HelperDashboardFilter { finance?: YesOrNo; security?: YesOrNo; operating?: YesOrNo; detail?: YesOrNo; } export function getCriticalData( args?: HelperDashboardFilter, updateFilter?: (d: Date) => void, ): HttpResponse { const { multiFetcher } = useBackendRequest(); const endpoints = [ "monitoring/fee-time-inconsistency", "monitoring/emergency", "monitoring/emergency-by-count", "monitoring/reserve-balance-insufficient-inconsistency", ]; const { data: list, error: listError } = useSWR< HttpResponseOk[], RequestError >(endpoints, multiFetcher, { refreshInterval: 60, refreshWhenHidden: false, revalidateOnFocus: false, revalidateOnReconnect: false, refreshWhenOffline: false, }); if (listError) return listError.cause; if (list) { return { ok: true, data: [list] }; } return { loading: true }; }