import "@babel/polyfill"; import '@fortawesome/fontawesome-free/css/all.css' import Vue from "vue"; import "./plugins/vuetify"; import App from "./App.vue"; import router from "./router"; import store from "./store"; import "./registerServiceWorker"; import errorHandler from "./utils/errorhandler"; import NProgress from "nprogress"; import "nprogress/nprogress.css"; Vue.config.productionTip = false; Vue.config.errorHandler = errorHandler.handleVueError; window.onerror = errorHandler.handleGeneralError; //Loading indicator on route change, probably don't need this //but do need one for ajax calls // router.beforeResolve((to, from, next) => { // // If this isn't an initial page load. // from; // if (to.name) { // // Start the route progress bar. // //NProgress.start() // // eslint-disable-next-line // console.log("---===LOADING===---"); // } // next(); // }); // router.afterEach((to, from) => { // // Complete the animation of the route progress bar. // //NProgress.done() // to; // from; // // eslint-disable-next-line // console.log("---===FINISHED LOADING===---"); // }); // Store a copy of the fetch function var _oldFetch = fetch; // Create our new version of the fetch function window.fetch = function() { // Create hooks var fetchStart = new Event("fetchStart", { view: document, bubbles: true, cancelable: false }); var fetchEnd = new Event("fetchEnd", { view: document, bubbles: true, cancelable: false }); // Pass the supplied arguments to the real fetch function var fetchCall = _oldFetch.apply(this, arguments); // Trigger the fetchStart event document.dispatchEvent(fetchStart); fetchCall .then(function() { // Trigger the fetchEnd event document.dispatchEvent(fetchEnd); }) .catch(function() { // Trigger the fetchEnd event document.dispatchEvent(fetchEnd); }); return fetchCall; }; document.addEventListener("fetchStart", function() { // eslint-disable-next-line //console.log("Show spinner"); NProgress.start(); }); document.addEventListener("fetchEnd", function() { // eslint-disable-next-line //console.log("Hide spinner"); NProgress.done(); }); new Vue({ router, store, render: h => h(App) }).$mount("#app");