remote projects per user (#10594)
Release Notes: - Made remote projects per-user instead of per-channel. If you'd like to be part of the remote development alpha, please email hi@zed.dev. --------- Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com> Co-authored-by: Bennet <bennetbo@gmx.de> Co-authored-by: Nate Butler <1714999+iamnbutler@users.noreply.github.com> Co-authored-by: Nate Butler <iamnbutler@gmail.com>
This commit is contained in:
parent
8ae4c3277f
commit
e0c83a1d32
56 changed files with 2807 additions and 1625 deletions
|
@ -1,12 +1,16 @@
|
|||
use gpui::*;
|
||||
use gpui::{prelude::FluentBuilder, *};
|
||||
use smallvec::SmallVec;
|
||||
|
||||
use crate::{h_flex, IconButton, IconButtonShape, IconName, Label, LabelCommon, LabelSize};
|
||||
use crate::{
|
||||
h_flex, Clickable, IconButton, IconButtonShape, IconName, Label, LabelCommon, LabelSize,
|
||||
};
|
||||
|
||||
#[derive(IntoElement)]
|
||||
pub struct ModalHeader {
|
||||
id: ElementId,
|
||||
children: SmallVec<[AnyElement; 2]>,
|
||||
show_dismiss_button: bool,
|
||||
show_back_button: bool,
|
||||
}
|
||||
|
||||
impl ModalHeader {
|
||||
|
@ -14,8 +18,20 @@ impl ModalHeader {
|
|||
Self {
|
||||
id: id.into(),
|
||||
children: SmallVec::new(),
|
||||
show_dismiss_button: false,
|
||||
show_back_button: false,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn show_dismiss_button(mut self, show: bool) -> Self {
|
||||
self.show_dismiss_button = show;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn show_back_button(mut self, show: bool) -> Self {
|
||||
self.show_back_button = show;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl ParentElement for ModalHeader {
|
||||
|
@ -31,9 +47,28 @@ impl RenderOnce for ModalHeader {
|
|||
.w_full()
|
||||
.px_2()
|
||||
.py_1p5()
|
||||
.when(self.show_back_button, |this| {
|
||||
this.child(
|
||||
div().pr_1().child(
|
||||
IconButton::new("back", IconName::ArrowLeft)
|
||||
.shape(IconButtonShape::Square)
|
||||
.on_click(|_, cx| {
|
||||
cx.dispatch_action(menu::Cancel.boxed_clone());
|
||||
}),
|
||||
),
|
||||
)
|
||||
})
|
||||
.child(div().flex_1().children(self.children))
|
||||
.justify_between()
|
||||
.child(IconButton::new("dismiss", IconName::Close).shape(IconButtonShape::Square))
|
||||
.when(self.show_dismiss_button, |this| {
|
||||
this.child(
|
||||
IconButton::new("dismiss", IconName::Close)
|
||||
.shape(IconButtonShape::Square)
|
||||
.on_click(|_, cx| {
|
||||
cx.dispatch_action(menu::Cancel.boxed_clone());
|
||||
}),
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue