1use command_palette_hooks::CommandPaletteFilter;
2use feature_flags::FeatureFlagAppExt as _;
3use gpui::App;
4use settings_ui::SettingsUiFeatureFlag;
5use workspace::Workspace;
6
7use gpui::actions;
8
9actions!(onboarding, [ShowOnboarding]);
10
11pub fn init(cx: &mut App) {
12 cx.observe_new(|workspace: &mut Workspace, _, _cx| {
13 workspace.register_action(|_workspace, _: &ShowOnboarding, _window, _cx| {
14 // Onboarding implementation will go here
15 });
16 })
17 .detach();
18
19 feature_gate_onboarding_ui_actions(cx);
20}
21
22fn feature_gate_onboarding_ui_actions(cx: &mut App) {
23 const ONBOARDING_ACTION_NAMESPACE: &str = "onboarding";
24
25 CommandPaletteFilter::update_global(cx, |filter, _cx| {
26 filter.hide_namespace(ONBOARDING_ACTION_NAMESPACE);
27 });
28
29 cx.observe_flag::<SettingsUiFeatureFlag, _>({
30 move |is_enabled, cx| {
31 CommandPaletteFilter::update_global(cx, |filter, _cx| {
32 if is_enabled {
33 filter.show_namespace(ONBOARDING_ACTION_NAMESPACE);
34 } else {
35 filter.hide_namespace(ONBOARDING_ACTION_NAMESPACE);
36 }
37 });
38 }
39 })
40 .detach();
41}