mirror of https://github.com/vector-im/riot-web
Merge pull request #630 from matrix-org/rav/fix_themes
(hopefully) fix theming on Chromepull/21833/head
commit
2637ae3af3
|
@ -598,20 +598,32 @@ module.exports = React.createClass({
|
||||||
theme = 'light';
|
theme = 'light';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// look for the stylesheet elements.
|
||||||
|
// styleElements is a map from style name to HTMLLinkElement.
|
||||||
|
var styleElements = Object.create(null);
|
||||||
var i, a;
|
var i, a;
|
||||||
for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
|
for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
|
||||||
var href = a.getAttribute("href");
|
var href = a.getAttribute("href");
|
||||||
|
// shouldn't we be using the 'title' tag rather than the href?
|
||||||
var match = href.match(/^bundles\/.*\/theme-(.*)\.css$/);
|
var match = href.match(/^bundles\/.*\/theme-(.*)\.css$/);
|
||||||
if (match) {
|
if (match) {
|
||||||
if (match[1] === theme) {
|
styleElements[match[1]] = a;
|
||||||
a.disabled = false;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
a.disabled = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!(theme in styleElements)) {
|
||||||
|
throw new Error("Unknown theme " + theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
// disable all of them first, then enable the one we want. Chrome only
|
||||||
|
// bothers to do an update on a true->false transition, so this ensures
|
||||||
|
// that we get exactly one update, at the right time.
|
||||||
|
|
||||||
|
Object.values(styleElements).forEach((a) => {
|
||||||
|
a.disabled = true;
|
||||||
|
});
|
||||||
|
styleElements[theme].disabled = false;
|
||||||
|
|
||||||
if (theme === 'dark') {
|
if (theme === 'dark') {
|
||||||
// abuse the tinter to change all the SVG's #fff to #2d2d2d
|
// abuse the tinter to change all the SVG's #fff to #2d2d2d
|
||||||
// XXX: obviously this shouldn't be hardcoded here.
|
// XXX: obviously this shouldn't be hardcoded here.
|
||||||
|
|
Loading…
Reference in New Issue