feat: Removed yellow semantic-search-unavailable banner from search res…
- "frontend/src/pages/SearchResults.tsx" - "frontend/src/App.css" - "frontend/src/components/AppFooter.tsx" - "frontend/package.json" GSD-Task: S02/T02
This commit is contained in:
parent
831489cf4f
commit
0c8bbb32d6
4 changed files with 2 additions and 27 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "chrysopedia-web",
|
"name": "chrysopedia-web",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.0",
|
"version": "0.8.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|
|
||||||
|
|
@ -1116,16 +1116,6 @@ a.app-footer__repo:hover {
|
||||||
max-width: 64rem;
|
max-width: 64rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-fallback-banner {
|
|
||||||
padding: 0.5rem 0.75rem;
|
|
||||||
background: var(--color-banner-amber-bg);
|
|
||||||
border: 1px solid var(--color-banner-amber-border);
|
|
||||||
border-radius: 0.375rem;
|
|
||||||
font-size: 0.8125rem;
|
|
||||||
color: var(--color-banner-amber-text);
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-group {
|
.search-group {
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ export default function AppFooter() {
|
||||||
<span className="app-footer__date">
|
<span className="app-footer__date">
|
||||||
Built {__BUILD_DATE__.slice(0, 10)}
|
Built {__BUILD_DATE__.slice(0, 10)}
|
||||||
</span>
|
</span>
|
||||||
{commitUrl ? (
|
{commitUrl && (
|
||||||
<>
|
<>
|
||||||
<span className="app-footer__sep">·</span>
|
<span className="app-footer__sep">·</span>
|
||||||
<a
|
<a
|
||||||
|
|
@ -27,11 +27,6 @@ export default function AppFooter() {
|
||||||
{__GIT_COMMIT__}
|
{__GIT_COMMIT__}
|
||||||
</a>
|
</a>
|
||||||
</>
|
</>
|
||||||
) : (
|
|
||||||
<>
|
|
||||||
<span className="app-footer__sep">·</span>
|
|
||||||
<span className="app-footer__commit">{__GIT_COMMIT__}</span>
|
|
||||||
</>
|
|
||||||
)}
|
)}
|
||||||
<span className="app-footer__sep">·</span>
|
<span className="app-footer__sep">·</span>
|
||||||
<a
|
<a
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ export default function SearchResults() {
|
||||||
const q = searchParams.get("q") ?? "";
|
const q = searchParams.get("q") ?? "";
|
||||||
|
|
||||||
const [results, setResults] = useState<SearchResultItem[]>([]);
|
const [results, setResults] = useState<SearchResultItem[]>([]);
|
||||||
const [fallbackUsed, setFallbackUsed] = useState(false);
|
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [error, setError] = useState<string | null>(null);
|
const [error, setError] = useState<string | null>(null);
|
||||||
const [localQuery, setLocalQuery] = useState(q);
|
const [localQuery, setLocalQuery] = useState(q);
|
||||||
|
|
@ -25,7 +24,6 @@ export default function SearchResults() {
|
||||||
const doSearch = useCallback(async (query: string) => {
|
const doSearch = useCallback(async (query: string) => {
|
||||||
if (!query.trim()) {
|
if (!query.trim()) {
|
||||||
setResults([]);
|
setResults([]);
|
||||||
setFallbackUsed(false);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -34,7 +32,6 @@ export default function SearchResults() {
|
||||||
try {
|
try {
|
||||||
const res = await searchApi(query.trim());
|
const res = await searchApi(query.trim());
|
||||||
setResults(res.items);
|
setResults(res.items);
|
||||||
setFallbackUsed(res.fallback_used);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setError(err instanceof Error ? err.message : "Search failed");
|
setError(err instanceof Error ? err.message : "Search failed");
|
||||||
setResults([]);
|
setResults([]);
|
||||||
|
|
@ -97,13 +94,6 @@ export default function SearchResults() {
|
||||||
{loading && <div className="loading">Searching…</div>}
|
{loading && <div className="loading">Searching…</div>}
|
||||||
{error && <div className="loading error-text">Error: {error}</div>}
|
{error && <div className="loading error-text">Error: {error}</div>}
|
||||||
|
|
||||||
{/* Fallback banner */}
|
|
||||||
{!loading && fallbackUsed && results.length > 0 && (
|
|
||||||
<div className="search-fallback-banner">
|
|
||||||
Showing keyword results — semantic search unavailable
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* No results */}
|
{/* No results */}
|
||||||
{!loading && !error && q && results.length === 0 && (
|
{!loading && !error && q && results.length === 0 && (
|
||||||
<div className="empty-state">
|
<div className="empty-state">
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue