Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import EventBus from '@/misc/EventBus'
- import PageHelper from '@/helpers/PageHelper'
- const EventsFactory = vm => ({
- setup() {
- setupRebootEvent(vm)
- setupCrashEvent(vm)
- setupErrorEvent(vm)
- },
- success(message) {
- // vm.$noty.info(message)
- },
- reboot() {
- EventBus.$emit('rebootEvent')
- },
- error(error) {
- EventBus.$emit('errorEvent', { vm, error })
- },
- crash(error) {
- EventBus.$emit('crashEvent', { vm, error })
- }
- })
- const setupRebootEvent = vm => {
- EventBus.$on('rebootEvent', onRebootEvent)
- }
- const setupCrashEvent = vm => {
- EventBus.$on('crashEvent', onCrashEvent)
- }
- const setupErrorEvent = vm => {
- EventBus.$on('errorEvent', onErrorEvent)
- }
- /**
- * We put a listener to the rebootEvent
- * when a crash needs a reboot and clear cache / session
- * we use this command
- */
- const onRebootEvent = error => {
- if (error) {
- console.log(error)
- localStorage.clear()
- }
- PageHelper.refreshPage()
- }
- /**
- * We put a listener to the crashEvent
- * This kind of error is major and lock the application itself
- * until the person refreshes the page entirely
- */
- const onCrashEvent = ({ vm, error }) => {
- if (error.message === 'Network Error') {
- addNetworkCrash(vm, error)
- return
- }
- addDefaultCrash(vm, error)
- }
- /**
- * We put a listener to the errorEvent
- * This kind of errors is minor and dispatch an error message
- */
- const onErrorEvent = ({ vm, error }) => {
- // vm.$noty.error(error)
- }
- const addNetworkCrash = (vm, rawError) => {
- vm.error = {
- message: 'Oh snap ! There is a network error, please refresh the page.',
- raw: rawError
- }
- }
- const addDefaultCrash = (vm, rawError) => {
- vm.error = {
- message: 'Oh snap ! Something went wrong, please refresh the page.',
- raw: rawError
- }
- }
- export default EventsFactory
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement