/* This file is part of GNU Taler (C) 2020 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 React, { useState } from 'react'; import { message, Button, Card, Col, Collapse, Row, Tabs } from 'antd'; import './BankAccounts.less'; import AddBankConnectionDrawer from './AddBankConnectionDrawer'; import BankConnectionCard from './BankConnectionCard'; const { TabPane } = Tabs; const { Panel } = Collapse; const BankAccounts = () => { const [connectionsList, setConnectionsList] = useState([]); const [accountsList, setAccountsList] = useState([]); const showError = (err) => { message.error(String(err)); }; const fetchBankConnections = async () => { const authHeader = await window.localStorage.getItem('authHeader'); await fetch(`/bank-connections`, { headers: new Headers({ Authorization: `Basic ${authHeader}`, }), }) .then((response) => { if (response.ok) { return response.json(); } throw 'Cannot retrieve bank connections'; }) .then((response) => { setConnectionsList(response.bankConnections); }) .catch((err) => { showError(err); }); }; const fetchBankAccounts = async () => { const authHeader = await window.localStorage.getItem('authHeader'); await fetch(`/bank-accounts`, { headers: new Headers({ Authorization: `Basic ${authHeader}`, }), }) .then((response) => { if (response.ok) { return response.json(); } throw 'Cannot retrieve bank accounts'; }) .then((response) => { setAccountsList(response.accounts); }) .catch((err) => { showError(err); }); }; React.useEffect(() => { fetchBankConnections(); fetchBankAccounts(); }, []); const [visible, setVisible] = useState(false); const showDrawer = () => { setVisible(true); }; const onClose = () => { setVisible(false); fetchBankConnections(); fetchBankAccounts(); }; const bankAccountsContent = accountsList.length > 0 ? ( {accountsList.map((bankAccount) => (

Holder: {bankAccount['ownerName']}

IBAN: {bankAccount['iban']}

BIC: {bankAccount['bic']}

))}
) : (
No bank accounts found. Import your bank accounts from a bank connection.
); return (
{connectionsList ? connectionsList.map((bankConnection) => ( fetchBankAccounts()} /> )) : null}
{bankAccountsContent}
Placeholder
); }; export default BankAccounts;