diff --git a/src/App.vue b/src/App.vue index 0b5525cffb..7905818183 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,115 +1,17 @@ diff --git a/src/components/AppBar.vue b/src/components/AppBar.vue new file mode 100644 index 0000000000..f4d5a47aa5 --- /dev/null +++ b/src/components/AppBar.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/components/AppDisconnected.vue b/src/components/AppDisconnected.vue new file mode 100644 index 0000000000..b4e353d91f --- /dev/null +++ b/src/components/AppDisconnected.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/components/FlashMessage.vue b/src/components/FlashMessage.vue new file mode 100644 index 0000000000..f9ef4b2651 --- /dev/null +++ b/src/components/FlashMessage.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/eventBus.ts b/src/eventBus.ts new file mode 100644 index 0000000000..b0230b55b6 --- /dev/null +++ b/src/eventBus.ts @@ -0,0 +1,2 @@ +import Vue from 'vue' +export default new Vue() diff --git a/src/store/index.ts b/src/store/index.ts index ea2bcf8676..65be54ff12 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -12,7 +12,7 @@ export default new Vuex.Store({ strict: (process.env.NODE_ENV === 'development'), state: { version: '0.0.1', - darkMode: false + darkMode: true }, modules: { config, diff --git a/src/store/socket/actions.ts b/src/store/socket/actions.ts index b6a2ff14c9..90071d0eeb 100644 --- a/src/store/socket/actions.ts +++ b/src/store/socket/actions.ts @@ -5,6 +5,7 @@ import { RootState } from '../types' import { configureChartEntry } from '../helpers' import { Globals } from '@/globals' import { SocketActions } from '@/socketActions' +import EventBus from '@/eventBus' export const actions: ActionTree = { /** @@ -41,7 +42,7 @@ export const actions: ActionTree = { if (payload.__request__ && payload.__request__.wait) { commit('removeWait', payload.__request__.wait) } - console.debug('throw an error to the user', payload.message) + EventBus.$emit('flashMessage', { type: 'error', timeout: -1, text: payload.message }) } if (payload.code === 503) { // && payload.message.toLowerCase() === 'klippy host not connected' diff --git a/src/types/flashmessage.ts b/src/types/flashmessage.ts new file mode 100644 index 0000000000..cd242f018a --- /dev/null +++ b/src/types/flashmessage.ts @@ -0,0 +1,6 @@ +export interface FlashMessage { + type?: 'error' | 'warning' | 'primary' | 'secondary'; + open: boolean; + text?: string; + timeout?: number; +} diff --git a/src/types/index.ts b/src/types/index.ts index 462cbf2c02..71d23c47d1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,10 +1,12 @@ import { DialogData, NewDirectory } from './dialogs' import { ChartConfiguration, ChartColors, ChartNamedColors } from './chart' +import { FlashMessage } from './flashmessage' export { DialogData, NewDirectory, ChartConfiguration, ChartColors, - ChartNamedColors + ChartNamedColors, + FlashMessage } diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 2c111683fd..4b12a2be96 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -29,6 +29,7 @@ import UtilsMixin from '@/mixins/utils' import MacroSettingsWidget from '@/components/widgets/settings/MacroSettingsWidget.vue' import GeneralSettingsWidget from '@/components/widgets/settings/GeneralSettingsWidget.vue' import TemperaturePresetsSettingsWidget from '@/components/widgets/settings/TemperaturePresetsSettingsWidget.vue' +import EventBus from '@/eventBus' @Component({ components: { @@ -43,6 +44,7 @@ export default class Settings extends Mixins(UtilsMixin) { } saveFileConfig () { + EventBus.$emit('flashMessage') this.$store.dispatch('config/saveFileConfig') } }