summaryrefslogtreecommitdiff
path: root/frontend/src/models/errors.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/models/errors.js')
-rw-r--r--frontend/src/models/errors.js34
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 {}
bgstack15