Migrate to Vue 3 and Vite

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2022-07-12 10:55:28 +02:00
parent 8f4099ee33
commit ee20e03cc2
464 changed files with 31515 additions and 32758 deletions

View File

@@ -1,6 +1,7 @@
import apolloProvider from "@/vue-apollo";
import { apolloClient } from "@/vue-apollo";
import { NormalizedCacheObject } from "@apollo/client/cache/inmemory/types";
import { ApolloClient } from "@apollo/client/core/ApolloClient";
import { provideApolloClient, useQuery } from "@vue/apollo-composable";
import { WEB_PUSH } from "../graphql/config";
import { IConfig } from "../types/config.model";
@@ -18,32 +19,33 @@ function urlBase64ToUint8Array(base64String: string): Uint8Array {
}
export async function subscribeUserToPush(): Promise<PushSubscription | null> {
const client =
apolloProvider.defaultClient as ApolloClient<NormalizedCacheObject>;
const { onResult } = provideApolloClient(apolloClient)(() =>
useQuery<{ config: IConfig }>(WEB_PUSH)
);
const registration = await navigator.serviceWorker.ready;
const { data } = await client.query<{ config: IConfig }>({
query: WEB_PUSH,
return new Promise((resolve, reject) => {
onResult(async ({ data }) => {
if (data?.config?.webPush?.enabled && data?.config?.webPush?.publicKey) {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(
data?.config?.webPush?.publicKey
),
};
const registration = await navigator.serviceWorker.ready;
try {
const pushSubscription = await registration.pushManager.subscribe(
subscribeOptions
);
console.debug("Received PushSubscription: ", pushSubscription);
resolve(pushSubscription);
} catch (e) {
console.error("Error while subscribing to push notifications", e);
}
}
reject(null);
});
});
if (data?.config?.webPush?.enabled && data?.config?.webPush?.publicKey) {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(
data?.config?.webPush?.publicKey
),
};
try {
const pushSubscription = await registration.pushManager.subscribe(
subscribeOptions
);
console.debug("Received PushSubscription: ", pushSubscription);
return pushSubscription;
} catch (e) {
console.error("Error while subscribing to push notifications", e);
}
}
return null;
}
export async function unsubscribeUserToPush(): Promise<string | undefined> {