diff --git a/src/main.js b/src/main.js index b8ee994..a9b7b78 100644 --- a/src/main.js +++ b/src/main.js @@ -17,6 +17,8 @@ Vue.use(Toast) Vue.use(DataTablee) Vue.use(VModal, { dialog: true }) +store.dispatch('darkmodeModule/findAndSetDarkmodeSupported') + new Vue({ el: '#app', router, diff --git a/src/modules/darkmodeModule.js b/src/modules/darkmodeModule.js new file mode 100644 index 0000000..c5a600e --- /dev/null +++ b/src/modules/darkmodeModule.js @@ -0,0 +1,23 @@ +export default { + namespaced: true, + state: { + darkmodeSupported: undefined, + userChoice: undefined + }, + getters: { + darkmodeSupported: (state) => { + return state.darkmodeSupported + } + }, + mutations: { + SET_DARKMODE_SUPPORT: (state, browserSupported) => { + state.darkmodeSupported = browserSupported + } + }, + actions: { + findAndSetDarkmodeSupported({ commit }) { + const browserSupported = window.matchMedia('(prefers-color-scheme)').media !== 'not all' + commit('SET_DARKMODE_SUPPORT', browserSupported) + } + } +} diff --git a/src/store.js b/src/store.js index 1318390..901b568 100644 --- a/src/store.js +++ b/src/store.js @@ -2,12 +2,14 @@ import Vue from 'vue' import Vuex from 'vuex' import torrentModule from './modules/torrentModule.js' +import darkmodeModule from './modules/darkmodeModule.js' Vue.use(Vuex) const store = new Vuex.Store({ modules: { - torrentModule + torrentModule, + darkmodeModule } })