aboutsummaryrefslogtreecommitdiffhomepage
path: root/model
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-07-18 22:30:05 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-07-18 22:30:05 -0700
commita291d8a38b40569fdd1f00125ca0b29e4b9264f2 (patch)
tree13345ce7b413d9919521de258e60954467afcda0 /model
parentc1ab27172c0d82f9289aeb3402056f727bc473fd (diff)
Improve themes handling
- Store user theme in session - Logged out users will keep their theme - Add theme background color to web manifest and meta tag
Diffstat (limited to 'model')
-rw-r--r--model/app_session.go (renamed from model/session.go)5
-rw-r--r--model/theme.go12
2 files changed, 15 insertions, 2 deletions
diff --git a/model/session.go b/model/app_session.go
index 763f709..e9ee06e 100644
--- a/model/session.go
+++ b/model/app_session.go
@@ -18,12 +18,13 @@ type SessionData struct {
FlashMessage string `json:"flash_message"`
FlashErrorMessage string `json:"flash_error_message"`
Language string `json:"language"`
+ Theme string `json:"Theme"`
PocketRequestToken string `json:"pocket_request_token"`
}
func (s SessionData) String() string {
- return fmt.Sprintf(`CSRF="%s", "OAuth2State="%s", FlashMessage="%s", FlashErrorMessage="%s", Lang="%s"`,
- s.CSRF, s.OAuth2State, s.FlashMessage, s.FlashErrorMessage, s.Language)
+ return fmt.Sprintf(`CSRF=%q, "OAuth2State=%q, FlashMsg=%q, FlashErrorMsg=%q, Lang=%q, Theme=%q`,
+ s.CSRF, s.OAuth2State, s.FlashMessage, s.FlashErrorMessage, s.Language, s.Theme)
}
// Value converts the session data to JSON.
diff --git a/model/theme.go b/model/theme.go
index 5d32df4..f58f91c 100644
--- a/model/theme.go
+++ b/model/theme.go
@@ -15,6 +15,18 @@ func Themes() map[string]string {
}
}
+// ThemeColor returns the color for the address bar or/and the browser color.
+// https://developer.mozilla.org/en-US/docs/Web/Manifest#theme_color
+// https://developers.google.com/web/tools/lighthouse/audits/address-bar
+func ThemeColor(theme string) string {
+ switch theme {
+ case "black":
+ return "#222"
+ default:
+ return "#fff"
+ }
+}
+
// ValidateTheme validates theme value.
func ValidateTheme(theme string) error {
for key := range Themes() {