Add sleeping tab recovery

This commit is contained in:
2026-05-08 10:23:58 -04:00
parent 1ec3bfcc3d
commit 3c380e1455
12 changed files with 338 additions and 50 deletions
@@ -0,0 +1,45 @@
use ely_browser_core::BrowserSnapshot;
use ely_design_system::colors;
use ely_domain::BrowserTab;
use gpui::{AnyElement, IntoElement, ParentElement, Styled, div, px, rgb};
use gpui_component::StyledExt;
pub(super) fn tab_context_row(label: &'static str, value: String) -> AnyElement {
div()
.flex()
.items_center()
.justify_between()
.gap_4()
.child(div().min_w(px(128.0)).text_xs().text_color(rgb(colors::MUTED)).child(label))
.child(
div()
.min_w_0()
.text_sm()
.font_semibold()
.truncate()
.text_color(rgb(colors::INK))
.child(value),
)
.into_any_element()
}
pub(super) fn favicon_status(tab: &BrowserTab) -> String {
tab.favicon_key()
.map_or_else(|| "No favicon saved".to_string(), |favicon| format!("Saved: {favicon}"))
}
pub(super) fn space_name(snapshot: &BrowserSnapshot, tab: &BrowserTab) -> String {
snapshot
.spaces
.iter()
.find(|space| space.id() == tab.space_id())
.map_or_else(|| tab.space_id().as_str().to_string(), |space| space.name().to_string())
}
pub(super) fn profile_name(snapshot: &BrowserSnapshot, tab: &BrowserTab) -> String {
snapshot
.profiles
.iter()
.find(|profile| profile.id() == tab.profile_id())
.map_or_else(|| tab.profile_id().as_str().to_string(), |profile| profile.name().to_string())
}