diff options
Diffstat (limited to 'frontend/src/models/errors.js')
-rw-r--r-- | frontend/src/models/errors.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/frontend/src/models/errors.js b/frontend/src/models/errors.js new file mode 100644 index 00000000..c00954cd --- /dev/null +++ b/frontend/src/models/errors.js @@ -0,0 +1,34 @@ +import { Record, List } from 'immutable'; + +const ErrorsRecord = Record({ + nextId: 0, + history: new List(), +}); + +export default class ErrorsState extends ErrorsRecord { + addError(error) { + const errorObject = new Error({ id: this.nextId, error: new ErrorBag(error) }); + return this.set('history', this.history.push(errorObject)).set('nextId', this.nextId + 1); + } +} + +const ErrorRecord = Record({ + id: -1, + timestamp: new Date(), + error: new ErrorsRecord(), +}); + +export class Error extends ErrorRecord {} + +const ErrorBagRecord = Record({ + type: '', + position: 'bottom-left', + options: { + icon: 'error', + removeOnHover: true, + showCloseButton: true, + }, + title: 'Unknown Error', +}); + +export class ErrorBag extends ErrorBagRecord {} |