mirror of
https://github.com/KevinMidboe/immich.git
synced 2025-10-29 17:40:28 +00:00
web(feat): Add support for actions when clicking notifications (#966)
* feat(web): Add button to close notification popups * feat(web): Add support for actions on notification click * feat(web): Open CLI docs when clicking asset upload count message * test(web): Add action field to notification-card tests * chore(web): Formatting * feat(web): Allow HTML in notification message * feat(web): Do not use link element in file upload count notification * feat(web): Prevent notification discard button from triggering action * feat(web): Add noop action support for notifications * chore(web): Remove unused function argument
This commit is contained in:
@@ -9,9 +9,15 @@ export class ImmichNotification {
|
||||
id = new Date().getTime();
|
||||
type!: NotificationType;
|
||||
message!: string;
|
||||
action!: NotificationAction;
|
||||
timeout = 3000;
|
||||
}
|
||||
|
||||
type DiscardAction = { type: 'discard' };
|
||||
type NoopAction = { type: 'noop' };
|
||||
type LinkAction = { type: 'link'; target: string };
|
||||
export type NotificationAction = DiscardAction | NoopAction | LinkAction;
|
||||
|
||||
export class ImmichNotificationDto {
|
||||
/**
|
||||
* Notification type
|
||||
@@ -28,7 +34,13 @@ export class ImmichNotificationDto {
|
||||
* Timeout in miliseconds
|
||||
*/
|
||||
timeout?: number;
|
||||
|
||||
/**
|
||||
* The action to take when the notification is clicked
|
||||
*/
|
||||
action?: NotificationAction;
|
||||
}
|
||||
|
||||
function createNotificationList() {
|
||||
const notificationList = writable<ImmichNotification[]>([]);
|
||||
|
||||
@@ -37,6 +49,7 @@ function createNotificationList() {
|
||||
newNotification.message = notificationInfo.message;
|
||||
newNotification.type = notificationInfo.type;
|
||||
newNotification.timeout = notificationInfo.timeout || 3000;
|
||||
newNotification.action = notificationInfo.action || { type: 'discard' };
|
||||
|
||||
notificationList.update((currentList) => [...currentList, newNotification]);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user