From ba709cdcf6700d6279a6a21c71321c8c9315d267 Mon Sep 17 00:00:00 2001 From: Karina Kwiatek Date: Sat, 19 Jun 2021 21:37:04 +0200 Subject: [PATCH] Update theme-color meta value to match the current page's theme --- app/helpers/theme_helper.rb | 17 +++++++++++++---- app/views/layouts/base.haml | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/helpers/theme_helper.rb b/app/helpers/theme_helper.rb index 36de9399..61015cb2 100644 --- a/app/helpers/theme_helper.rb +++ b/app/helpers/theme_helper.rb @@ -33,7 +33,7 @@ module ThemeHelper theme.attributes.each do |k, v| next unless ATTRIBUTE_MAP.key?(k) - if k.include? "text" + if k.include? 'text' hex = get_hex_color_from_theme_value(v) body += "\t--#{ATTRIBUTE_MAP[k]}: #{get_decimal_triplet_from_hex(hex)};\n" else @@ -42,11 +42,20 @@ module ThemeHelper end body += "\t--turbolinks-progress-color: ##{lighten(theme.primary_color)}\n" - body += "}" + body += '}' content_tag(:style, body) end + def theme_color + theme = get_active_theme + if theme + "##{get_hex_color_from_theme_value(theme.primary_color)}" + else + '#5e35b1' + end + end + def get_active_theme if @user&.theme if user_signed_in? @@ -64,12 +73,12 @@ module ThemeHelper end def get_hex_color_from_theme_value(value) - ('0000000' + value.to_s(16))[-6, 6] + ("0000000#{value.to_s(16)}")[-6, 6] end def get_decimal_triplet_from_hex(value) hexes = value.split(/(.{2})/).reject { |c| c.empty? } - hexes.map(&:hex).join(", ") + hexes.map(&:hex).join(', ') end def rgb_values_from_hex(value) diff --git a/app/views/layouts/base.haml b/app/views/layouts/base.haml index c209fc19..5af15d4a 100644 --- a/app/views/layouts/base.haml +++ b/app/views/layouts/base.haml @@ -4,7 +4,7 @@ %meta{ charset: 'utf-8' } %meta{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' } %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1, user-scalable=no' } - %meta{ name: 'theme-color', content: '#5e35b1' } + %meta{ name: 'theme-color', content: theme_color } %link{ rel: 'apple-touch-icon', href: '/apple-touch-icon-precomposed.png' } %link{ rel: 'icon', href: '/images/favicon/favicon-16.png', sizes: '16x16' } %link{ rel: 'icon', href: '/icon-152.png', sizes: '152x152' }