FIX: Offer site_logo_dark_url as an option for dark mode themes (#14361)
This commit is contained in:
parent
ae09b46098
commit
da88cad648
|
@ -341,6 +341,18 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
def application_logo_dark_url
|
||||
@application_logo_dark_url ||= begin
|
||||
if dark_scheme_id != -1
|
||||
if mobile_view? && SiteSetting.site_mobile_logo_dark_url != application_logo_url
|
||||
SiteSetting.site_mobile_logo_dark_url
|
||||
elsif !mobile_view? && SiteSetting.site_logo_dark_url != application_logo_url
|
||||
SiteSetting.site_logo_dark_url
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def login_path
|
||||
"#{Discourse.base_path}/login"
|
||||
end
|
||||
|
|
|
@ -5,7 +5,12 @@
|
|||
<div class="title">
|
||||
<a href="<%= path "/" %>">
|
||||
<%- if application_logo_url.present? %>
|
||||
<img src="<%= application_logo_url %>" alt="<%= SiteSetting.title %>" id="site-logo">
|
||||
<picture>
|
||||
<%- if application_logo_dark_url.present? %>
|
||||
<source srcset="<%= application_logo_dark_url %>" media="(prefers-color-scheme: dark)" />
|
||||
<%- end %>
|
||||
<img src="<%= application_logo_url %>" alt="<%= SiteSetting.title %>" id="site-logo" />
|
||||
</picture>
|
||||
<%- else %>
|
||||
<h2 id='site-text-logo'><%= SiteSetting.title %></h2>
|
||||
<%- end %>
|
||||
|
|
|
@ -136,6 +136,59 @@ describe ApplicationHelper do
|
|||
end
|
||||
end
|
||||
|
||||
describe "application_logo_dark_url" do
|
||||
context "when dark theme is not present" do
|
||||
context "when dark logo is not present" do
|
||||
it "should return nothing" do
|
||||
expect(helper.application_logo_dark_url.present?).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "when dark theme is present" do
|
||||
before do
|
||||
dark_theme = Theme.create(
|
||||
name: "Dark",
|
||||
user_id: -1,
|
||||
color_scheme_id: ColorScheme.find_by(base_scheme_id: "Dark").id
|
||||
)
|
||||
end
|
||||
|
||||
context "when dark logo is not present" do
|
||||
it "should return nothing" do
|
||||
expect(helper.application_logo_dark_url.present?).to eq(false)
|
||||
end
|
||||
end
|
||||
|
||||
context "when dark logo is present" do
|
||||
before do
|
||||
SiteSetting.logo_dark = Fabricate(:upload, url: '/images/logo-dark.png')
|
||||
end
|
||||
|
||||
it "should return correct url" do
|
||||
expect(helper.application_logo_dark_url).to eq(SiteSetting.site_logo_dark_url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "when dark theme is present and selected" do
|
||||
before do
|
||||
dark_theme = Theme.create(
|
||||
name: "Dark",
|
||||
user_id: -1,
|
||||
color_scheme_id: ColorScheme.find_by(base_scheme_id: "Dark").id
|
||||
)
|
||||
helper.request.env[:resolved_theme_id] = dark_theme.id
|
||||
SiteSetting.logo_dark = Fabricate(:upload, url: '/images/logo-dark.png')
|
||||
end
|
||||
|
||||
it "should return nothing" do
|
||||
expect(helper.application_logo_url).to eq(SiteSetting.site_logo_dark_url)
|
||||
expect(helper.application_logo_dark_url.present?).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "mobile_view?" do
|
||||
context "enable_mobile_theme is true" do
|
||||
before do
|
||||
|
|
Loading…
Reference in New Issue