From bd65bb67e25a79b019d745b7262b2008ce2adb15 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 16 Nov 2016 01:59:39 +0100 Subject: incrementally verify denoms The denominations are not stored in a separate object store. --- src/pages/tree.tsx | 51 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 14 deletions(-) (limited to 'src/pages/tree.tsx') diff --git a/src/pages/tree.tsx b/src/pages/tree.tsx index daabdaf49..58eb82c3f 100644 --- a/src/pages/tree.tsx +++ b/src/pages/tree.tsx @@ -21,12 +21,12 @@ */ -import { ExchangeRecord } from "src/types"; +import {ExchangeRecord, DenominationRecord} from "src/types"; import { ReserveRecord, CoinRecord, PreCoinRecord, Denomination } from "src/types"; import { ImplicitStateComponent, StateHolder } from "src/components"; import { getReserves, getExchanges, getCoins, getPreCoins, - refresh + refresh, getDenoms } from "src/wxApi"; import { prettyAmount, abbrev } from "src/renderHtml"; import { getTalerStampDate } from "src/helpers"; @@ -272,33 +272,56 @@ class ExpanderText extends ImplicitStateComponent { class DenominationList extends ImplicitStateComponent { expanded = this.makeState(false); + denoms = this.makeState(undefined); - renderDenom(d: Denomination) { + constructor(props: DenominationListProps) { + super(props); + this.update(); + } + + async update() { + let d = await getDenoms(this.props.exchange.baseUrl); + this.denoms(d); + } + + renderDenom(d: DenominationRecord) { return (
  • Value: {prettyAmount(d.value)}
  • -
  • Withdraw fee: {prettyAmount(d.fee_withdraw)}
  • -
  • Refresh fee: {prettyAmount(d.fee_refresh)}
  • -
  • Deposit fee: {prettyAmount(d.fee_deposit)}
  • -
  • Refund fee: {prettyAmount(d.fee_refund)}
  • -
  • Start: {getTalerStampDate(d.stamp_start)!.toString()}
  • -
  • Withdraw expiration: {getTalerStampDate(d.stamp_expire_withdraw)!.toString()}
  • -
  • Legal expiration: {getTalerStampDate(d.stamp_expire_legal)!.toString()}
  • -
  • Deposit expiration: {getTalerStampDate(d.stamp_expire_deposit)!.toString()}
  • -
  • Denom pub:
  • +
  • Withdraw fee: {prettyAmount(d.feeWithdraw)}
  • +
  • Refresh fee: {prettyAmount(d.feeRefresh)}
  • +
  • Deposit fee: {prettyAmount(d.feeDeposit)}
  • +
  • Refund fee: {prettyAmount(d.feeRefund)}
  • +
  • Start: {getTalerStampDate(d.stampStart)!.toString()}
  • +
  • Withdraw expiration: {getTalerStampDate(d.stampExpireWithdraw)!.toString()}
  • +
  • Legal expiration: {getTalerStampDate(d.stampExpireLegal)!.toString()}
  • +
  • Deposit expiration: {getTalerStampDate(d.stampExpireDeposit)!.toString()}
  • +
  • Denom pub:
); } render(): JSX.Element { + let denoms = this.denoms() + if (!denoms) { + return ( +
+ Denominations (...) + {" "} + + ... + +
+ ); + } return (
- Denominations ({this.props.exchange.active_denoms.length.toString()}) + Denominations ({denoms.length.toString()}) {" "} - {this.props.exchange.active_denoms.map((d) => this.renderDenom(d))} + {denoms.map((d) => this.renderDenom(d))}
); -- cgit v1.2.3