@page "/rooms/search" @rendermode InteractiveServer @inject ImageUrlService Img Search Rooms

Search Rooms

Search for rooms by name, description, or room ID.

@if (searching) {
} else if (!string.IsNullOrEmpty(error)) {
@error
} else if (results != null && results.Count == 0) {
No rooms found matching "@searchQuery".
} else if (results != null) {
@foreach (var room in results) { }
Room ID Image Name Creator State Dorm Actions
@room.RoomId @if (!string.IsNullOrEmpty(room.ImageName)) { room } @room.Name @room.CreatorAccountId @room.State @(room.IsDorm ? "Yes" : "No") Edit
} @code { [Inject] private HttpClient Http { get; set; } = default!; private string searchQuery = ""; private bool searching; private string? error; private List? results; private async Task DoSearch() { searching = true; error = null; results = null; try { results = await Http.GetFromJsonAsync>($"/admin/api/rooms/search?q={Uri.EscapeDataString(searchQuery)}"); } catch (Exception ex) { error = $"Search failed: {ex.Message}"; } finally { searching = false; } } }