Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. import EventBus from '@/misc/EventBus'
  2. import PageHelper from '@/helpers/PageHelper'
  3.  
  4. const EventsFactory = vm => ({
  5. setup() {
  6. setupRebootEvent(vm)
  7. setupCrashEvent(vm)
  8. setupErrorEvent(vm)
  9. },
  10.  
  11. success(message) {
  12. // vm.$noty.info(message)
  13. },
  14.  
  15. reboot() {
  16. EventBus.$emit('rebootEvent')
  17. },
  18.  
  19. error(error) {
  20. EventBus.$emit('errorEvent', { vm, error })
  21. },
  22.  
  23. crash(error) {
  24. EventBus.$emit('crashEvent', { vm, error })
  25. }
  26. })
  27.  
  28. const setupRebootEvent = vm => {
  29. EventBus.$on('rebootEvent', onRebootEvent)
  30. }
  31.  
  32. const setupCrashEvent = vm => {
  33. EventBus.$on('crashEvent', onCrashEvent)
  34. }
  35.  
  36. const setupErrorEvent = vm => {
  37. EventBus.$on('errorEvent', onErrorEvent)
  38. }
  39.  
  40. /**
  41. * We put a listener to the rebootEvent
  42. * when a crash needs a reboot and clear cache / session
  43. * we use this command
  44. */
  45. const onRebootEvent = error => {
  46. if (error) {
  47. console.log(error)
  48. localStorage.clear()
  49. }
  50. PageHelper.refreshPage()
  51. }
  52.  
  53. /**
  54. * We put a listener to the crashEvent
  55. * This kind of error is major and lock the application itself
  56. * until the person refreshes the page entirely
  57. */
  58. const onCrashEvent = ({ vm, error }) => {
  59. if (error.message === 'Network Error') {
  60. addNetworkCrash(vm, error)
  61. return
  62. }
  63. addDefaultCrash(vm, error)
  64. }
  65.  
  66. /**
  67. * We put a listener to the errorEvent
  68. * This kind of errors is minor and dispatch an error message
  69. */
  70. const onErrorEvent = ({ vm, error }) => {
  71. // vm.$noty.error(error)
  72. }
  73.  
  74. const addNetworkCrash = (vm, rawError) => {
  75. vm.error = {
  76. message: 'Oh snap ! There is a network error, please refresh the page.',
  77. raw: rawError
  78. }
  79. }
  80.  
  81. const addDefaultCrash = (vm, rawError) => {
  82. vm.error = {
  83. message: 'Oh snap ! Something went wrong, please refresh the page.',
  84. raw: rawError
  85. }
  86. }
  87.  
  88. export default EventsFactory
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement