From eef2d4702019b9de64efc01fff097b437e65ce39 Mon Sep 17 00:00:00 2001
From: Sebastian <sebasjm@gmail.com>
Date: Fri, 26 Aug 2022 01:08:51 -0300
Subject: exchange selection: timeline done

---
 .../src/wallet/ExchangeSelection.tsx               | 282 ---------------------
 1 file changed, 282 deletions(-)
 delete mode 100644 packages/taler-wallet-webextension/src/wallet/ExchangeSelection.tsx

(limited to 'packages/taler-wallet-webextension/src/wallet/ExchangeSelection.tsx')

diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection.tsx b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection.tsx
deleted file mode 100644
index 1fa921429..000000000
--- a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection.tsx
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- 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 <http://www.gnu.org/licenses/>
- */
-
-import {
-  AbsoluteTime,
-  ExchangeListItem,
-  TalerProtocolTimestamp,
-} from "@gnu-taler/taler-util";
-import { styled } from "@linaria/react";
-import { Fragment, h, VNode } from "preact";
-import { useState } from "preact/hooks";
-import { Loading } from "../components/Loading.js";
-import { LoadingError } from "../components/LoadingError.js";
-import { SelectList } from "../components/SelectList.js";
-import { Input, LinkPrimary } from "../components/styled/index.js";
-import { Time } from "../components/Time.js";
-import { useTranslationContext } from "../context/translation.js";
-import { useAsyncAsHook } from "../hooks/useAsyncAsHook.js";
-import { Button } from "../mui/Button.js";
-import * as wxApi from "../wxApi.js";
-
-const Container = styled.div`
-  display: flex;
-  flex-direction: column;
-  & > * {
-    margin-bottom: 20px;
-  }
-`;
-
-interface Props {
-  initialValue?: number;
-  exchanges: ExchangeListItem[];
-  onSelected: (exchange: string) => void;
-}
-
-const ButtonGroup = styled.div`
-  & > button {
-    margin-left: 8px;
-    margin-right: 8px;
-  }
-`;
-
-export function ExchangeSelection(): VNode {
-  const hook = useAsyncAsHook(wxApi.listExchanges);
-  const { i18n } = useTranslationContext();
-  if (!hook) {
-    return <Loading />;
-  }
-  if (hook.hasError) {
-    return (
-      <LoadingError
-        error={hook}
-        title={<i18n.Translate>Could not load list of exchange</i18n.Translate>}
-      />
-    );
-  }
-  return (
-    <ExchangeSelectionView
-      exchanges={hook.response.exchanges}
-      onSelected={(exchange) => alert(`ok, selected: ${exchange}`)}
-    />
-  );
-}
-
-export function ExchangeSelectionView({
-  initialValue,
-  exchanges,
-  onSelected,
-}: Props): VNode {
-  const list: Record<string, string> = {};
-  exchanges.forEach((e, i) => (list[String(i)] = e.exchangeBaseUrl));
-
-  const [value, setValue] = useState(String(initialValue || 0));
-  const { i18n } = useTranslationContext();
-
-  if (!exchanges.length) {
-    return <div>no exchanges for listing, please add one</div>;
-  }
-
-  const current = exchanges[Number(value)];
-
-  const hasChange = value !== current.exchangeBaseUrl;
-
-  function nearestTimestamp(
-    first: TalerProtocolTimestamp,
-    second: TalerProtocolTimestamp,
-  ): TalerProtocolTimestamp {
-    const f = AbsoluteTime.fromTimestamp(first);
-    const s = AbsoluteTime.fromTimestamp(second);
-    const a = AbsoluteTime.min(f, s);
-    return AbsoluteTime.toTimestamp(a);
-  }
-
-  let nextFeeUpdate = TalerProtocolTimestamp.never();
-
-  nextFeeUpdate = Object.values(current.wireInfo.feesForType).reduce(
-    (prev, cur) => {
-      return cur.reduce((p, c) => nearestTimestamp(p, c.endStamp), prev);
-    },
-    nextFeeUpdate,
-  );
-
-  nextFeeUpdate = current.denominations.reduce((prev, cur) => {
-    return [
-      cur.stampExpireWithdraw,
-      cur.stampExpireLegal,
-      cur.stampExpireDeposit,
-    ].reduce(nearestTimestamp, prev);
-  }, nextFeeUpdate);
-
-  return (
-    <Container>
-      <h2>
-        <i18n.Translate>Service fee description</i18n.Translate>
-      </h2>
-
-      <section>
-        <div
-          style={{
-            display: "flex",
-            flexWrap: "wrap",
-            alignItems: "center",
-            justifyContent: "space-between",
-          }}
-        >
-          <p>
-            <Input>
-              <SelectList
-                label={<i18n.Translate>Known exchanges</i18n.Translate>}
-                list={list}
-                name="lang"
-                value={value}
-                onChange={(v) => setValue(v)}
-              />
-            </Input>
-          </p>
-          {hasChange ? (
-            <ButtonGroup>
-              <Button
-                variant="outlined"
-                onClick={async () => {
-                  setValue(current.exchangeBaseUrl);
-                }}
-              >
-                Reset
-              </Button>
-              <Button
-                variant="contained"
-                onClick={async () => {
-                  onSelected(value);
-                }}
-              >
-                Use this exchange
-              </Button>
-            </ButtonGroup>
-          ) : (
-            <Button
-              variant="outlined"
-              onClick={async () => {
-                null;
-              }}
-            >
-              Close
-            </Button>
-          )}
-        </div>
-      </section>
-      <section>
-        <dl>
-          <dt>Auditors</dt>
-          {current.auditors.map((a) => {
-            <dd>{a.auditor_url}</dd>;
-          })}
-        </dl>
-        <table>
-          <tr>
-            <td>currency</td>
-            <td>{current.currency}</td>
-          </tr>
-          <tr>
-            <td>next fee update</td>
-            <td>
-              {
-                <Time
-                  timestamp={AbsoluteTime.fromTimestamp(nextFeeUpdate)}
-                  format="dd MMMM yyyy, HH:mm"
-                />
-              }
-            </td>
-          </tr>
-        </table>
-      </section>
-      <section>
-        <table>
-          <thead>
-            <tr>
-              <td>Denomination operations</td>
-              <td>Current fee</td>
-            </tr>
-          </thead>
-          <tbody>
-            <tr>
-              <td colSpan={2}>deposit (i)</td>
-            </tr>
-
-            <tr>
-              <td>* 10</td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>* 5</td>
-              <td>0.05</td>
-            </tr>
-            <tr>
-              <td>* 1</td>
-              <td>0.01</td>
-            </tr>
-          </tbody>
-        </table>
-      </section>
-      <section>
-        <table>
-          <thead>
-            <tr>
-              <td>Wallet operations</td>
-              <td>Current fee</td>
-            </tr>
-          </thead>
-          <tbody>
-            <tr>
-              <td>history(i) </td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>kyc (i) </td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>account (i) </td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>purse (i) </td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>wire SEPA (i) </td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>closing SEPA(i) </td>
-              <td>0.1</td>
-            </tr>
-            <tr>
-              <td>wad SEPA (i) </td>
-              <td>0.1</td>
-            </tr>
-          </tbody>
-        </table>
-      </section>
-      <section>
-        <ButtonGroup>
-          <LinkPrimary>Privacy policy</LinkPrimary>
-          <LinkPrimary>Terms of service</LinkPrimary>
-        </ButtonGroup>
-      </section>
-    </Container>
-  );
-}
-- 
cgit v1.2.3

