diff options
author | Hailey <me@haileyok.com> | 2024-04-12 16:51:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-12 16:51:07 -0700 |
commit | 7d01ff90d3a941b5d2b04783735608b5d37d0718 (patch) | |
tree | 8875911a29fe2ab849a164c042135f6e389e1b05 | |
parent | cefa0a55e8240e24e2961d929ead2d20743858ce (diff) | |
download | voidsky-7d01ff90d3a941b5d2b04783735608b5d37d0718.tar.zst |
wait a sec before showing card (#3516)
-rw-r--r-- | src/components/ProfileHoverCard/index.web.tsx | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index cfb8cf2fc..0d62a52a3 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -62,22 +62,25 @@ export function ProfileHoverCardInner(props: ProfileHoverCardProps) { const targetHovered = React.useRef(false) const cardHovered = React.useRef(false) const targetClicked = React.useRef(false) + const showTimeout = React.useRef<NodeJS.Timeout>() const onPointerEnterTarget = React.useCallback(() => { - targetHovered.current = true + showTimeout.current = setTimeout(async () => { + targetHovered.current = true + + if (prefetchedProfile.current) { + // if we're navigating + if (targetClicked.current) return + setHovered(true) + } else { + await prefetchProfileQuery(props.did) - if (prefetchedProfile.current) { - // if we're navigating - if (targetClicked.current) return - setHovered(true) - } else { - prefetchProfileQuery(props.did).then(() => { if (targetHovered.current) { setHovered(true) } prefetchedProfile.current = true - }) - } + } + }, 350) }, [props.did, prefetchProfileQuery]) const onPointerEnterCard = React.useCallback(() => { cardHovered.current = true @@ -86,6 +89,7 @@ export function ProfileHoverCardInner(props: ProfileHoverCardProps) { setHovered(true) }, []) const onPointerLeaveTarget = React.useCallback(() => { + clearTimeout(showTimeout.current) targetHovered.current = false setTimeout(() => { if (cardHovered.current) return |