diff --git a/crates/ui/src/modal.rs b/crates/ui/src/modal.rs index e7715416..cf0cad5a 100644 --- a/crates/ui/src/modal.rs +++ b/crates/ui/src/modal.rs @@ -401,34 +401,41 @@ impl RenderOnce for Modal { .flex() .items_center() .justify_center() + .relative() .when_some(self.title, |this, title| { this.h_10().font_semibold().text_center().child(title) + }) + .when(self.show_close, |this| { + let on_cancel = on_cancel.clone(); + let on_close = on_close.clone(); + + this.child( + div() + .absolute() + .top_0() + .bottom_0() + .right_2() + .flex() + .items_center() + .child( + Button::new("close") + .icon(IconName::CloseCircleFill) + .custom( + ButtonCustomVariant::new(window, cx) + .foreground(cx.theme().icon_muted) + .color(cx.theme().ghost_element_background) + .hover(cx.theme().ghost_element_background) + .active(cx.theme().ghost_element_background), + ) + .on_click(move |_, window, cx| { + on_cancel(&ClickEvent::default(), window, cx); + on_close(&ClickEvent::default(), window, cx); + window.close_modal(cx); + }), + ), + ) }), ) - .when(self.show_close, |this| { - let on_cancel = on_cancel.clone(); - let on_close = on_close.clone(); - - this.child( - Button::new("close") - .icon(IconName::CloseCircleFill) - .absolute() - .top_1p5() - .right_2() - .custom( - ButtonCustomVariant::new(window, cx) - .foreground(cx.theme().icon_muted) - .color(cx.theme().ghost_element_background) - .hover(cx.theme().ghost_element_background) - .active(cx.theme().ghost_element_background), - ) - .on_click(move |_, window, cx| { - on_cancel(&ClickEvent::default(), window, cx); - on_close(&ClickEvent::default(), window, cx); - window.close_modal(cx); - }), - ) - }) .child( div() .pt_px()