diff --git a/web/Cargo.toml b/web/Cargo.toml index dcd46bf..0a3bc8f 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -50,9 +50,10 @@ features = [ "Clipboard", "DomRect", "Element", + "History", "MediaQueryList", "Navigator", - "Window", - "History", + "Performance", "ScrollRestoration", + "Window", ] diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index 6feab0e..a993f09 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -335,17 +335,31 @@ fn search_results( ] }) .collect(); + let show_bulk_edit = !selected_threads.is_empty(); + let all_selected = (selected_threads.len() == results.len()) && !rows.is_empty(); let content = if rows.is_empty() { + let caught_up = query.contains("is:unread"); + let read_emoji = ["👻", "👽", "👾", "🤖", "💀"]; + let no_results_emoji = ["🙈", "👀", "🤦", "🤷", "🙅", "🛟", "🍩", "🌑", "💿", "🔍"]; + let now = seed::window() + .performance() + .map(|p| p.now() as usize) + .unwrap_or(0); + let (emoji, text) = if caught_up { + let idx = now % read_emoji.len(); + (read_emoji[idx], "All caught up!") + } else { + let idx = now % no_results_emoji.len(); + (no_results_emoji[idx], "No results") + }; div![ C!["text-center"], - h1![C!["text-9xl"], "🥳"], - p![C!["mt-8", "text-3xl", "font-semibold"], "All caught up!"] + h1![C!["text-9xl"], emoji], + p![C!["mt-8", "text-3xl", "font-semibold"], text] ] } else { div![rows] }; - let show_bulk_edit = !selected_threads.is_empty(); - let all_selected = selected_threads.len() == results.len(); div![ C!["flex", "flex-col", "flex-auto", "p-4"], search_toolbar(count, pager, show_bulk_edit, all_selected),