안녕하세요,
헤더에 새 아이콘(라이트/다크 테마 전환기용)을 추가하려고 하고 있습니다. 여기 다른 댓글에서 영감을 받아 시도해 보았지만, 예상대로 작동하지 않습니다. 게시글 페이지를 아래로 스크롤하면 아이콘이 사라지는데, 항상 표시되도록 도와주실 수 있을까요?
감사합니다 ![]()
(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>