你好,
我试图在页眉中添加一个新图标(用于浅色/深色主题切换器),并参考了这里的另一条评论,但效果不太理想。滚动帖子页面时图标会消失,有人能帮我让它始终显示吗?
非常感谢 ![]()
(我尝试添加了 keep 类,但它仍然消失了)
<script type="text/discourse-plugin" version="0.8">
var h = require('virtual-dom').h;
var ajax = require('discourse/lib/ajax').ajax;
var themeSelector = require('discourse/lib/theme-selector');
var light = 94;
var dark = 98;
const { iconNode } = require("discourse-common/lib/icon-library");
let icon = iconNode('adjust');
api.createWidget("header-theme-selector", {
tagName: "span.header-theme-selector",
buildKey: attrs => `header-theme-selector`,
click(event){
let $target = $(event.target);
let id = light;
let user = api.getCurrentUser();
if(user){
console.log(themeSelector.currentThemeId());
if (themeSelector.currentThemeId() == light) {
id = dark;
}
user.findDetails().then(user => {
seq = user.get("user_option.theme_key_seq");
this.setTheme(id, seq);
});
}else{
this.setTheme(id);
};
return true;
},
setTheme(themeId, seq = 0){
themeSelector.setLocalTheme([themeId], seq);
window.location.reload();
this.scheduleRerender();
},
html(attrs, state){
return [h('div', {attributes: {"class": "switcher keep"}}, icon)];
}
});
api.decorateWidget('header-buttons:after', (helper)=>{
const showExtraInfo = helper.attrs.topic;
if(!showExtraInfo) {
return [helper.widget.attach('header-theme-selector')];
}
});
</script>