First version with naive color extrapolation.
This commit is contained in:
parent
a169abcec2
commit
ed84c6acc0
4 changed files with 86 additions and 4 deletions
|
@ -10,7 +10,10 @@ const settings = {
|
|||
muteWordsString: this.$store.state.config.muteWords.join('\n'),
|
||||
autoLoadLocal: this.$store.state.config.autoLoad,
|
||||
streamingLocal: this.$store.state.config.streaming,
|
||||
hoverPreviewLocal: this.$store.state.config.hoverPreview
|
||||
hoverPreviewLocal: this.$store.state.config.hoverPreview,
|
||||
bgColorLocal: '',
|
||||
fgColorLocal: '',
|
||||
linkColorLocal: ''
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -21,6 +24,32 @@ const settings = {
|
|||
return this.$store.state.users.currentUser
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
setCustomTheme () {
|
||||
if (!this.bgColorLocal && !this.fgColorLocal && !this.linkColorLocal) {
|
||||
// reset to picked themes
|
||||
}
|
||||
const rgb = (hex) => {
|
||||
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
||||
return result ? {
|
||||
r: parseInt(result[1], 16),
|
||||
g: parseInt(result[2], 16),
|
||||
b: parseInt(result[3], 16)
|
||||
} : null
|
||||
}
|
||||
const bgRgb = rgb(this.bgColorLocal)
|
||||
const fgRgb = rgb(this.fgColorLocal)
|
||||
const linkRgb = rgb(this.linkColorLocal)
|
||||
if (bgRgb && fgRgb && linkRgb) {
|
||||
console.log('all colors ok')
|
||||
this.$store.dispatch('setOption', { name: 'customTheme', value: {
|
||||
fg: fgRgb,
|
||||
bg: bgRgb,
|
||||
link: linkRgb
|
||||
}})
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
hideAttachmentsLocal (value) {
|
||||
this.$store.dispatch('setOption', { name: 'hideAttachments', value })
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
<h2>{{$t('settings.theme')}}</h2>
|
||||
<style-switcher></style-switcher>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<h3>Custom theme</h3>
|
||||
<p>Enter hex color codes (#aabbcc) into the text fields.</p>
|
||||
<input type="text" placeholder="Background" v-model="bgColorLocal">
|
||||
<input type="text" placeholder="Foreground" v-model="fgColorLocal">
|
||||
<input type="text" placeholder="Highlight" v-model="linkColorLocal">
|
||||
<button @click="setCustomTheme">Submit</button>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<h2>{{$t('settings.filtering')}}</h2>
|
||||
<p>{{$t('settings.filtering_explanation')}}</p>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue