From 84ff7a619fc4570be085fbb5960bdcbc4510d14c Mon Sep 17 00:00:00 2001 From: Tristan Yang Date: Tue, 28 Jun 2022 11:59:32 +0800 Subject: [PATCH] fix: server logo at first enter --- src/app/services/server.ts | 11 ++++------- src/common/component/Manifest/index.tsx | 9 ++++----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/app/services/server.ts b/src/app/services/server.ts index 5d66ce09..5b70bbd2 100644 --- a/src/app/services/server.ts +++ b/src/app/services/server.ts @@ -1,6 +1,6 @@ import { createApi } from "@reduxjs/toolkit/query/react"; import BASE_URL from "../config"; -import { updateInfo, StoredServer } from "../slices/server"; +import { updateInfo } from "../slices/server"; import baseQuery from "./base.query"; import { RootState } from "../store"; import { User } from "../../types/auth"; @@ -21,16 +21,13 @@ export const serverApi = createApi({ reducerPath: "serverApi", baseQuery, endpoints: (builder) => ({ - getServer: builder.query({ + getServer: builder.query({ query: () => ({ url: `admin/system/organization` }), - transformResponse: (data: Server) => { - const logo = `${BASE_URL}/resource/organization/logo?t=${+new Date()}`; - return { ...data, logo }; - }, async onQueryStarted(data, { dispatch, queryFulfilled }) { try { const { data: server } = await queryFulfilled; - dispatch(updateInfo(server)); + const logo = `${BASE_URL}/resource/organization/logo?t=${+new Date()}`; + dispatch(updateInfo({ ...server, logo })); } catch { console.log("get server info error"); } diff --git a/src/common/component/Manifest/index.tsx b/src/common/component/Manifest/index.tsx index b771f060..4dc8a220 100644 --- a/src/common/component/Manifest/index.tsx +++ b/src/common/component/Manifest/index.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState, useRef } from "react"; +import { useEffect, useState, useRef, SyntheticEvent } from "react"; import Prompt from "./Prompt"; import usePrompt from "./usePrompt"; @@ -6,9 +6,8 @@ export default function Manifest() { const { setCanceled: setCanceled, prompted } = usePrompt(); const deferredPromptRef = useRef(null); const [popup, setPopup] = useState(false); - // const { data, isSuccess } = useGetServerQuery(); useEffect(() => { - const handleInstallPromotion = (e) => { + const handleInstallPromotion = (e: SyntheticEvent) => { // Prevent the mini-infobar from appearing on mobile e.preventDefault(); // Stash the event so it can be triggered later. @@ -36,10 +35,10 @@ export default function Manifest() { // } // } - window.addEventListener("beforeinstallprompt", handleInstallPromotion); + window.addEventListener("beforeinstallprompt", handleInstallPromotion, true); window.addEventListener("appinstalled", handleInstalled); return () => { - window.removeEventListener("beforeinstallprompt", handleInstallPromotion); + window.removeEventListener("beforeinstallprompt", handleInstallPromotion, true); window.removeEventListener("appinstalled", handleInstalled); }; }, []);