if there is not tx and no money left, then hide the currency

This commit is contained in:
Sebastian 2023-01-21 12:32:32 -03:00
parent 03b12d2b27
commit 88dbd80f85
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
2 changed files with 33 additions and 15 deletions

View File

@ -114,7 +114,7 @@ export function ReadyView(state: State.Ready): VNode {
)} )}
<Part <Part
big big
title={i18n.str`Refund offered`} title={i18n.str`Refund offered (without fee)`}
text={<Amount value={state.awaitingAmount} />} text={<Amount value={state.awaitingAmount} />}
kind="positive" kind="positive"
/> />
@ -131,7 +131,7 @@ export function ReadyView(state: State.Ready): VNode {
onClick={state.accept.onClick} onClick={state.accept.onClick}
> >
<i18n.Translate> <i18n.Translate>
Accept &nbsp; <Amount value={state.amount} /> Accept &nbsp; <Amount value={state.awaitingAmount} />
</i18n.Translate> </i18n.Translate>
</Button> </Button>
</section> </section>

View File

@ -112,8 +112,25 @@ export function HistoryView({
}): VNode { }): VNode {
const { i18n } = useTranslationContext(); const { i18n } = useTranslationContext();
const { pushAlertOnError } = useAlertContext(); const { pushAlertOnError } = useAlertContext();
const transactionByCurrency = transactions.reduce((prev, cur) => {
const c = Amounts.parseOrThrow(cur.amountEffective).currency;
if (!prev[c]) {
prev[c] = [];
}
prev[c].push(cur);
return prev;
}, {} as Record<string, Transaction[]>);
const currencies = balances const currencies = balances
.filter((b) => Amounts.isNonZero(b.available)) .filter((b) => {
const av = Amounts.parseOrThrow(b.available);
return (
Amounts.isNonZero(av) ||
(transactionByCurrency[av.currency] &&
transactionByCurrency[av.currency].length > 0)
);
})
.map((b) => b.available.split(":")[0]); .map((b) => b.available.split(":")[0]);
const defaultCurrencyIndex = currencies.findIndex( const defaultCurrencyIndex = currencies.findIndex(
@ -129,19 +146,20 @@ export function HistoryView({
? Amounts.jsonifyAmount(balances[currencyIndex].available) ? Amounts.jsonifyAmount(balances[currencyIndex].available)
: undefined; : undefined;
const byDate = transactions const ts =
.filter((t) => t.amountRaw.split(":")[0] === selectedCurrency) selectedCurrency === undefined
.reduce((rv, x) => { ? []
const theDate = : transactionByCurrency[selectedCurrency] ?? [];
x.timestamp.t_s === "never"
? 0
: normalizeToDay(x.timestamp.t_s * 1000);
if (theDate) {
(rv[theDate] = rv[theDate] || []).push(x);
}
return rv; const byDate = ts.reduce((rv, x) => {
}, {} as { [x: string]: Transaction[] }); const theDate =
x.timestamp.t_s === "never" ? 0 : normalizeToDay(x.timestamp.t_s * 1000);
if (theDate) {
(rv[theDate] = rv[theDate] || []).push(x);
}
return rv;
}, {} as { [x: string]: Transaction[] });
const datesWithTransaction = Object.keys(byDate); const datesWithTransaction = Object.keys(byDate);
if (balances.length === 0 || !selectedCurrency) { if (balances.length === 0 || !selectedCurrency) {