| import { useEffect, useState } from 'react' | |
| const HINT_DISPLAY_DURATION_MS = 5000 | |
| let hasShownThisSession = false | |
| /** | |
| * Hook to manage the /fast hint display next to the fast icon. | |
| * Shows the hint for 5 seconds once per session. | |
| */ | |
| export function useShowFastIconHint(showFastIcon: boolean): boolean { | |
| const [showHint, setShowHint] = useState(false) | |
| useEffect(() => { | |
| if (hasShownThisSession || !showFastIcon) { | |
| return | |
| } | |
| hasShownThisSession = true | |
| setShowHint(true) | |
| const timer = setTimeout(setShowHint, HINT_DISPLAY_DURATION_MS, false) | |
| return () => { | |
| clearTimeout(timer) | |
| setShowHint(false) | |
| } | |
| }, [showFastIcon]) | |
| return showHint | |
| } | |