diff --git a/src/js/Connection.js b/src/js/Connection.js index a349c5c..79e0c92 100644 --- a/src/js/Connection.js +++ b/src/js/Connection.js @@ -2,6 +2,7 @@ import GlobalState from "./GlobalState.js"; import {BleConnection, Constants, SerialConnection} from "@liamcottle/meshcore.js"; import Database from "./Database.js"; import Utils from "./Utils.js"; +import NotificationUtils from "./NotificationUtils.js"; class Connection { @@ -232,6 +233,7 @@ class Connection { return; } + // save message to database await Database.Message.insert({ status: "received", to: GlobalState.selfInfo.publicKey, @@ -245,6 +247,9 @@ class Connection { error: null, }); + // show notification + await NotificationUtils.showNotification(contact.advName, message.text); + } } diff --git a/src/js/NotificationUtils.js b/src/js/NotificationUtils.js new file mode 100644 index 0000000..c7a10ef --- /dev/null +++ b/src/js/NotificationUtils.js @@ -0,0 +1,22 @@ +class NotificationUtils { + + static async showNotification(title, body) { + + // request notification permission + const result = await Notification.requestPermission(); + if(result !== "granted"){ + console.log(result); + return; + } + + // show notification + new window.Notification(title, { + body: body, + icon: "/icon.png", + }); + + } + +} + +export default NotificationUtils;