diff --git a/web/src/components/search/search-results-panel.tsx b/web/src/components/search/search-results-panel.tsx index 8830ea0..a7ecedd 100644 --- a/web/src/components/search/search-results-panel.tsx +++ b/web/src/components/search/search-results-panel.tsx @@ -28,9 +28,17 @@ type Props = { isRunning: boolean; className?: string; enableKeyboardNavigation?: boolean; + openLinksInNewTab?: boolean; }; -export function SearchResultsPanel({ search, isLoading, isRunning, className, enableKeyboardNavigation = false }: Props) { +export function SearchResultsPanel({ + search, + isLoading, + isRunning, + className, + enableKeyboardNavigation = false, + openLinksInNewTab = true, +}: Props) { const ANSWER_COLLAPSED_HEIGHT_CLASS = "h-[3rem]"; const [isAnswerExpanded, setIsAnswerExpanded] = useState(false); const [canExpandAnswer, setCanExpandAnswer] = useState(false); @@ -92,12 +100,16 @@ export function SearchResultsPanel({ search, isLoading, isRunning, className, en const result = search.results[activeResultIndex >= 0 ? activeResultIndex : 0]; if (!result?.url) return; event.preventDefault(); - window.open(result.url, "_blank", "noopener,noreferrer"); + if (openLinksInNewTab) { + window.open(result.url, "_blank", "noopener,noreferrer"); + } else { + window.location.assign(result.url); + } }; window.addEventListener("keydown", onKeyDown); return () => window.removeEventListener("keydown", onKeyDown); - }, [activeResultIndex, enableKeyboardNavigation, search]); + }, [activeResultIndex, enableKeyboardNavigation, openLinksInNewTab, search]); const citationEntries = (search?.answerCitations ?? []) .map((citation, index) => { @@ -185,8 +197,8 @@ export function SearchResultsPanel({ search, isLoading, isRunning, className, en {citation.index} @@ -218,7 +230,12 @@ export function SearchResultsPanel({ search, isLoading, isRunning, className, en )} >

{formatHost(result.url)}

-
+ {result.title || result.url} {(result.publishedDate || result.author) && ( diff --git a/web/src/pages/search-route-page.tsx b/web/src/pages/search-route-page.tsx index 8ec116c..386b991 100644 --- a/web/src/pages/search-route-page.tsx +++ b/web/src/pages/search-route-page.tsx @@ -238,7 +238,14 @@ export default function SearchRoutePage() { {error ?

{error}

: null} - + );