From 11a6bd890cc752ee7abd2890773054743433eae1 Mon Sep 17 00:00:00 2001 From: tamaina Date: Sun, 12 Jun 2022 19:28:13 +0900 Subject: fix: some fixes of multiple notification read (#8819) * fix: limit multiple notification read * fix * fix --- packages/sw/src/scripts/notification-read.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'packages/sw/src/scripts') diff --git a/packages/sw/src/scripts/notification-read.ts b/packages/sw/src/scripts/notification-read.ts index 8433f902b4..5c1de89088 100644 --- a/packages/sw/src/scripts/notification-read.ts +++ b/packages/sw/src/scripts/notification-read.ts @@ -37,12 +37,22 @@ class SwNotificationReadManager { account.queue.push(data.body.id as string); + if (account.queue.length >= 20) { + if (account.timeout) clearTimeout(account.timeout); + const notificationIds = account.queue; + account.queue = []; + await api('notifications/read', data.userId, { notificationIds }); + return; + } + // 最後の呼び出しから200ms待ってまとめて処理する if (account.timeout) clearTimeout(account.timeout); account.timeout = setTimeout(() => { account.timeout = null; - api('notifications/read', data.userId, { notificationIds: account.queue }); + const notificationIds = account.queue; + account.queue = []; + api('notifications/read', data.userId, { notificationIds }); }, 200); } } -- cgit v1.2.3-freya