Files
raven/app/ayanova/src/main.js
2018-11-23 18:24:23 +00:00

95 lines
2.2 KiB
JavaScript

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");