Skip to content

Commit 4ce35f9

Browse files
res-odoobrboi
authored andcommitted
[IMP] mail: SW: Extract handle notification click inside its own method
1 parent a9d0373 commit 4ce35f9

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

addons/mail/static/src/service_worker.js

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -159,40 +159,43 @@ async function openDiscussChannel(channelId, { action, joinCall = false, source
159159
}
160160
}
161161

162-
self.addEventListener("notificationclick", (event) => {
163-
event.notification.close();
164-
if (event.notification.data) {
165-
const { action, model, res_id } = event.notification.data;
166-
if (model === "discuss.channel") {
167-
if (event.action === PUSH_NOTIFICATION_ACTION.DECLINE) {
168-
event.waitUntil(
169-
fetch("/mail/rtc/channel/leave_call", {
170-
headers: { "Content-type": "application/json" },
171-
body: JSON.stringify({
172-
id: 1,
173-
jsonrpc: "2.0",
174-
method: "call",
175-
params: { channel_id: res_id },
176-
}),
177-
method: "POST",
178-
mode: "cors",
179-
credentials: "include",
180-
})
181-
);
182-
return;
183-
}
162+
async function handleNotificationClick(event) {
163+
const { action, model, res_id } = event.notification.data;
164+
if (model === "discuss.channel") {
165+
if (event.action === PUSH_NOTIFICATION_ACTION.DECLINE) {
184166
event.waitUntil(
185-
openDiscussChannel(res_id, {
186-
action,
187-
joinCall: event.action === PUSH_NOTIFICATION_ACTION.ACCEPT,
167+
fetch("/mail/rtc/channel/leave_call", {
168+
headers: { "Content-type": "application/json" },
169+
body: JSON.stringify({
170+
id: 1,
171+
jsonrpc: "2.0",
172+
method: "call",
173+
params: { channel_id: res_id },
174+
}),
175+
method: "POST",
176+
mode: "cors",
177+
credentials: "include",
188178
})
189179
);
190-
} else {
191-
const modelPath = model.includes(".") ? model : `m-${model}`;
192-
event.waitUntil(clients.openWindow(`/odoo/${modelPath}/${res_id}`));
180+
return;
193181
}
182+
return openDiscussChannel(res_id, {
183+
action,
184+
joinCall: event.action === PUSH_NOTIFICATION_ACTION.ACCEPT,
185+
});
186+
} else {
187+
const modelPath = model.includes(".") ? model : `m-${model}`;
188+
return clients.openWindow(`/odoo/${modelPath}/${res_id}`);
189+
}
190+
}
191+
192+
self.addEventListener("notificationclick", async (event) => {
193+
event.notification.close();
194+
if (event.notification.data) {
195+
event.waitUntil(handleNotificationClick(event));
194196
}
195197
});
198+
196199
self.addEventListener("push", async (event) => {
197200
const notification = event.data.json();
198201
switch (notification.options?.data?.type) {

0 commit comments

Comments
 (0)