From af1dd59e3a974dd814b7319357554e426a45c033 Mon Sep 17 00:00:00 2001 From: Julien Oculi Date: Fri, 16 May 2025 13:04:51 +0200 Subject: [PATCH] feat(webpush): improve registration notification with icon and badge --- routes/api/webpush/subscription.ts | 5 ++++- static/assets/favicon.png | Bin 0 -> 19217 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 static/assets/favicon.png diff --git a/routes/api/webpush/subscription.ts b/routes/api/webpush/subscription.ts index e79e69f..44d9551 100644 --- a/routes/api/webpush/subscription.ts +++ b/routes/api/webpush/subscription.ts @@ -11,7 +11,10 @@ export const handler = define.handlers({ await sendWebPushNotification( 'Les notifications sont desormais disponibles sur votre appareil', - {}, + { + badge: '/assets/icon-192-mono.png', + icon: '/assets/favicon.png', + }, (sub) => sub.keys !== undefined && sub.keys.auth === subscription.keys?.auth, ) diff --git a/static/assets/favicon.png b/static/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..731095c4939b3698a7752e20c3e935caaac8f38b GIT binary patch literal 19217 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 Hu0mjfrB3XT literal 0 HcmV?d00001