svgpreviewer/store/mode.js (21 lines of code) (raw):

export const state = () => ({ isDarkMode: false, }); export const mutations = { // eslint-disable-next-line no-shadow SET_DARK_MODE(state, isDarkMode) { state.isDarkMode = isDarkMode; }, }; export const actions = { loadDarkMode({ commit }) { const isDarkMode = JSON.parse(localStorage.getItem('isDarkMode')); commit('SET_DARK_MODE', isDarkMode || false); document.documentElement.classList.toggle('gl-dark', isDarkMode); }, // eslint-disable-next-line no-shadow toggleDarkMode({ commit, state }) { const isDarkMode = !state.isDarkMode; commit('SET_DARK_MODE', isDarkMode); localStorage.setItem('isDarkMode', JSON.stringify(state.isDarkMode)); document.documentElement.classList.toggle('gl-dark', isDarkMode); }, };