11"use client" ;
22
33import { SearchIcon } from "lucide-react" ;
4- import React from "react" ;
4+
5+ import * as Sentry from "@sentry/browser" ;
56import {
67 SearchBox ,
78 useInstantSearch ,
89 useSearchBox ,
910 PoweredBy ,
1011} from "react-instantsearch" ;
12+ import { useEffect , useState } from "react" ;
1113
1214export function SearchSection ( ) {
1315 const { results } = useInstantSearch ( ) ;
1416 const { query } = useSearchBox ( ) ;
15- const [ mounted , setMounted ] = React . useState ( false ) ;
17+ const [ mounted , setMounted ] = useState ( false ) ;
1618
17- React . useEffect ( ( ) => {
19+ useEffect ( ( ) => {
1820 setMounted ( true ) ;
1921 } , [ ] ) ;
2022
23+ useEffect ( ( ) => {
24+ if ( mounted && query ) {
25+ Sentry . addBreadcrumb ( {
26+ category : "search" ,
27+ message : `Search query executed: ${ query } ` ,
28+ level : "info" ,
29+ data : {
30+ query_length : query . length ,
31+ results_count : results . nbHits ,
32+ search_timestamp : new Date ( ) . toISOString ( ) ,
33+ search_interface : "main_search" ,
34+ } ,
35+ } ) ;
36+ }
37+ } , [ mounted , query , results . nbHits ] ) ;
38+
39+ const handleSearchFocus = ( ) => {
40+ Sentry . addBreadcrumb ( {
41+ category : "ui.interaction" ,
42+ message : "User focused on main search input field" ,
43+ level : "info" ,
44+ data : {
45+ search_interface : "main_search" ,
46+ query_length : query ? query . length : 0 ,
47+ timestamp : new Date ( ) . toISOString ( ) ,
48+ } ,
49+ } ) ;
50+ } ;
51+
2152 return (
2253 < div className = "max-w-3xl mx-auto" >
2354 < div className = "border-2 border-gray-200 rounded-xl transition-all duration-200 shadow-sm hover:shadow-md" >
@@ -40,10 +71,10 @@ export function SearchSection() {
4071 reset : "hidden" ,
4172 loadingIndicator : "hidden" ,
4273 } }
74+ onFocus = { handleSearchFocus }
4375 />
4476 </ div >
4577 < div className = "flex items-center pr-4 border-l border-gray-200 ml-2 pl-4" >
46- { /* Render PoweredBy only after mount to avoid hydration mismatch */ }
4778 { mounted ? (
4879 < PoweredBy
4980 classNames = { {
0 commit comments