mirror of
https://github.com/discourse/discourse.git
synced 2025-03-23 01:06:40 +08:00
DEV: Introduce home-logo-image-url
value transformer (#28189)
Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
This commit is contained in:
parent
5357f0175e
commit
492a45da37
@ -55,23 +55,27 @@ export default class HomeLogo extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logoResolver(name, opts = {}) {
|
logoResolver(name, opts = {}) {
|
||||||
// get alternative logos for browser dark dark mode switching
|
let url;
|
||||||
if (opts.dark) {
|
|
||||||
return this.siteSettings[`site_${name}_dark_url`];
|
|
||||||
}
|
|
||||||
|
|
||||||
// try dark logos first when color scheme is dark
|
if (opts.dark) {
|
||||||
// this is independent of browser dark mode
|
// get alternative logos for browser dark dark mode switching
|
||||||
// hence the fallback to normal logos
|
url = this.siteSettings[`site_${name}_dark_url`];
|
||||||
if (this.session.defaultColorSchemeIsDark) {
|
} else if (this.session.defaultColorSchemeIsDark) {
|
||||||
return (
|
// try dark logos first when color scheme is dark
|
||||||
|
// this is independent of browser dark mode
|
||||||
|
// hence the fallback to normal logos
|
||||||
|
url =
|
||||||
this.siteSettings[`site_${name}_dark_url`] ||
|
this.siteSettings[`site_${name}_dark_url`] ||
|
||||||
this.siteSettings[`site_${name}_url`] ||
|
this.siteSettings[`site_${name}_url`] ||
|
||||||
""
|
"";
|
||||||
);
|
} else {
|
||||||
|
url = this.siteSettings[`site_${name}_url`] || "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.siteSettings[`site_${name}_url`] || "";
|
return applyValueTransformer("home-logo-image-url", url, {
|
||||||
|
name,
|
||||||
|
dark: opts.dark,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
|
@ -7,4 +7,5 @@ export const VALUE_TRANSFORMERS = Object.freeze([
|
|||||||
// use only lowercase names
|
// use only lowercase names
|
||||||
"header-notifications-avatar-size",
|
"header-notifications-avatar-size",
|
||||||
"home-logo-href",
|
"home-logo-href",
|
||||||
|
"home-logo-image-url",
|
||||||
]);
|
]);
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
import { visit } from "@ember/test-helpers";
|
||||||
|
import { test } from "qunit";
|
||||||
|
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||||
|
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||||
|
|
||||||
|
acceptance("home-logo-image-url transformer", function () {
|
||||||
|
test("applying a value transformation", async function (assert) {
|
||||||
|
withPluginApi("1.34.0", (api) => {
|
||||||
|
api.registerValueTransformer(
|
||||||
|
"home-logo-image-url",
|
||||||
|
({ value }) => "/transformed" + value
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
await visit("/");
|
||||||
|
|
||||||
|
assert
|
||||||
|
.dom("#site-logo")
|
||||||
|
.hasAttribute(
|
||||||
|
"src",
|
||||||
|
"/transformed/assets/logo.png",
|
||||||
|
"it transforms the logo url"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user