mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Sort exchange rates alphabetically and group same base rates by row color
Before this, exchange rates were read from a map, which meant the display order was random. This ensures that the list of exchange rates displays in a consistent order and visually denotes rates for the same currency. Signed-off-by: Chris Cummer <chriscummer@me.com>
This commit is contained in:
parent
787d27b498
commit
5e44a01699
@ -3,6 +3,7 @@ package exchangerates
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"sort"
|
||||||
|
|
||||||
"github.com/rivo/tview"
|
"github.com/rivo/tview"
|
||||||
"github.com/wtfutil/wtf/view"
|
"github.com/wtfutil/wtf/view"
|
||||||
@ -56,15 +57,26 @@ func (widget *Widget) content() (string, string, bool) {
|
|||||||
return widget.CommonSettings().Title, widget.err.Error(), false
|
return widget.CommonSettings().Title, widget.err.Error(), false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sort the bases alphabetically to ensure consistent display ordering
|
||||||
|
bases := []string{}
|
||||||
|
for base := range widget.settings.rates {
|
||||||
|
bases = append(bases, base)
|
||||||
|
}
|
||||||
|
sort.Strings(bases)
|
||||||
|
|
||||||
out := ""
|
out := ""
|
||||||
idx := 0
|
|
||||||
for base, rates := range widget.settings.rates {
|
for idx, base := range bases {
|
||||||
|
rates := widget.settings.rates[base]
|
||||||
|
|
||||||
|
rowColor := widget.CommonSettings().RowColor(idx)
|
||||||
|
|
||||||
for _, cur := range rates {
|
for _, cur := range rates {
|
||||||
rate := widget.rates[base][cur]
|
rate := widget.rates[base][cur]
|
||||||
|
|
||||||
out += fmt.Sprintf(
|
out += fmt.Sprintf(
|
||||||
"[%s]1 %s = %s %s[white]\n",
|
"[%s]1 %s = %s %s[white]\n",
|
||||||
widget.CommonSettings().RowColor(idx),
|
rowColor,
|
||||||
base,
|
base,
|
||||||
widget.formatConversionRate(rate),
|
widget.formatConversionRate(rate),
|
||||||
cur,
|
cur,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user