11import { useBrowseNavigation } from "@/app/[domain]/browse/hooks/useBrowseNavigation" ;
22import { KeyboardShortcutHint } from "@/app/components/keyboardShortcutHint" ;
33import { useToast } from "@/components/hooks/use-toast" ;
4- import { Button } from "@/components/ui/button" ;
4+ import { buttonVariants } from "@/components/ui/button" ;
55import { LoadingButton } from "@/components/ui/loading-button" ;
66import { Separator } from "@/components/ui/separator" ;
77import { Tooltip , TooltipContent , TooltipTrigger } from "@/components/ui/tooltip" ;
@@ -11,6 +11,7 @@ import { cn } from "@/lib/utils";
1111import { computePosition , flip , offset , shift , VirtualElement } from "@floating-ui/react" ;
1212import { ReactCodeMirrorRef } from "@uiw/react-codemirror" ;
1313import { Loader2 } from "lucide-react" ;
14+ import Link from "next/link" ;
1415import { useCallback , useEffect , useMemo , useRef , useState , MouseEvent } from "react" ;
1516import { createPortal } from "react-dom" ;
1617import { useHotkeys } from "react-hotkeys-hook" ;
@@ -379,26 +380,24 @@ export const SymbolHoverPopup: React.FC<SymbolHoverPopupProps> = ({
379380 < div className = "flex flex-row gap-2 mt-2" >
380381 < Tooltip delayDuration = { 500 } >
381382 < TooltipTrigger asChild >
382- < LoadingButton
383- loading = { symbolInfo . isSymbolDefinitionsLoading }
384- disabled = { ! previewedSymbolDefinition }
385- variant = "outline"
386- size = "sm"
387- asChild = { ! symbolInfo . isSymbolDefinitionsLoading && ! ! previewedSymbolDefinition }
388- >
389- { ! symbolInfo . isSymbolDefinitionsLoading && previewedSymbolDefinition ? (
390- < a
391- href = { gotoDefinitionHref }
392- onClick = { onGotoDefinitionClick }
393- >
394- { `Go to ${ symbolInfo . symbolDefinitions && symbolInfo . symbolDefinitions . length > 1 ? "definitions" : "definition" } ` }
395- </ a >
396- ) : (
397- < span >
398- { symbolInfo . isSymbolDefinitionsLoading ? "Loading..." : "No definition found" }
399- </ span >
400- ) }
401- </ LoadingButton >
383+ { ! symbolInfo . isSymbolDefinitionsLoading && previewedSymbolDefinition && gotoDefinitionHref ? (
384+ < Link
385+ href = { gotoDefinitionHref }
386+ onClick = { onGotoDefinitionClick }
387+ className = { cn ( buttonVariants ( { variant : "outline" , size : "sm" } ) ) }
388+ >
389+ { `Go to ${ symbolInfo . symbolDefinitions && symbolInfo . symbolDefinitions . length > 1 ? "definitions" : "definition" } ` }
390+ </ Link >
391+ ) : (
392+ < LoadingButton
393+ loading = { symbolInfo . isSymbolDefinitionsLoading }
394+ disabled = { ! previewedSymbolDefinition }
395+ variant = "outline"
396+ size = "sm"
397+ >
398+ { symbolInfo . isSymbolDefinitionsLoading ? "Loading..." : "No definition found" }
399+ </ LoadingButton >
400+ ) }
402401 </ TooltipTrigger >
403402 < TooltipContent
404403 side = "bottom"
@@ -411,19 +410,16 @@ export const SymbolHoverPopup: React.FC<SymbolHoverPopupProps> = ({
411410 </ Tooltip >
412411 < Tooltip delayDuration = { 500 } >
413412 < TooltipTrigger asChild >
414- < Button
415- variant = "outline"
416- size = "sm"
417- asChild
413+ < Link
414+ href = { findReferencesHref ?? "#" }
415+ onClick = { onFindReferencesClick }
416+ className = { cn (
417+ buttonVariants ( { variant : "outline" , size : "sm" } ) ,
418+ ! findReferencesHref && "pointer-events-none opacity-50"
419+ ) }
418420 >
419- < a
420- href = { findReferencesHref }
421- onClick = { onFindReferencesClick }
422- className = { cn ( ! symbolInfo && "pointer-events-none opacity-50" ) }
423- >
424- Find references
425- </ a >
426- </ Button >
421+ Find references
422+ </ Link >
427423 </ TooltipTrigger >
428424 < TooltipContent
429425 side = "bottom"
0 commit comments