MCPcopy Create free account
hub / github.com/hydro-dev/Hydro / onMessage

Function onMessage

packages/ui-default/components/message/worker.ts:32–63  ·  view source on GitHub ↗
(message: any)

Source from the content-addressed store, hash-verified

30}
31
32function onMessage(message: any) {
33 broadcastMsg({ type: 'message', payload: message });
34 let acked = false;
35 let payload = message;
36 ack[message.mdoc._id] = () => { acked = true; };
37 ack[`${message.mdoc._id}-i18n`] = (v) => { payload = v; };
38 if (message.mdoc.flag & FLAG_I18N) broadcastMsg({ type: 'i18n', payload: message });
39 setTimeout(() => {
40 delete ack[message.mdoc._id];
41 delete ack[`${message.mdoc._id}-i18n`];
42 if (acked) return;
43 if (message.mdoc.flag & FLAG_INFO) return;
44 if (Notification?.permission !== 'granted') {
45 console.log('Notification permission denied');
46 return;
47 }
48 console.log('Sending as system notification');
49 // eslint-disable-next-line no-new
50 new Notification(
51 payload.udoc._id === 1 ? payload.mdoc.content.split('\n')[0] : payload.udoc.uname || 'Hydro Notification',
52 payload.udoc._id === 1 ? {
53 tag: `notification-${payload.mdoc._id}`,
54 icon: payload.mdoc.avatar || '/android-chrome-192x192.png',
55 body: payload.mdoc.content.split('\n').slice(1).join('\n'),
56 } : {
57 tag: `message-${payload.mdoc._id}`,
58 icon: payload.udoc.avatarUrl || '/android-chrome-192x192.png',
59 body: payload.mdoc.content,
60 },
61 );
62 }, 3000);
63}
64
65function initConn(path: string, port: MessagePort, cookie: any) {
66 ports.add(port);

Callers 1

initConnFunction · 0.85

Calls 2

broadcastMsgFunction · 0.85
logMethod · 0.80

Tested by

no test coverage detected