diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 68fbcfb3a3..b4d4b08d54 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -292,91 +292,99 @@ impl Render for FeedbackModal { .on_action(cx.listener(Self::cancel)) .min_w(rems(40.)) .max_w(rems(96.)) - .border() - .border_color(red()) - .h(rems(40.)) - .p_2() + .min_h(rems(24.)) + .max_h(rems(42.)) .gap_2() .child( - v_stack().child( + v_stack() + .p_4() + .child( div() .size_full() .child(Label::new("Give Feedback").color(Color::Default)) .child(Label::new("This editor supports markdown").color(Color::Muted)), ), ) - .child( - div() - .flex_1() + .child(v_stack() + .p_4() + .child( + div() + .flex_1() + .bg(cx.theme().colors().editor_background) + .border() + .border_color(cx.theme().colors().border) + .child(self.feedback_editor.clone()), + ) + .child( + div().child( + Label::new(format!( + "Characters: {}", + characters_remaining + )) + .map(|this| + if valid_character_count { + this.color(Color::Success) + } else { + this.color(Color::Error) + + } + ) + ), + ) + .child( + div() .bg(cx.theme().colors().editor_background) .border() .border_color(cx.theme().colors().border) - .child(self.feedback_editor.clone()), - ) - .child( - div().child( - Label::new(format!( - "Characters: {}", - characters_remaining - )) - .when_else( - valid_character_count, - |this| this.color(Color::Success), - |this| this.color(Color::Error) - ) - ), - ) - .child( - div() - .bg(cx.theme().colors().editor_background) - .border() - .border_color(cx.theme().colors().border) - .child(self.email_address_editor.clone()) - ) - .child( - h_stack() - .justify_between() - .gap_1() - .child(Button::new("community_repo", "Community Repo") - .style(ButtonStyle::Filled) - .color(Color::Muted) - .on_click(open_community_repo) - ) - .child(h_stack().justify_between().gap_1() - .child( - Button::new("cancel_feedback", "Cancel") - .style(ButtonStyle::Subtle) - .color(Color::Muted) - // TODO: replicate this logic when clicking outside the modal - // TODO: Will require somehow overriding the modal dismal default behavior - .when_else( - has_feedback, - |this| this.on_click(dismiss_prompt), - |this| this.on_click(dismiss) - ) + .child(self.email_address_editor.clone()) + ) + .child( + h_stack() + .justify_between() + .gap_1() + .child(Button::new("community_repo", "Community Repo") + .style(ButtonStyle::Filled) + .color(Color::Muted) + .on_click(open_community_repo) + ) + .child(h_stack().justify_between().gap_1() + .child( + Button::new("cancel_feedback", "Cancel") + .style(ButtonStyle::Subtle) + .color(Color::Muted) + // TODO: replicate this logic when clicking outside the modal + // TODO: Will require somehow overriding the modal dismal default behavior + .map(|this| { + if has_feedback { + this.on_click(dismiss_prompt) + } else { + this.on_click(dismiss) + } + }) + ) + .child( + Button::new("send_feedback", submit_button_text) + .color(Color::Accent) + .style(ButtonStyle::Filled) + // TODO: Ensure that while submitting, "Sending..." is shown and disable the button + // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button + // TODO: If submit is successful, close the modal + .on_click(cx.listener(|this, _, cx| { + let _ = this.submit(cx); + })) + .tooltip(|cx| { + Tooltip::with_meta( + "Submit feedback to the Zed team.", + None, + "Provide an email address if you want us to be able to reply.", + cx, + ) + }) + .when(!allow_submission, |this| this.disabled(true)) + ), ) - .child( - Button::new("send_feedback", submit_button_text) - .color(Color::Accent) - .style(ButtonStyle::Filled) - // TODO: Ensure that while submitting, "Sending..." is shown and disable the button - // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button - // TODO: If submit is successful, close the modal - .on_click(cx.listener(|this, _, cx| { - let _ = this.submit(cx); - })) - .tooltip(|cx| { - Tooltip::with_meta( - "Submit feedback to the Zed team.", - None, - "Provide an email address if you want us to be able to reply.", - cx, - ) - }) - .when(!allow_submission, |this| this.disabled(true)) - ), - ) + ) ) } } diff --git a/crates/ui2/src/components/keybinding.rs b/crates/ui2/src/components/keybinding.rs index 29586fd194..25a77f59e1 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -98,11 +98,13 @@ impl RenderOnce for Key { div() .py_0() - .when_else( - single_char, - |el| el.w(rems(14. / 16.)).flex().flex_none().justify_center(), - |el| el.px_0p5(), - ) + .map(|el| { + if single_char { + el.w(rems(14. / 16.)).flex().flex_none().justify_center() + } else { + el.px_0p5() + } + }) .h(rems(14. / 16.)) .text_ui() .line_height(relative(1.))