Implement notification box for web (#533)

* Added test button

* styling notification box

* Added auto dismission and animation to each notificaiont list

* Remove test button
This commit is contained in:
Alex 2022-08-25 23:04:23 -07:00 committed by GitHub
parent 68b1655e7f
commit f9b1b12b10
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 132 additions and 4 deletions

View file

@ -0,0 +1,36 @@
import { writable } from 'svelte/store';
export enum NotificationType {
Info = 'Info',
Error = 'Error'
}
export class ImmichNotification {
id = new Date().getTime();
type!: NotificationType;
message!: string;
}
function createNotificationList() {
const { set, update, subscribe } = writable<ImmichNotification[]>([]);
const show = ({ message = '', type = NotificationType.Info }) => {
const notification = new ImmichNotification();
notification.message = message;
notification.type = type;
update((currentList) => [...currentList, notification]);
};
const removeNotificationById = (id: number) => {
update((currentList) => currentList.filter((n) => n.id != id));
};
return {
show,
removeNotificationById,
subscribe
};
}
export const notificationList = createNotificationList();