mirror of
https://github.com/braver/programmingfonts.git
synced 2024-09-08 12:41:32 +02:00
46 lines
971 B
JavaScript
46 lines
971 B
JavaScript
import { Cookies } from './cookies.js'
|
|
|
|
export class Theme {
|
|
el = document.getElementById('select-theme')
|
|
|
|
init () {
|
|
if (Cookies.get('theme')) {
|
|
this.el.value = Cookies.get('theme')
|
|
}
|
|
this.el.onchange = () => {
|
|
this.set()
|
|
}
|
|
this.set()
|
|
|
|
document.getElementById('theme-next').onclick = () => {
|
|
this.walk('down')
|
|
}
|
|
|
|
document.getElementById('theme-previous').onclick = () => {
|
|
this.walk('up')
|
|
}
|
|
}
|
|
|
|
set () {
|
|
let theme = 'oceanic-next'
|
|
|
|
if (this.el.selectedIndex > -1) {
|
|
theme = this.el.options[this.el.selectedIndex].textContent
|
|
}
|
|
window.CMeditor.setOption('theme', theme)
|
|
Cookies.set('theme', theme)
|
|
}
|
|
|
|
walk (direction) {
|
|
const current = this.el.selectedOptions[0]
|
|
let next
|
|
if (current) {
|
|
next = direction === 'up' ? current.previousElementSibling : current.nextElementSibling
|
|
}
|
|
if (next) {
|
|
this.el.value = next.value
|
|
}
|
|
this.set()
|
|
}
|
|
}
|