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 @@
-
-
-
-
-
- mdi-printer-3d-nozzle
-
- Fluidd
-
-
- mdi-home Dashboard
-
-
-
-
- mdi-car-brake-alert
-
- Emergency Stop
-
- mdi-cog
-
-
-
+
-
-
-
- Connecting to printer...
-
-
-
- Klippy has disconnected or is shutdown.
-
-
- Firmware Restart
-
-
-
-
-
-
+
@@ -119,14 +21,28 @@
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 @@
+
+
+
+
+ mdi-printer-3d-nozzle
+
+ Fluidd
+
+
+ mdi-home Dashboard
+
+
+
+
+ mdi-car-brake-alert
+
+ Emergency Stop
+
+ mdi-cog
+
+
+
+
+
+
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 @@
+
+
+
+
+ Connecting to printer...
+
+
+
+ Klippy has disconnected or is shutdown.
+
+
+ Firmware Restart
+
+
+
+
+
+
+
+
+
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 @@
+
+
+ {{ text }}
+
+
+
+ Close
+
+
+
+
+
+
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')
}
}