Compare commits

..
Author SHA1 Message Date
3a4b29f7dc chore(deps): update tauri-build digest to dd6befd
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
Dependency builds / Test native MTP (pull_request) Failing after 3s
Dependency builds / Build mobile (pull_request) Failing after 4s
Dependency builds / Build web (pull_request) Failing after 4s
Dependency builds / Build desktop (pull_request) Failing after 5s
2026-08-27 00:00:42 +03:00
5 changed files with 14 additions and 18 deletions

View file

@ -5,6 +5,9 @@ on:
paths-ignore:
- flake.nix
env:
NIX_CONFIG: experimental-features = nix-command flakes
jobs:
build-web:
runs-on: nixos

View file

@ -6,6 +6,9 @@ on:
paths-ignore:
- flake.nix
env:
NIX_CONFIG: experimental-features = nix-command flakes
jobs:
build-web:
runs-on: nixos

View file

@ -22,10 +22,9 @@ export function subscribeTuFileLaunch(listener: (file: File) => void) {
};
}
function isInstalledPwa() {
function isStandalone() {
return (
window.matchMedia("(display-mode: standalone)").matches ||
window.matchMedia("(display-mode: window-controls-overlay)").matches ||
(navigator as Navigator & { standalone?: boolean }).standalone === true
);
}
@ -61,9 +60,10 @@ async function enablePush() {
await setDatabaseEntry("keys", "push-subscription", subscription.toJSON());
}
function InstalledPwaRuntime() {
export default function PwaRuntime() {
useEffect(() => {
if (
isTauri() ||
!("serviceWorker" in navigator) ||
!["http:", "https:"].includes(window.location.protocol)
) {
@ -94,15 +94,7 @@ function InstalledPwaRuntime() {
if (worker.state !== "installed") return;
if (!navigator.serviceWorker.controller) {
toast.success("Tensamin is ready for offline startup");
return;
}
toast("A Tensamin update is ready", {
duration: Infinity,
action: {
label: "Update",
onClick: () => worker.postMessage({ type: "SKIP_WAITING" }),
},
});
});
};
if (registration.installing) watchWorker(registration.installing);
@ -142,6 +134,7 @@ function InstalledPwaRuntime() {
useEffect(() => {
if (
!isStandalone() ||
!("Notification" in window) ||
Notification.permission !== "default" ||
localStorage.getItem("pwa-push-hint")
@ -170,6 +163,7 @@ function InstalledPwaRuntime() {
useEffect(() => {
if (
isStandalone() &&
"Notification" in window &&
Notification.permission === "granted" &&
import.meta.env.VITE_WEB_PUSH_PUBLIC_KEY
@ -182,8 +176,3 @@ function InstalledPwaRuntime() {
return null;
}
export default function PwaRuntime() {
if (isTauri() || !isInstalledPwa()) return null;
return <InstalledPwaRuntime />;
}

View file

@ -128,7 +128,6 @@ export function tensaminPwa(): Plugin[] {
filename: "serviceWorker.ts",
injectRegister: null,
registerType: "prompt",
buildBase: "/",
manifestFilename: "manifest.json",
includeAssets: ["favicon.ico", "icons/*.png"],
manifest: {

View file

@ -17,7 +17,7 @@
systems = [ "x86_64-linux" ];
forAllSystems = nixpkgs.lib.genAttrs systems;
version = "0.0.11";
x86_64DebHash = "sha256-iMEgdjY8Ghlx6K/YzKC5JAZbeHNJDIFHm8MKmM4efaI=";
x86_64DebHash = "sha256-p/6boNv9uWTHsPTVa3EhGzr41EwRzCY/fJWlj854DVA=";
forgejoBaseUrl = "https://git.methanium.net/tensamin/client/releases/download/${version}";
in
{
@ -63,6 +63,7 @@
pipewire
systemd
wayland
webkitgtk_4_1
libX11
libXScrnSaver
libXcomposite
@ -184,6 +185,7 @@
pipewire
systemd
wayland
webkitgtk_4_1
libX11
libXScrnSaver
libXcomposite