Skip to content

Commit

Permalink
🐛 Fixes theme not updated (#774)
Browse files Browse the repository at this point in the history
  • Loading branch information
Lissy93 committed Jun 30, 2022
1 parent 7e861b7 commit a2442c7
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 25 deletions.
3 changes: 2 additions & 1 deletion src/components/Settings/ThemeSelector.vue
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ export default {
*/
themeChanged() {
this.$store.commit(Keys.SET_THEME, this.selectedTheme);
this.updateTheme(this.selectedTheme);
},
/* Returns the initial theme */
getInitialTheme() {
Expand Down Expand Up @@ -164,7 +165,7 @@ export default {
this.themeHelper.theme = newTheme;
}
this.ApplyCustomVariables(newTheme);
localStorage.setItem(localStorageKeys.THEME, newTheme);
// localStorage.setItem(localStorageKeys.THEME, newTheme);
},
/* Removes any applied themes */
resetToDefault() {
Expand Down
6 changes: 6 additions & 0 deletions src/mixins/HomeMixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Defaults, { localStorageKeys, iconCdns } from '@/utils/defaults';
import Keys from '@/utils/StoreMutations';
import { searchTiles } from '@/utils/Search';
import { checkItemVisibility } from '@/utils/CheckItemVisibility';
import { GetTheme, ApplyLocalTheme, ApplyCustomVariables } from '@/utils/ThemeHelper';

const HomeMixin = {
props: {
Expand Down Expand Up @@ -51,6 +52,11 @@ const HomeMixin = {
this.$store.commit(Keys.USE_MAIN_CONFIG);
}
},
setTheme() {
const theme = GetTheme();
ApplyLocalTheme(theme);
ApplyCustomVariables(theme);
},
updateModalVisibility(modalState) {
this.$store.commit('SET_MODAL_OPEN', modalState);
},
Expand Down
10 changes: 2 additions & 8 deletions src/store.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ const store = new Vuex.Store({
return state.remoteConfig.pages || [];
},
theme(state) {
return state.config.appConfig.theme;
return localStorage[localStorageKeys.THEME] || state.config.appConfig.theme;
},
webSearch(state, getters) {
return getters.appConfig.webSearch || {};
Expand Down Expand Up @@ -272,6 +272,7 @@ const store = new Vuex.Store({
const newConfig = { ...state.config };
newConfig.appConfig.theme = theme;
state.config = newConfig;
localStorage.setItem(localStorageKeys.THEME, theme);
InfoHandler('Theme updated', InfoKeys.VISUAL);
},
[SET_CUSTOM_COLORS](state, customColors) {
Expand Down Expand Up @@ -318,13 +319,6 @@ const store = new Vuex.Store({
commit(SET_REMOTE_CONFIG, yaml.load((await axios.get('/conf.yml')).data));
const deepCopy = (json) => JSON.parse(JSON.stringify(json));
const config = deepCopy(new ConfigAccumulator().config());
if (config.appConfig?.theme) {
// Save theme defined in conf.yml as primary
localStorage.setItem(localStorageKeys.PRIMARY_THEME, config.appConfig.theme);
// This will set theme back to primary in case we were on a themed page
// and the index page is loaded w/o navigation (e.g. modifying browser location)
localStorage.setItem(localStorageKeys.THEME, config.appConfig.theme);
}
commit(SET_CONFIG, config);
},
/* Fetch config for a sub-page (sections and pageInfo only) */
Expand Down
12 changes: 1 addition & 11 deletions src/views/Minimal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ import HomeMixin from '@/mixins/HomeMixin';
import MinimalSection from '@/components/MinimalView/MinimalSection.vue';
import MinimalHeading from '@/components/MinimalView/MinimalHeading.vue';
import MinimalSearch from '@/components/MinimalView/MinimalSearch.vue';
import { GetTheme, ApplyLocalTheme, ApplyCustomVariables } from '@/utils/ThemeHelper';
import { localStorageKeys } from '@/utils/defaults';
import ConfigLauncher from '@/components/Settings/ConfigLauncher';
Expand All @@ -74,10 +73,8 @@ export default {
layout: '',
selectedSection: 0, // The index of currently selected section
tabbedView: true, // By default use tabs, when searching then show all instead
theme: GetTheme(),
}),
watch: {
/* When the theme changes, then call the update method */
searchValue() {
this.tabbedView = !this.searchValue || this.searchValue.length === 0;
},
Expand Down Expand Up @@ -125,18 +122,11 @@ export default {
}
return '';
},
/* If theme present, then call helper to apply it, and any custom colors */
applyTheme() {
if (this.theme) {
ApplyLocalTheme(this.theme);
ApplyCustomVariables(this.theme);
}
},
},
mounted() {
this.initiateFontAwesome();
this.initiateMaterialDesignIcons();
this.applyTheme();
this.setTheme();
},
};
</script>
Expand Down
5 changes: 0 additions & 5 deletions src/views/Workspace.vue
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,6 @@ export default {
this.url = '';
this.widgets = widgets;
},
setTheme() {
const theme = this.GetTheme();
this.ApplyLocalTheme(theme);
this.ApplyCustomVariables(theme);
},
initiateFontAwesome() {
const fontAwesomeScript = document.createElement('script');
const faKey = this.appConfig.fontAwesomeKey || Defaults.fontAwesomeKey;
Expand Down

0 comments on commit a2442c7

Please sign in to comment.