Skip to content

Commit 6638cc9

Browse files
committed
chore: improve auto-completion backend code
1 parent e4f5307 commit 6638cc9

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

crates/rostra-web-ui/src/routes/search.rs

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use axum::Json;
22
use axum::extract::{Query, State};
33
use axum::response::IntoResponse;
4-
use rostra_core::id::RostraId;
54
use serde::{Deserialize, Serialize};
65

76
use super::unlock::session::UserSession;
@@ -32,23 +31,35 @@ pub async fn search_profiles(
3231
// Get extended followers (direct + followers of followers)
3332
let (direct, extended) = db.get_followees_extended(session.id()).await;
3433

35-
// Collect all IDs to search (direct followees + extended)
36-
let all_ids: Vec<RostraId> = direct.keys().copied().chain(extended.into_iter()).collect();
37-
38-
// Filter by display name prefix
34+
// Filter by display name or rostra_id prefix (self + direct followees +
35+
// extended)
3936
let mut results = Vec::new();
40-
for id in all_ids {
37+
for id in std::iter::once(session.id())
38+
.chain(direct.keys().copied())
39+
.chain(extended)
40+
{
4141
if results.len() >= 10 {
4242
break;
4343
}
4444

45-
if let Some(profile) = db.get_social_profile(id).await {
46-
if profile.display_name.to_lowercase().starts_with(&query) {
47-
results.push(ProfileSearchResult {
48-
rostra_id: id.to_string(),
49-
display_name: profile.display_name,
50-
});
51-
}
45+
let id_str = id.to_string();
46+
let id_str_lower = id_str.to_lowercase();
47+
48+
// Get display name from profile, or use truncated rostra_id as fallback
49+
let display_name = db
50+
.get_social_profile(id)
51+
.await
52+
.map(|p| p.display_name)
53+
.unwrap_or_else(|| format!("{}...", &id_str[..8.min(id_str.len())]));
54+
55+
let display_name_lower = display_name.to_lowercase();
56+
57+
// Match against display name or rostra_id prefix
58+
if display_name_lower.starts_with(&query) || id_str_lower.starts_with(&query) {
59+
results.push(ProfileSearchResult {
60+
rostra_id: id_str,
61+
display_name,
62+
});
5263
}
5364
}
5465

0 commit comments

Comments
 (0)