2021-06-03 14:10:31 +02:00
|
|
|
import {writable} from "svelte/store";
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A store that contains a list of error messages to be displayed.
|
|
|
|
*/
|
|
|
|
function createErrorStore() {
|
|
|
|
const { subscribe, set, update } = writable<string[]>([]);
|
|
|
|
|
|
|
|
return {
|
|
|
|
subscribe,
|
|
|
|
addErrorMessage: (e: string|Error): void => {
|
2021-06-04 16:22:15 +02:00
|
|
|
update((messages: string[]) => {
|
2021-06-04 16:07:36 +02:00
|
|
|
let message: string;
|
|
|
|
if (e instanceof Error) {
|
|
|
|
message = e.message;
|
|
|
|
} else {
|
|
|
|
message = e;
|
|
|
|
}
|
2021-06-04 16:22:15 +02:00
|
|
|
|
|
|
|
if (!messages.includes(message)) {
|
|
|
|
messages.push(message);
|
|
|
|
}
|
|
|
|
|
2021-06-03 14:10:31 +02:00
|
|
|
return messages;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
clearMessages: (): void => {
|
|
|
|
set([]);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
export const errorStore = createErrorStore();
|