Search: loading state

This commit is contained in:
2026-02-13 23:56:35 -08:00
parent a5b05df1b2
commit a447641f1d

View File

@@ -306,6 +306,7 @@ export default function App() {
}, [selectedChat, selectedChatSummary, selectedItem, selectedSearch, selectedSearchSummary]); }, [selectedChat, selectedChatSummary, selectedItem, selectedSearch, selectedSearchSummary]);
const isSearchMode = selectedItem?.kind === "search"; const isSearchMode = selectedItem?.kind === "search";
const isSearchRunning = isSending && selectedItem?.kind === "search";
const handleCreateChat = async () => { const handleCreateChat = async () => {
setError(null); setError(null);
@@ -444,13 +445,27 @@ export default function App() {
throw new Error("Unable to initialize search"); throw new Error("Unable to initialize search");
} }
const nowIso = new Date().toISOString();
setSelectedSearch((current) => { setSelectedSearch((current) => {
if (!current || current.id !== searchId) return current; if (!current || current.id !== searchId) {
return {
id: searchId,
title: query.slice(0, 80),
query,
createdAt: nowIso,
updatedAt: nowIso,
requestId: null,
latencyMs: null,
error: null,
results: [],
};
}
return { return {
...current, ...current,
title: query.slice(0, 80), title: query.slice(0, 80),
query, query,
error: null, error: null,
latencyMs: null,
results: [], results: [],
}; };
}); });
@@ -725,8 +740,8 @@ export default function App() {
</div> </div>
) : null} ) : null}
{isLoadingSelection && !selectedSearch?.results.length ? ( {(isLoadingSelection || isSearchRunning) && !selectedSearch?.results.length ? (
<p className="text-sm text-muted-foreground">Loading search...</p> <p className="text-sm text-muted-foreground">{isSearchRunning ? "Searching Exa..." : "Loading search..."}</p>
) : null} ) : null}
{!isLoadingSelection && !selectedSearch?.query ? ( {!isLoadingSelection && !selectedSearch?.query ? (
@@ -737,7 +752,7 @@ export default function App() {
</div> </div>
) : null} ) : null}
{!isLoadingSelection && !!selectedSearch?.query && selectedSearch.results.length === 0 ? ( {!isLoadingSelection && !isSearchRunning && !!selectedSearch?.query && selectedSearch.results.length === 0 ? (
<p className="text-sm text-muted-foreground">No results found.</p> <p className="text-sm text-muted-foreground">No results found.</p>
) : null} ) : null}