30 lines
710 B
Go
30 lines
710 B
Go
// Package ui persists UI-only state (color overrides, etc.).
|
|
package ui
|
|
|
|
import (
|
|
"maps"
|
|
"sync"
|
|
|
|
"github.com/evcc-io/evcc/core/keys"
|
|
"github.com/evcc-io/evcc/server/db/settings"
|
|
)
|
|
|
|
var colorsMu sync.RWMutex
|
|
|
|
// GetDeviceColors returns the persisted title→hex map (never nil).
|
|
func GetDeviceColors() map[string]string {
|
|
colorsMu.RLock()
|
|
defer colorsMu.RUnlock()
|
|
m := map[string]string{}
|
|
_ = settings.Json(keys.DeviceColors, &m)
|
|
return m
|
|
}
|
|
|
|
// SaveDeviceColors persists the title→hex map.
|
|
func SaveDeviceColors(m map[string]string) error {
|
|
colorsMu.Lock()
|
|
defer colorsMu.Unlock()
|
|
clean := make(map[string]string, len(m))
|
|
maps.Copy(clean, m)
|
|
return settings.SetJson(keys.DeviceColors, clean)
|
|
}
|