mirror of
https://github.com/zed-industries/zed.git
synced 2026-06-01 03:14:56 +07:00
onboarding: Add telemetry to Basics page (#37502)
- Welcome Keymap Changed - Welcome Theme Changed - Welcome Theme mode Changed - Welcome Page Telemetry Diagnostics Toggled - Welcome Page Telemetry Metrics Toggled - Welcome Vim Mode Toggled - Welcome Keymap Changed - Welcome Sign In Clicked cc: @katie-z-geer Release Notes: - N/A
This commit is contained in:
parent
da2d791127
commit
9eeeda1330
3 changed files with 52 additions and 7 deletions
|
|
@ -68,6 +68,12 @@ fn render_theme_section(tab_index: &mut isize, cx: &mut App) -> impl IntoElement
|
|||
MODE_NAMES[mode as usize].clone(),
|
||||
move |_, _, cx| {
|
||||
write_mode_change(mode, cx);
|
||||
|
||||
telemetry::event!(
|
||||
"Welcome Theme mode Changed",
|
||||
from = theme_mode,
|
||||
to = mode
|
||||
);
|
||||
},
|
||||
)
|
||||
}),
|
||||
|
|
@ -105,7 +111,7 @@ fn render_theme_section(tab_index: &mut isize, cx: &mut App) -> impl IntoElement
|
|||
ThemeMode::Dark => Appearance::Dark,
|
||||
ThemeMode::System => *system_appearance,
|
||||
};
|
||||
let current_theme_name = theme_selection.theme(appearance);
|
||||
let current_theme_name = SharedString::new(theme_selection.theme(appearance));
|
||||
|
||||
let theme_names = match appearance {
|
||||
Appearance::Light => LIGHT_THEMES,
|
||||
|
|
@ -149,8 +155,15 @@ fn render_theme_section(tab_index: &mut isize, cx: &mut App) -> impl IntoElement
|
|||
})
|
||||
.on_click({
|
||||
let theme_name = theme.name.clone();
|
||||
let current_theme_name = current_theme_name.clone();
|
||||
|
||||
move |_, _, cx| {
|
||||
write_theme_change(theme_name.clone(), theme_mode, cx);
|
||||
telemetry::event!(
|
||||
"Welcome Theme Changed",
|
||||
from = current_theme_name,
|
||||
to = theme_name
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(|this| {
|
||||
|
|
@ -239,6 +252,17 @@ fn render_telemetry_section(tab_index: &mut isize, cx: &App) -> impl IntoElement
|
|||
cx,
|
||||
move |setting, _| setting.metrics = Some(enabled),
|
||||
);
|
||||
|
||||
// This telemetry event shouldn't fire when it's off. If it does we're be alerted
|
||||
// and can fix it in a timely manner to respect a user's choice.
|
||||
telemetry::event!("Welcome Page Telemetry Metrics Toggled",
|
||||
options = if enabled {
|
||||
"on"
|
||||
} else {
|
||||
"off"
|
||||
}
|
||||
);
|
||||
|
||||
}},
|
||||
).tab_index({
|
||||
*tab_index += 1;
|
||||
|
|
@ -267,6 +291,16 @@ fn render_telemetry_section(tab_index: &mut isize, cx: &App) -> impl IntoElement
|
|||
cx,
|
||||
move |setting, _| setting.diagnostics = Some(enabled),
|
||||
);
|
||||
|
||||
// This telemetry event shouldn't fire when it's off. If it does we're be alerted
|
||||
// and can fix it in a timely manner to respect a user's choice.
|
||||
telemetry::event!("Welcome Page Telemetry Diagnostics Toggled",
|
||||
options = if enabled {
|
||||
"on"
|
||||
} else {
|
||||
"off"
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
).tab_index({
|
||||
|
|
@ -327,6 +361,8 @@ fn render_base_keymap_section(tab_index: &mut isize, cx: &mut App) -> impl IntoE
|
|||
update_settings_file::<BaseKeymap>(fs, cx, move |setting, _| {
|
||||
setting.base_keymap = Some(keymap_base);
|
||||
});
|
||||
|
||||
telemetry::event!("Welcome Keymap Changed", keymap = keymap_base);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -344,13 +380,21 @@ fn render_vim_mode_switch(tab_index: &mut isize, cx: &mut App) -> impl IntoEleme
|
|||
{
|
||||
let fs = <dyn Fs>::global(cx);
|
||||
move |&selection, _, cx| {
|
||||
update_settings_file::<VimModeSetting>(fs.clone(), cx, move |setting, _| {
|
||||
*setting = match selection {
|
||||
ToggleState::Selected => Some(true),
|
||||
ToggleState::Unselected => Some(false),
|
||||
ToggleState::Indeterminate => None,
|
||||
let vim_mode = match selection {
|
||||
ToggleState::Selected => true,
|
||||
ToggleState::Unselected => false,
|
||||
ToggleState::Indeterminate => {
|
||||
return;
|
||||
}
|
||||
};
|
||||
update_settings_file::<VimModeSetting>(fs.clone(), cx, move |setting, _| {
|
||||
*setting = Some(vim_mode);
|
||||
});
|
||||
|
||||
telemetry::event!(
|
||||
"Welcome Vim Mode Toggled",
|
||||
options = if vim_mode { "on" } else { "off" },
|
||||
);
|
||||
}
|
||||
},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -476,6 +476,7 @@ impl Onboarding {
|
|||
.map(|kb| kb.size(rems_from_px(12.))),
|
||||
)
|
||||
.on_click(|_, window, cx| {
|
||||
telemetry::event!("Welcome Sign In Clicked");
|
||||
window.dispatch_action(SignIn.boxed_clone(), cx);
|
||||
})
|
||||
.into_any_element()
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::{cmp::Ordering, fmt::Debug};
|
|||
|
||||
use crate::{Bias, Dimension, Edit, Item, KeyedItem, SeekTarget, SumTree, Summary};
|
||||
|
||||
/// A cheaply-clonable ordered map based on a [SumTree](crate::SumTree).
|
||||
/// A cheaply-cloneable ordered map based on a [SumTree](crate::SumTree).
|
||||
#[derive(Clone, PartialEq, Eq)]
|
||||
pub struct TreeMap<K, V>(SumTree<MapEntry<K, V>>)
|
||||
where
|
||||
|
|
|
|||
Loading…
Reference in a new issue