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