@@ -84,10 +84,32 @@ impl ZedAiOnboarding {
self
}
+ fn render_dismiss_button(&self) -> Option<AnyElement> {
+ self.dismiss_onboarding.as_ref().map(|dismiss_callback| {
+ let callback = dismiss_callback.clone();
+
+ h_flex()
+ .absolute()
+ .top_0()
+ .right_0()
+ .child(
+ IconButton::new("dismiss_onboarding", IconName::Close)
+ .icon_size(IconSize::Small)
+ .tooltip(Tooltip::text("Dismiss"))
+ .on_click(move |_, window, cx| {
+ telemetry::event!("Banner Dismissed", source = "AI Onboarding",);
+ callback(window, cx)
+ }),
+ )
+ .into_any_element()
+ })
+ }
+
fn render_sign_in_disclaimer(&self, _cx: &mut App) -> AnyElement {
let signing_in = matches!(self.sign_in_status, SignInStatus::SigningIn);
v_flex()
+ .relative()
.gap_1()
.child(Headline::new("Welcome to Zed AI"))
.child(
@@ -109,6 +131,7 @@ impl ZedAiOnboarding {
}
}),
)
+ .children(self.render_dismiss_button())
.into_any_element()
}
@@ -180,27 +203,7 @@ impl ZedAiOnboarding {
)
.child(PlanDefinitions.free_plan(is_v2)),
)
- .when_some(
- self.dismiss_onboarding.as_ref(),
- |this, dismiss_callback| {
- let callback = dismiss_callback.clone();
-
- this.child(
- h_flex().absolute().top_0().right_0().child(
- IconButton::new("dismiss_onboarding", IconName::Close)
- .icon_size(IconSize::Small)
- .tooltip(Tooltip::text("Dismiss"))
- .on_click(move |_, window, cx| {
- telemetry::event!(
- "Banner Dismissed",
- source = "AI Onboarding",
- );
- callback(window, cx)
- }),
- ),
- )
- },
- )
+ .children(self.render_dismiss_button())
.child(
v_flex()
.mt_2()
@@ -245,26 +248,7 @@ impl ZedAiOnboarding {
.mb_2(),
)
.child(PlanDefinitions.pro_trial(is_v2, false))
- .when_some(
- self.dismiss_onboarding.as_ref(),
- |this, dismiss_callback| {
- let callback = dismiss_callback.clone();
- this.child(
- h_flex().absolute().top_0().right_0().child(
- IconButton::new("dismiss_onboarding", IconName::Close)
- .icon_size(IconSize::Small)
- .tooltip(Tooltip::text("Dismiss"))
- .on_click(move |_, window, cx| {
- telemetry::event!(
- "Banner Dismissed",
- source = "AI Onboarding",
- );
- callback(window, cx)
- }),
- ),
- )
- },
- )
+ .children(self.render_dismiss_button())
.into_any_element()
}
@@ -278,26 +262,7 @@ impl ZedAiOnboarding {
.mb_2(),
)
.child(PlanDefinitions.pro_plan(is_v2, false))
- .when_some(
- self.dismiss_onboarding.as_ref(),
- |this, dismiss_callback| {
- let callback = dismiss_callback.clone();
- this.child(
- h_flex().absolute().top_0().right_0().child(
- IconButton::new("dismiss_onboarding", IconName::Close)
- .icon_size(IconSize::Small)
- .tooltip(Tooltip::text("Dismiss"))
- .on_click(move |_, window, cx| {
- telemetry::event!(
- "Banner Dismissed",
- source = "AI Onboarding",
- );
- callback(window, cx)
- }),
- ),
- )
- },
- )
+ .children(self.render_dismiss_button())
.into_any_element()
}
}