summaryrefslogtreecommitdiff
path: root/frontend/src/sagas/errors.ts
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/sagas/errors.ts')
-rw-r--r--frontend/src/sagas/errors.ts36
1 files changed, 0 insertions, 36 deletions
diff --git a/frontend/src/sagas/errors.ts b/frontend/src/sagas/errors.ts
deleted file mode 100644
index b27dfa95..00000000
--- a/frontend/src/sagas/errors.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import {Toaster} from '@blueprintjs/core';
-import {Channel, eventChannel} from 'redux-saga';
-import {apply, cancelled, take} from 'redux-saga/effects';
-import {ApiError} from '../api/model';
-import {SevenWondersSession} from '../api/sevenWondersApi';
-
-const ErrorToaster = Toaster.create();
-
-export function* errorHandlingSaga(session: SevenWondersSession): any {
- const errorChannel: Channel<ApiError> = yield eventChannel(session.watchErrors());
- try {
- while (true) {
- const error: ApiError = yield take(errorChannel);
- yield* handleOneError(error);
- }
- } finally {
- if (yield cancelled()) {
- console.log('Error management saga cancelled');
- yield apply(errorChannel, errorChannel.close);
- }
- }
-}
-
-function* handleOneError(err: ApiError): any {
- console.error('Error received on web socket channel', err);
- const msg = buildMsg(err);
- yield apply(ErrorToaster, ErrorToaster.show, [{ intent: 'danger', icon: 'error', message: msg }]);
-}
-
-function buildMsg(err: ApiError): string {
- if (err.details.length > 0) {
- return err.details.map(d => d.message).join('\n');
- } else {
- return err.message;
- }
-}
bgstack15