summaryrefslogtreecommitdiff
path: root/frontend/src/sagas/errors.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/sagas/errors.js')
-rw-r--r--frontend/src/sagas/errors.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/frontend/src/sagas/errors.js b/frontend/src/sagas/errors.js
index 441f3fb5..9808fe41 100644
--- a/frontend/src/sagas/errors.js
+++ b/frontend/src/sagas/errors.js
@@ -1,8 +1,11 @@
+import React from 'react'
import { apply, call, cancelled, put, take } from 'redux-saga/effects'
import { createSubscriptionChannel } from '../utils/websocket'
import { actions } from '../redux/errors'
+import {toastr} from 'react-redux-toastr'
+
export default function *errorHandlingSaga({ socket }) {
const errorChannel = yield call(createSubscriptionChannel, socket, '/user/queue/errors')
try {
@@ -12,12 +15,23 @@ export default function *errorHandlingSaga({ socket }) {
}
} finally {
if (yield cancelled()) {
+ console.log('Error management saga cancelled')
yield apply(errorChannel, errorChannel.close)
}
}
}
-function *handleOneError(error) {
- console.error("Error received on web socket channel", error)
- yield put(actions.errorReceived(error))
+function *handleOneError(err) {
+ console.error("Error received on web socket channel", err)
+ const msg = buildMsg(err)
+ yield apply(toastr, toastr.error, [msg, {icon: 'error'}])
+ yield put(actions.errorReceived(err))
+}
+
+function buildMsg(err) {
+ if (err.details.length > 0) {
+ return err.details.map(d => d.message).join('\n')
+ } else {
+ return err.message
+ }
}
bgstack15