This commit is contained in:
talorr
2026-03-27 03:36:08 +03:00
parent 8a97ce6d54
commit cda36918e8
225 changed files with 35641 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
import { Capacitor } from "@capacitor/core";
import { SplashScreen } from "@capacitor/splash-screen";
export default defineNuxtPlugin(() => {
if (!Capacitor.isNativePlatform()) {
return;
}
void SplashScreen.hide().catch(() => {
// Ignore hide errors if the native splash is already gone.
});
});

View File

@@ -0,0 +1,5 @@
export default defineNuxtPlugin(async () => {
const { refreshMe } = useAuth();
await refreshMe();
});

View File

@@ -0,0 +1,9 @@
export default defineNuxtPlugin(async () => {
const { initializeNativePush, isNativeApp } = usePush();
if (!isNativeApp()) {
return;
}
await initializeNativePush();
});

View File

@@ -0,0 +1,15 @@
import Aura from "@primeuix/themes/aura";
import PrimeVue from "primevue/config";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(PrimeVue, {
theme: {
preset: Aura,
options: {
darkModeSelector: ".app-dark"
}
},
ripple: true,
inputVariant: "filled"
});
});

View File

@@ -0,0 +1,20 @@
export default defineNuxtPlugin(async () => {
const { token } = useAuth();
const anonymousClientId = useState<string | null>("anonymous-push-client-id", () => null);
const { syncServiceWorkerContext, syncNativeSubscription, isNativeApp } = usePush();
if (isNativeApp()) {
await syncNativeSubscription();
} else {
await syncServiceWorkerContext();
}
watch([token, anonymousClientId], () => {
if (isNativeApp()) {
void syncNativeSubscription();
return;
}
void syncServiceWorkerContext();
});
});

View File

@@ -0,0 +1,23 @@
export default defineNuxtPlugin(async () => {
const { setInstallPromptEvent, isNativeApp } = usePush();
if (isNativeApp()) {
return;
}
if ("serviceWorker" in navigator) {
await navigator.serviceWorker.register("/sw.js");
}
window.addEventListener("beforeinstallprompt", (event) => {
event.preventDefault();
setInstallPromptEvent(event as Event & {
prompt: () => Promise<void>;
userChoice: Promise<{ outcome: "accepted" | "dismissed"; platform: string }>;
});
});
window.addEventListener("appinstalled", () => {
setInstallPromptEvent(null);
});
});