diff --git a/src/pages/invite/Invite.tsx b/src/pages/invite/Invite.tsx
index fb4abb9d..63380d9a 100644
--- a/src/pages/invite/Invite.tsx
+++ b/src/pages/invite/Invite.tsx
@@ -54,7 +54,29 @@ export default function Invite() {
{error ? (
-
+
+
+
Invalid invite!
+
+ The invite may not exist or you don't have
+ permission to join.
+
+
+
+
+
+
) : (
)}
diff --git a/src/sw.ts b/src/sw.ts
index f4810629..b513f47e 100644
--- a/src/sw.ts
+++ b/src/sw.ts
@@ -11,10 +11,19 @@ precacheAndRoute(self.__WB_MANIFEST);
self.addEventListener("push", (event) => {
async function process() {
- if (event.data === null) return;
- // Need to write notification generator on server.
- }
+ if (event.data) {
+ const data = event.data.json();
+ await self.registration.showNotification(data.author, {
+ icon: data.icon,
+ image: data.image,
+ body: data.body,
+ timestamp: data.timestamp,
+ tag: data.tag,
+ badge: "https://app.revolt.chat/assets/icons/android-chrome-512x512.png"
+ });
+ }
+ }
event.waitUntil(process());
});