Default web push to enabled on PWAs

pull/778/head
nimbleghost 2023-06-24 20:18:02 +02:00
parent dd02267f9b
commit 48d1f7887d
3 changed files with 17 additions and 3 deletions

View File

@ -1,4 +1,5 @@
import db from "./db";
import { isLaunchedPWA } from "./utils";
class Prefs {
constructor(dbImpl) {
@ -34,7 +35,7 @@ class Prefs {
async webPushEnabled() {
const webPushEnabled = await this.db.prefs.get("webPushEnabled");
return webPushEnabled?.value ?? false;
return webPushEnabled?.value ?? isLaunchedPWA();
}
async setWebPushEnabled(enabled) {

View File

@ -263,3 +263,16 @@ export const urlB64ToUint8Array = (base64String) => {
}
return outputArray;
};
export const isLaunchedPWA = () => {
if (window.matchMedia("(display-mode: standalone)").matches) {
return true;
}
// iOS
if (window.navigator.standalone === true) {
return true;
}
return false;
};

View File

@ -36,7 +36,7 @@ import { Info } from "@mui/icons-material";
import { useOutletContext } from "react-router-dom";
import theme from "./theme";
import userManager from "../app/UserManager";
import { playSound, shuffle, sounds, validUrl } from "../app/utils";
import { isLaunchedPWA, playSound, shuffle, sounds, validUrl } from "../app/utils";
import session from "../app/Session";
import routes from "./routes";
import accountApi, { Permission, Role } from "../app/AccountApi";
@ -86,7 +86,7 @@ const Notifications = () => {
<Sound />
<MinPriority />
<DeleteAfter />
{notifier.pushPossible() && <WebPushEnabled />}
{!isLaunchedPWA() && notifier.pushPossible() && <WebPushEnabled />}
</PrefGroup>
</Card>
);