Show loading state when @ search results are pending (#3061)

## Summary
- allow selection popups to specify their empty state message
- show a "loading..." placeholder in the file search popup while matches
are pending
- update other popup call sites to continue using a "no matches" message

## Testing
- just fmt
- just fix -p codex-tui
- cargo test -p codex-tui

------
https://chatgpt.com/codex/tasks/task_i_68b73e956e90832caf4d04a75fcc9c46
This commit is contained in:
Jeremy Rose
2025-09-02 16:38:43 -07:00
committed by GitHub
parent 578ff09e17
commit 3baccba0ac
4 changed files with 34 additions and 8 deletions

View File

@@ -132,11 +132,20 @@ impl WidgetRef for &FileSearchPopup {
.collect()
};
if self.waiting && rows_all.is_empty() {
// Render a minimal waiting stub using the shared renderer (no rows -> "no matches").
render_rows(area, buf, &[], &self.state, MAX_POPUP_ROWS, false);
let empty_message = if self.waiting {
"loading..."
} else {
render_rows(area, buf, &rows_all, &self.state, MAX_POPUP_ROWS, false);
}
"no matches"
};
render_rows(
area,
buf,
&rows_all,
&self.state,
MAX_POPUP_ROWS,
false,
empty_message,
);
}
}