From 1c4ecdebee7d7ac0322d7cb6c943ed8e53fd6e02 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Mon, 10 Feb 2025 16:57:30 +0200 Subject: [PATCH] Networklist now properly darkens custom colors from networks --- internal/client/ui/colors/colors.go | 13 ++++++++++++- internal/client/ui/core/core.go | 2 ++ .../client/ui/core/networklist/networklist.go | 19 +++++++++---------- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/internal/client/ui/colors/colors.go b/internal/client/ui/colors/colors.go index 2c11f72..845018c 100644 --- a/internal/client/ui/colors/colors.go +++ b/internal/client/ui/colors/colors.go @@ -156,6 +156,7 @@ func Save() { func Restore() { Load(colors) + isDarkened = false } func Load(colors []lipgloss.Color) { @@ -255,15 +256,25 @@ func ToHexRGB(r, g, b uint8) string { return fmt.Sprintf("#%02X%02X%02X", r, g, b) } +var isDarkened = false + +const DarkeningFactor = 0.5 + func Darken() { Save() colors := Get() for i, color := range colors { - colors[i] = DarkenColor(color, 0.5) + colors[i] = DarkenColor(color, DarkeningFactor) } Load(colors) + + isDarkened = true +} + +func IsDarkened() bool { + return isDarkened } func DarkenColor(color lipgloss.Color, factor float64) lipgloss.Color { diff --git a/internal/client/ui/core/core.go b/internal/client/ui/core/core.go index 2122fd0..160df87 100644 --- a/internal/client/ui/core/core.go +++ b/internal/client/ui/core/core.go @@ -171,6 +171,8 @@ func (m Model) View() string { popup = m.banViewPopup.View() } else if m.signalAddPopup != nil { popup = m.signalAddPopup.View() + } else { + assert.Never("missing handling of a popup!") } x := (ui.Width - lipgloss.Width(popup)) / 2 diff --git a/internal/client/ui/core/networklist/networklist.go b/internal/client/ui/core/networklist/networklist.go index 16afda1..69d7c76 100644 --- a/internal/client/ui/core/networklist/networklist.go +++ b/internal/client/ui/core/networklist/networklist.go @@ -75,6 +75,13 @@ func (m Model) View() string { networks = networks[m.base:upper] for i, networkId := range networks { network := state.State.Networks[networkId] + fg := lipgloss.Color(network.FgHexColor) + bg := lipgloss.Color(network.BgHexColor) + + if colors.IsDarkened() { + fg = colors.DarkenColor(fg, colors.DarkeningFactor) + bg = colors.DarkenColor(bg, colors.DarkeningFactor) + } pings, ok := 0, false frequencies := state.State.Frequencies[networkId] @@ -86,17 +93,9 @@ func (m Model) View() string { var icon lipgloss.Style if ok && pings != 0 { - icon = ui.IconStyleNotif(network.Icon, - lipgloss.Color(network.FgHexColor), - lipgloss.Color(network.BgHexColor), - colors.BackgroundDimmer, pings, - ) + icon = ui.IconStyleNotif(network.Icon, fg, bg, colors.BackgroundDimmer, pings) } else { - icon = ui.IconStyle(network.Icon, - lipgloss.Color(network.FgHexColor), - lipgloss.Color(network.BgHexColor), - colors.BackgroundDimmer, - ) + icon = ui.IconStyle(network.Icon, fg, bg, colors.BackgroundDimmer) } if m.index == m.base+i {