mirror of
https://github.com/Myzel394/kleckrelay-website.git
synced 2025-06-20 00:05:26 +02:00
added extension handling for refetching aliases
This commit is contained in:
parent
e88bf31257
commit
44c29bae12
@ -5,6 +5,7 @@ import {useEvent} from "react-use"
|
||||
import {ExtensionKleckEvent} from "~/extension-types"
|
||||
import {User} from "~/server-types"
|
||||
import {AUTHENTICATION_PATHS} from "~/constants/values"
|
||||
import {queryClient} from "~/constants/react-query"
|
||||
|
||||
export interface UseExtensionHandlerResult {
|
||||
sharePassword: () => void
|
||||
@ -80,6 +81,21 @@ export default function useExtensionHandler(
|
||||
}
|
||||
|
||||
break
|
||||
case "refetch-aliases":
|
||||
if (document.visibilityState !== "visible") {
|
||||
return
|
||||
}
|
||||
|
||||
;(async () => {
|
||||
await Promise.allSettled([
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ["get_alias"],
|
||||
}),
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ["get_aliases"],
|
||||
}),
|
||||
])
|
||||
})()
|
||||
}
|
||||
},
|
||||
[dispatchPasswordStatus],
|
||||
|
@ -14,11 +14,16 @@ interface ExtensionKleckMessageEnterPassword {
|
||||
type: "enter-password"
|
||||
}
|
||||
|
||||
interface ExtensionKleckMessageRefetchAliases {
|
||||
type: "refetch-aliases"
|
||||
}
|
||||
|
||||
export type ExtensionKleckMessage =
|
||||
| ExtensionKleckMessagePasswordStatus
|
||||
| ExtensionKleckMessageAskForPassword
|
||||
| ExtensionKleckMessageUser
|
||||
| ExtensionKleckMessageEnterPassword
|
||||
| ExtensionKleckMessageRefetchAliases
|
||||
|
||||
export type ExtensionKleckEvent = MessageEvent & {
|
||||
detail: ExtensionKleckMessage
|
||||
|
@ -16,3 +16,5 @@ export * from "./use-is-any-input-focused"
|
||||
export {default as useIsAnyInputFocused} from "./use-is-any-input-focused"
|
||||
export * from "./use-extension-handler"
|
||||
export {default as useExtensionHandler} from "./use-extension-handler"
|
||||
export * from "./use-window-visible"
|
||||
export {default as useWindowVisible} from "./use-window-visible"
|
||||
|
14
src/hooks/use-window-visible.ts
Normal file
14
src/hooks/use-window-visible.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {useCallback, useState} from "react"
|
||||
import {useEvent} from "react-use"
|
||||
|
||||
export default function useWindowVisible(isVisibleByDefault = true): boolean {
|
||||
const [isVisible, setIsVisible] = useState<boolean>(isVisibleByDefault)
|
||||
|
||||
const handleVisibilityChange = useCallback(() => {
|
||||
setIsVisible(document.visibilityState === "visible")
|
||||
}, [])
|
||||
|
||||
useEvent("visibilitychange", handleVisibilityChange, document)
|
||||
|
||||
return isVisible
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user