From 7312012b966974dd3a95de248708e5c1c5556455 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 19 May 2019 12:02:49 +0200
Subject: [PATCH] [enh] add global error handler (toast)

---
 src/main.ts                           | 10 ++++++++++
 src/vue-modules/register-bootstrap.ts | 10 ++++++----
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/main.ts b/src/main.ts
index 1fdabb8..0f9f3f2 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -12,6 +12,16 @@ import store from '@/vue-modules/register-store'
 
 Vue.config.productionTip = false
 
+Vue.config.errorHandler = (err, vm, info) => {
+
+  vm.$bvToast.toast(`${err.message}`, {
+    title: 'Error',
+    variant: 'danger',
+    autoHideDelay: 8000,
+    appendToast: true,
+  })
+}
+
 // Depends on apollo
 const $webmin = webmin(apolloProvider.defaultClient)
 
diff --git a/src/vue-modules/register-bootstrap.ts b/src/vue-modules/register-bootstrap.ts
index c95d912..beaed72 100644
--- a/src/vue-modules/register-bootstrap.ts
+++ b/src/vue-modules/register-bootstrap.ts
@@ -3,15 +3,17 @@ import 'bootstrap-vue/dist/bootstrap-vue.css'
 
 import Vue from 'vue'
 import BootstrapVue from "bootstrap-vue"
-
 // ------------- Lighter boostrap way -------------
-import BButton from 'bootstrap-vue/es/components/button/button'
-import BBadge from 'bootstrap-vue/es/components/badge/badge'
-import BSpinner from 'bootstrap-vue/es/components/spinner'
 
 // Vue.component('b-button', BButton)
 // Vue.component('b-badge', BBadge)
 // Vue.component('b-spinner', BSpinner)
 // ------------------------------------------------
 
+declare module 'vue/types/vue' {
+  interface Vue {
+    $bvToast: any
+  }
+}
+
 Vue.use(BootstrapVue)
-- 
GitLab