@@ -66,110 +66,93 @@ export const AskSourcebotDemoCards = ({
66
66
}
67
67
68
68
return (
69
- < >
70
- { process . env . NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT === "demo" && (
71
- < p className = "text-sm text-muted-foreground text-center mt-6" >
72
- Interested in using Sourcebot on your code? Check out our{ ' ' }
73
- < a
74
- href = "https://docs.sourcebot.dev/docs/overview"
75
- target = "_blank"
76
- rel = "noopener noreferrer"
77
- className = "text-primary hover:underline"
78
- onClick = { ( ) => captureEvent ( 'wa_demo_docs_link_pressed' , { } ) }
79
- >
80
- docs
81
- </ a >
82
- </ p >
83
- ) }
84
-
85
- < div className = "w-full mt-8 space-y-12 px-4 max-w-[1200px]" >
86
- { /* Example Searches Row */ }
87
- < div className = "space-y-4" >
88
- < div className = "text-center mb-6" >
89
- < div className = "flex items-center justify-center gap-3 mb-4" >
90
- < Search className = "h-7 w-7 text-muted-foreground" />
91
- < h3 className = "text-2xl font-bold" > Community Ask Results</ h3 >
92
- </ div >
69
+ < div className = "w-full mt-8 space-y-12 px-4 max-w-[1200px]" >
70
+ { /* Example Searches Row */ }
71
+ < div className = "space-y-4" >
72
+ < div className = "text-center mb-6" >
73
+ < div className = "flex items-center justify-center gap-3 mb-4" >
74
+ < Search className = "h-7 w-7 text-muted-foreground" />
75
+ < h3 className = "text-2xl font-bold" > Community Ask Results</ h3 >
93
76
</ div >
77
+ </ div >
94
78
95
- { /* Search Scope Filter */ }
96
- < div className = "flex flex-wrap items-center justify-center gap-2 mb-6" >
97
- < div className = "flex items-center gap-2 mr-2" >
98
- < div className = "relative group" >
99
- < Info className = "h-4 w-4 text-muted-foreground cursor-help" />
100
- < div className = "absolute bottom-6 left-1/2 transform -translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 z-10 pointer-events-none" >
101
- < SearchScopeInfoCard />
102
- < div className = "absolute top-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent border-t-border" > </ div >
103
- </ div >
79
+ { /* Search Scope Filter */ }
80
+ < div className = "flex flex-wrap items-center justify-center gap-2 mb-6" >
81
+ < div className = "flex items-center gap-2 mr-2" >
82
+ < div className = "relative group" >
83
+ < Info className = "h-4 w-4 text-muted-foreground cursor-help" />
84
+ < div className = "absolute bottom-6 left-1/2 transform -translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 z-10 pointer-events-none" >
85
+ < SearchScopeInfoCard />
86
+ < div className = "absolute top-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent border-t-border" > </ div >
104
87
</ div >
105
- < span className = "text-sm font-medium text-muted-foreground" > Search Scope:</ span >
106
88
</ div >
89
+ < span className = "text-sm font-medium text-muted-foreground" > Search Scope:</ span >
90
+ </ div >
91
+ < Badge
92
+ variant = { selectedFilterSearchScope === null ? "default" : "secondary" }
93
+ className = { `cursor-pointer transition-all duration-200 hover:shadow-sm ${ selectedFilterSearchScope === null ? "bg-primary text-primary-foreground" : "hover:bg-secondary/80"
94
+ } `}
95
+ onClick = { ( ) => {
96
+ setSelectedFilterSearchScope ( null ) ;
97
+ } }
98
+ >
99
+ All
100
+ </ Badge >
101
+ { demoExamples . searchScopes . map ( ( searchScope ) => (
107
102
< Badge
108
- variant = { selectedFilterSearchScope === null ? "default" : "secondary" }
109
- className = { `cursor-pointer transition-all duration-200 hover:shadow-sm ${ selectedFilterSearchScope === null ? "bg-primary text-primary-foreground" : "hover:bg-secondary/80"
103
+ key = { searchScope . id }
104
+ variant = { selectedFilterSearchScope === searchScope . id ? "default" : "secondary" }
105
+ className = { `cursor-pointer transition-all duration-200 hover:shadow-sm flex items-center gap-1 ${ selectedFilterSearchScope === searchScope . id ? "bg-primary text-primary-foreground" : "hover:bg-secondary/80"
110
106
} `}
111
107
onClick = { ( ) => {
112
- setSelectedFilterSearchScope ( null ) ;
108
+ setSelectedFilterSearchScope ( searchScope . id ) ;
113
109
} }
114
110
>
115
- All
111
+ { getSearchScopeIcon ( searchScope , 12 , selectedFilterSearchScope === searchScope . id ) }
112
+ { searchScope . displayName }
116
113
</ Badge >
117
- { demoExamples . searchScopes . map ( ( searchScope ) => (
118
- < Badge
119
- key = { searchScope . id }
120
- variant = { selectedFilterSearchScope === searchScope . id ? "default" : "secondary" }
121
- className = { `cursor-pointer transition-all duration-200 hover:shadow-sm flex items-center gap-1 ${ selectedFilterSearchScope === searchScope . id ? "bg-primary text-primary-foreground" : "hover:bg-secondary/80"
122
- } `}
123
- onClick = { ( ) => {
124
- setSelectedFilterSearchScope ( searchScope . id ) ;
125
- } }
126
- >
127
- { getSearchScopeIcon ( searchScope , 12 , selectedFilterSearchScope === searchScope . id ) }
128
- { searchScope . displayName }
129
- </ Badge >
130
- ) ) }
131
- </ div >
114
+ ) ) }
115
+ </ div >
132
116
133
- < div className = "flex flex-wrap justify-center gap-3" >
134
- { demoExamples . searchExamples
135
- . filter ( ( example ) => {
136
- if ( selectedFilterSearchScope === null ) return true ;
137
- return example . searchScopes . includes ( selectedFilterSearchScope ) ;
138
- } )
139
- . map ( ( example ) => {
140
- const searchScopes = demoExamples . searchScopes . filter ( ( searchScope ) => example . searchScopes . includes ( searchScope . id ) )
141
- return (
142
- < Card
143
- key = { example . url }
144
- className = "cursor-pointer transition-all duration-200 hover:shadow-md hover:scale-105 hover:border-primary/50 group w-full max-w-[350px]"
145
- onClick = { ( ) => handleExampleClick ( example ) }
146
- >
147
- < CardContent className = "p-4" >
148
- < div className = "space-y-3" >
149
- < div className = "flex items-center justify-between" >
150
- { searchScopes . map ( ( searchScope ) => (
151
- < Badge key = { searchScope . value } variant = "secondary" className = "text-[10px] px-1.5 py-0.5 h-4 flex items-center gap-1" >
152
- { getSearchScopeIcon ( searchScope , 12 ) }
153
- { searchScope . displayName }
154
- </ Badge >
155
- ) ) }
156
- </ div >
157
- < div className = "space-y-1" >
158
- < h4 className = "font-semibold text-sm group-hover:text-primary transition-colors line-clamp-2" >
159
- { example . title }
160
- </ h4 >
161
- < p className = "text-xs text-muted-foreground line-clamp-3 leading-relaxed" >
162
- { example . description }
163
- </ p >
164
- </ div >
117
+ < div className = "flex flex-wrap justify-center gap-3" >
118
+ { demoExamples . searchExamples
119
+ . filter ( ( example ) => {
120
+ if ( selectedFilterSearchScope === null ) return true ;
121
+ return example . searchScopes . includes ( selectedFilterSearchScope ) ;
122
+ } )
123
+ . map ( ( example ) => {
124
+ const searchScopes = demoExamples . searchScopes . filter ( ( searchScope ) => example . searchScopes . includes ( searchScope . id ) )
125
+ return (
126
+ < Card
127
+ key = { example . url }
128
+ className = "cursor-pointer transition-all duration-200 hover:shadow-md hover:scale-105 hover:border-primary/50 group w-full max-w-[350px]"
129
+ onClick = { ( ) => handleExampleClick ( example ) }
130
+ >
131
+ < CardContent className = "p-4" >
132
+ < div className = "space-y-3" >
133
+ < div className = "flex items-center justify-between" >
134
+ { searchScopes . map ( ( searchScope ) => (
135
+ < Badge key = { searchScope . value } variant = "secondary" className = "text-[10px] px-1.5 py-0.5 h-4 flex items-center gap-1" >
136
+ { getSearchScopeIcon ( searchScope , 12 ) }
137
+ { searchScope . displayName }
138
+ </ Badge >
139
+ ) ) }
165
140
</ div >
166
- </ CardContent >
167
- </ Card >
168
- )
169
- } ) }
170
- </ div >
141
+ < div className = "space-y-1" >
142
+ < h4 className = "font-semibold text-sm group-hover:text-primary transition-colors line-clamp-2" >
143
+ { example . title }
144
+ </ h4 >
145
+ < p className = "text-xs text-muted-foreground line-clamp-3 leading-relaxed" >
146
+ { example . description }
147
+ </ p >
148
+ </ div >
149
+ </ div >
150
+ </ CardContent >
151
+ </ Card >
152
+ )
153
+ } ) }
171
154
</ div >
172
155
</ div >
173
- </ >
156
+ </ div >
174
157
) ;
175
158
} ;
0 commit comments