46 lines
1.5 KiB
Rust
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())
|
|
}
|