Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fb0ec1e8ec |
7 changed files with 24 additions and 28 deletions
|
|
@ -5,6 +5,9 @@ on:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- flake.nix
|
- flake.nix
|
||||||
|
|
||||||
|
env:
|
||||||
|
NIX_CONFIG: experimental-features = nix-command flakes
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-web:
|
build-web:
|
||||||
runs-on: nixos
|
runs-on: nixos
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,9 @@ on:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- flake.nix
|
- flake.nix
|
||||||
|
|
||||||
|
env:
|
||||||
|
NIX_CONFIG: experimental-features = nix-command flakes
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-web:
|
build-web:
|
||||||
runs-on: nixos
|
runs-on: nixos
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,9 @@ export function subscribeTuFileLaunch(listener: (file: File) => void) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function isInstalledPwa() {
|
function isStandalone() {
|
||||||
return (
|
return (
|
||||||
window.matchMedia("(display-mode: standalone)").matches ||
|
window.matchMedia("(display-mode: standalone)").matches ||
|
||||||
window.matchMedia("(display-mode: window-controls-overlay)").matches ||
|
|
||||||
(navigator as Navigator & { standalone?: boolean }).standalone === true
|
(navigator as Navigator & { standalone?: boolean }).standalone === true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -61,9 +60,10 @@ async function enablePush() {
|
||||||
await setDatabaseEntry("keys", "push-subscription", subscription.toJSON());
|
await setDatabaseEntry("keys", "push-subscription", subscription.toJSON());
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstalledPwaRuntime() {
|
export default function PwaRuntime() {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
|
isTauri() ||
|
||||||
!("serviceWorker" in navigator) ||
|
!("serviceWorker" in navigator) ||
|
||||||
!["http:", "https:"].includes(window.location.protocol)
|
!["http:", "https:"].includes(window.location.protocol)
|
||||||
) {
|
) {
|
||||||
|
|
@ -94,15 +94,7 @@ function InstalledPwaRuntime() {
|
||||||
if (worker.state !== "installed") return;
|
if (worker.state !== "installed") return;
|
||||||
if (!navigator.serviceWorker.controller) {
|
if (!navigator.serviceWorker.controller) {
|
||||||
toast.success("Tensamin is ready for offline startup");
|
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);
|
if (registration.installing) watchWorker(registration.installing);
|
||||||
|
|
@ -142,6 +134,7 @@ function InstalledPwaRuntime() {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
|
!isStandalone() ||
|
||||||
!("Notification" in window) ||
|
!("Notification" in window) ||
|
||||||
Notification.permission !== "default" ||
|
Notification.permission !== "default" ||
|
||||||
localStorage.getItem("pwa-push-hint")
|
localStorage.getItem("pwa-push-hint")
|
||||||
|
|
@ -170,6 +163,7 @@ function InstalledPwaRuntime() {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
|
isStandalone() &&
|
||||||
"Notification" in window &&
|
"Notification" in window &&
|
||||||
Notification.permission === "granted" &&
|
Notification.permission === "granted" &&
|
||||||
import.meta.env.VITE_WEB_PUSH_PUBLIC_KEY
|
import.meta.env.VITE_WEB_PUSH_PUBLIC_KEY
|
||||||
|
|
@ -182,8 +176,3 @@ function InstalledPwaRuntime() {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function PwaRuntime() {
|
|
||||||
if (isTauri() || !isInstalledPwa()) return null;
|
|
||||||
return <InstalledPwaRuntime />;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,6 @@ export function tensaminPwa(): Plugin[] {
|
||||||
filename: "serviceWorker.ts",
|
filename: "serviceWorker.ts",
|
||||||
injectRegister: null,
|
injectRegister: null,
|
||||||
registerType: "prompt",
|
registerType: "prompt",
|
||||||
buildBase: "/",
|
|
||||||
manifestFilename: "manifest.json",
|
manifestFilename: "manifest.json",
|
||||||
includeAssets: ["favicon.ico", "icons/*.png"],
|
includeAssets: ["favicon.ico", "icons/*.png"],
|
||||||
manifest: {
|
manifest: {
|
||||||
|
|
|
||||||
18
apps/tauri/src-tauri/Cargo.lock
generated
18
apps/tauri/src-tauri/Cargo.lock
generated
|
|
@ -2745,7 +2745,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp"
|
name = "mtp"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"mtp-client",
|
"mtp-client",
|
||||||
"mtp-codec",
|
"mtp-codec",
|
||||||
|
|
@ -2760,7 +2760,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-client"
|
name = "mtp-client"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"mtp-codec",
|
"mtp-codec",
|
||||||
"mtp-common",
|
"mtp-common",
|
||||||
|
|
@ -2773,7 +2773,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-codec"
|
name = "mtp-codec"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.23.1",
|
"base64 0.23.1",
|
||||||
"byteorder",
|
"byteorder",
|
||||||
|
|
@ -2787,7 +2787,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-common"
|
name = "mtp-common"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quinn",
|
"quinn",
|
||||||
"thiserror 2.0.19",
|
"thiserror 2.0.19",
|
||||||
|
|
@ -2797,7 +2797,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-crypto"
|
name = "mtp-crypto"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"chacha20poly1305",
|
"chacha20poly1305",
|
||||||
|
|
@ -2819,7 +2819,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-host"
|
name = "mtp-host"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"mtp-codec",
|
"mtp-codec",
|
||||||
"mtp-common",
|
"mtp-common",
|
||||||
|
|
@ -2835,7 +2835,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-transport"
|
name = "mtp-transport"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"mtp-codec",
|
"mtp-codec",
|
||||||
|
|
@ -2855,7 +2855,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-type-map"
|
name = "mtp-type-map"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_yaml",
|
"serde_yaml",
|
||||||
|
|
@ -2864,7 +2864,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mtp-webserver"
|
name = "mtp-webserver"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=7ef6ec9e8817121ce8d7938b810f13dd979555f1#7ef6ec9e8817121ce8d7938b810f13dd979555f1"
|
source = "git+https://git.methanium.net/Methanium/mtp.git?rev=c30315af944bda05ecdb9c4e9cc350cb99cf7b2e#c30315af944bda05ecdb9c4e9cc350cb99cf7b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ serde_json = "1"
|
||||||
base64 = "0.22"
|
base64 = "0.22"
|
||||||
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
|
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
|
||||||
tokio = { version = "1", features = ["rt-multi-thread", "sync", "time"] }
|
tokio = { version = "1", features = ["rt-multi-thread", "sync", "time"] }
|
||||||
mtp = { git = "https://git.methanium.net/Methanium/mtp.git", rev = "7ef6ec9e8817121ce8d7938b810f13dd979555f1", features = ["client", "crypto"] }
|
mtp = { git = "https://git.methanium.net/Methanium/mtp.git", rev = "c30315af944bda05ecdb9c4e9cc350cb99cf7b2e", features = ["client", "crypto"] }
|
||||||
webpki-root-certs = "1"
|
webpki-root-certs = "1"
|
||||||
tauri-plugin-deep-link = "2"
|
tauri-plugin-deep-link = "2"
|
||||||
tauri-plugin-notification = "2"
|
tauri-plugin-notification = "2"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
systems = [ "x86_64-linux" ];
|
systems = [ "x86_64-linux" ];
|
||||||
forAllSystems = nixpkgs.lib.genAttrs systems;
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
version = "0.0.11";
|
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}";
|
forgejoBaseUrl = "https://git.methanium.net/tensamin/client/releases/download/${version}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -63,6 +63,7 @@
|
||||||
pipewire
|
pipewire
|
||||||
systemd
|
systemd
|
||||||
wayland
|
wayland
|
||||||
|
webkitgtk_4_1
|
||||||
libX11
|
libX11
|
||||||
libXScrnSaver
|
libXScrnSaver
|
||||||
libXcomposite
|
libXcomposite
|
||||||
|
|
@ -184,6 +185,7 @@
|
||||||
pipewire
|
pipewire
|
||||||
systemd
|
systemd
|
||||||
wayland
|
wayland
|
||||||
|
webkitgtk_4_1
|
||||||
libX11
|
libX11
|
||||||
libXScrnSaver
|
libXScrnSaver
|
||||||
libXcomposite
|
libXcomposite
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue