Files
ELY-Browser/crates/ely_app/src/shell/internal_pages/tab_context.rs
T

46 lines
1.5 KiB
Rust

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())
}