diff options
author | Sebastian <sebasjm@gmail.com> | 2022-08-26 01:08:51 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-08-26 01:09:47 -0300 |
commit | eef2d4702019b9de64efc01fff097b437e65ce39 (patch) | |
tree | 586171c1391361ca18ffda8cdddd6d62d120b6eb /packages/taler-wallet-webextension/src/wallet/ExchangeSelection/stories.tsx | |
parent | 30e8fd83c256826fc995edae499bf8bb6b60b7f2 (diff) | |
download | wallet-core-eef2d4702019b9de64efc01fff097b437e65ce39.tar.xz |
exchange selection: timeline done
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/ExchangeSelection/stories.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/ExchangeSelection/stories.tsx | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/stories.tsx b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/stories.tsx new file mode 100644 index 000000000..c4e631b45 --- /dev/null +++ b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/stories.tsx @@ -0,0 +1,173 @@ +/* + 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/> + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ + +import { ExchangeListItem } from "@gnu-taler/taler-util"; +import { createExample } from "../../test-utils.js"; +import { bitcoinExchanges, kudosExchanges } from "./example.js"; +import { FeeDescription, FeeDescriptionPair, OperationMap } from "./index.js"; +import { + createDenominationPairTimeline, + createDenominationTimeline, +} from "./state.js"; +import { ReadyView, ComparingView } from "./views.js"; + +export default { + title: "wallet/select exchange", +}; + +function timelineForExchange( + ex: ExchangeListItem, +): OperationMap<FeeDescription[]> { + return { + deposit: createDenominationTimeline( + ex.denominations, + "stampExpireDeposit", + "feeDeposit", + ), + refresh: createDenominationTimeline( + ex.denominations, + "stampExpireWithdraw", + "feeRefresh", + ), + refund: createDenominationTimeline( + ex.denominations, + "stampExpireWithdraw", + "feeRefund", + ), + withdraw: createDenominationTimeline( + ex.denominations, + "stampExpireWithdraw", + "feeWithdraw", + ), + }; +} + +function timelinePairForExchange( + ex1: ExchangeListItem, + ex2: ExchangeListItem, +): OperationMap<FeeDescriptionPair[]> { + const om1 = timelineForExchange(ex1); + const om2 = timelineForExchange(ex2); + return { + deposit: createDenominationPairTimeline(om1.deposit, om2.deposit), + refresh: createDenominationPairTimeline(om1.refresh, om2.refresh), + refund: createDenominationPairTimeline(om1.refund, om2.refund), + withdraw: createDenominationPairTimeline(om1.withdraw, om2.withdraw), + }; +} + +export const Bitcoin1 = createExample(ReadyView, { + exchanges: { + list: { "http://exchange": "http://exchange" }, + value: "http://exchange", + }, + selected: { + currency: "BITCOINBTC", + auditors: [], + } as any, + onClose: {}, + nextFeeUpdate: { + t_ms: 1, + }, + timeline: timelineForExchange(bitcoinExchanges[0]), +}); +export const Bitcoin2 = createExample(ReadyView, { + exchanges: { + list: { "http://exchange": "http://exchange" }, + value: "http://exchange", + }, + selected: { + currency: "BITCOINBTC", + auditors: [], + } as any, + onClose: {}, + nextFeeUpdate: { + t_ms: 1, + }, + timeline: timelineForExchange(bitcoinExchanges[1]), +}); +export const Kudos1 = createExample(ReadyView, { + exchanges: { + list: { "http://exchange": "http://exchange" }, + value: "http://exchange", + }, + selected: { + currency: "BITCOINBTC", + auditors: [], + } as any, + onClose: {}, + nextFeeUpdate: { + t_ms: 1, + }, + timeline: timelineForExchange(kudosExchanges[0]), +}); +export const Kudos2 = createExample(ReadyView, { + exchanges: { + list: { "http://exchange": "http://exchange" }, + value: "http://exchange", + }, + selected: { + currency: "BITCOINBTC", + auditors: [], + } as any, + onClose: {}, + nextFeeUpdate: { + t_ms: 1, + }, + timeline: timelineForExchange(kudosExchanges[1]), +}); +export const ComparingBitcoin = createExample(ComparingView, { + exchanges: { + list: { "http://exchange": "http://exchange" }, + value: "http://exchange", + }, + selected: { + currency: "BITCOINBTC", + auditors: [], + } as any, + onReset: {}, + onSelect: {}, + error: undefined, + nextFeeUpdate: { + t_ms: 1, + }, + pairTimeline: timelinePairForExchange( + bitcoinExchanges[0], + bitcoinExchanges[1], + ), +}); +export const ComparingKudos = createExample(ComparingView, { + exchanges: { + list: { "http://exchange": "http://exchange" }, + value: "http://exchange", + }, + selected: { + currency: "KUDOS", + auditors: [], + } as any, + onReset: {}, + onSelect: {}, + error: undefined, + nextFeeUpdate: { + t_ms: 1, + }, + pairTimeline: timelinePairForExchange(kudosExchanges[0], kudosExchanges[1]), +}); |