Add a note on how to check the telemetry

Mikayla Maki created

Change summary

crates/theme/src/theme.rs       |  1 +
crates/theme/src/ui.rs          | 22 +++++++++++++++++-----
crates/welcome/src/welcome.rs   | 21 +++++++++++++++++++--
crates/zed/src/menus.rs         |  2 +-
styles/src/styleTree/welcome.ts |  9 +++++++++
5 files changed, 47 insertions(+), 8 deletions(-)

Detailed changes

crates/theme/src/theme.rs 🔗

@@ -869,6 +869,7 @@ pub struct WelcomeStyle {
     pub page_width: f32,
     pub logo: IconStyle,
     pub logo_subheading: ContainedText,
+    pub usage_note: ContainedText,
     pub checkbox: CheckboxStyle,
     pub checkbox_container: ContainerStyle,
     pub button: Interactive<ContainedText>,

crates/theme/src/ui.rs 🔗

@@ -4,7 +4,7 @@ use gpui::{
         ConstrainedBox, Container, ContainerStyle, Empty, Flex, KeystrokeLabel, Label,
         MouseEventHandler, ParentElement, Svg,
     },
-    Action, Element, EventContext, RenderContext, View,
+    Action, Element, ElementBox, EventContext, RenderContext, View,
 };
 use serde::Deserialize;
 
@@ -26,6 +26,21 @@ pub fn checkbox<T: 'static, V: View>(
     checked: bool,
     cx: &mut RenderContext<V>,
     change: fn(checked: bool, cx: &mut EventContext) -> (),
+) -> MouseEventHandler<T> {
+    let label = Label::new(label, style.label.text.clone())
+        .contained()
+        .with_style(style.label.container)
+        .boxed();
+
+    checkbox_with_label(label, style, checked, cx, change)
+}
+
+pub fn checkbox_with_label<T: 'static, V: View>(
+    label: ElementBox,
+    style: &CheckboxStyle,
+    checked: bool,
+    cx: &mut RenderContext<V>,
+    change: fn(checked: bool, cx: &mut EventContext) -> (),
 ) -> MouseEventHandler<T> {
     MouseEventHandler::<T>::new(0, cx, |state, _| {
         let indicator = if checked {
@@ -55,10 +70,7 @@ pub fn checkbox<T: 'static, V: View>(
                         }
                     })
                     .boxed(),
-                Label::new(label, style.label.text.clone())
-                    .contained()
-                    .with_style(style.label.container)
-                    .boxed(),
+                label,
             ])
             .align_children_center()
             .boxed()

crates/welcome/src/welcome.rs 🔗

@@ -124,8 +124,25 @@ impl View for WelcomePage {
                         .boxed(),
                     Flex::column()
                         .with_children([
-                            theme::ui::checkbox::<Metrics, Self>(
-                                "Send anonymous usage data to improve Zed (View what we're sending via Help > View Telemetry Log)",
+                            theme::ui::checkbox_with_label::<Metrics, Self>(
+                                Flex::column()
+                                    .with_children([
+                                        Label::new(
+                                            "Send anonymous usage data",
+                                            theme.welcome.checkbox.label.text.clone(),
+                                        )
+                                        .contained()
+                                        .with_style(theme.welcome.checkbox.label.container)
+                                        .boxed(),
+                                        Label::new(
+                                            "Help > View Telemetry",
+                                            theme.welcome.usage_note.text.clone(),
+                                        )
+                                        .contained()
+                                        .with_style(theme.welcome.usage_note.container)
+                                        .boxed(),
+                                    ])
+                                    .boxed(),
                                 &theme.welcome.checkbox,
                                 metrics,
                                 cx,

crates/zed/src/menus.rs 🔗

@@ -137,7 +137,7 @@ pub fn menus() -> Vec<Menu<'static>> {
             items: vec![
                 MenuItem::action("Command Palette", command_palette::Toggle),
                 MenuItem::separator(),
-                MenuItem::action("View Telemetry Log", crate::OpenTelemetryLog),
+                MenuItem::action("View Telemetry", crate::OpenTelemetryLog),
                 MenuItem::action("View Dependency Licenses", crate::OpenLicenses),
                 MenuItem::separator(),
                 MenuItem::action(

styles/src/styleTree/welcome.ts 🔗

@@ -86,10 +86,19 @@ export default function welcome(colorScheme: ColorScheme) {
                 border: border(layer, "active"),
             },
         },
+        usageNote: {
+            ...text(layer, "sans", "variant", { size: "2xs" }),
+            margin: {
+                top: -4
+            }
+        },
         checkboxContainer: {
             margin: {
                 top: 4,
             },
+            padding: {
+                bottom: 8,
+            }
         },
         checkbox: {
             label: {