124 lines
4.2 KiB
Rust
124 lines
4.2 KiB
Rust
use galaxy_core::{context_flag::ContextFlag, features::FeatureFlag};
|
|
use galaxyui::ViewContext;
|
|
|
|
use super::{
|
|
ContentItem, ContentSectionData, FeatureItem, FeatureSection, FeatureSectionData,
|
|
ResourceCenterMainView, Section, Tip, TipAction, TipHint,
|
|
};
|
|
|
|
pub fn sections(ctx: &mut ViewContext<ResourceCenterMainView>) -> Vec<Section> {
|
|
let mut sections = vec![Section::Changelog()];
|
|
|
|
if FeatureFlag::AvatarInTabBar.is_enabled() {
|
|
return sections;
|
|
}
|
|
|
|
let get_started = FeatureSectionData {
|
|
section_name: FeatureSection::GettingStarted,
|
|
items: vec![
|
|
FeatureItem::new(
|
|
"Create your first block",
|
|
"Run a command to see your command and output grouped.",
|
|
Tip::Hint(TipHint::CreateBlock),
|
|
ctx,
|
|
),
|
|
FeatureItem::new(
|
|
"Navigate blocks",
|
|
"Click to select a block and navigate with arrow keys.",
|
|
Tip::Hint(TipHint::BlockSelect),
|
|
ctx,
|
|
),
|
|
FeatureItem::new(
|
|
"Take an action on block",
|
|
"Right click on a block to copy/paste, share, more.",
|
|
Tip::Hint(TipHint::BlockAction),
|
|
ctx,
|
|
),
|
|
FeatureItem::new(
|
|
"Open command palette",
|
|
"Access all of Warp via the keyboard.",
|
|
Tip::Action(TipAction::CommandPalette),
|
|
ctx,
|
|
),
|
|
FeatureItem::new(
|
|
"Set your theme",
|
|
"Make Warp your own by choosing a theme.",
|
|
Tip::Action(TipAction::ThemePicker),
|
|
ctx,
|
|
),
|
|
],
|
|
};
|
|
sections.push(Section::Feature(get_started));
|
|
|
|
let maximize_warp = FeatureSectionData {
|
|
section_name: FeatureSection::MaximizeWarp,
|
|
items: maximize_warp_items(ctx),
|
|
};
|
|
sections.push(Section::Feature(maximize_warp));
|
|
|
|
let advanced_setup = ContentSectionData {
|
|
section_name: FeatureSection::AdvancedSetup,
|
|
items: vec![
|
|
ContentItem {
|
|
title: "Use your custom prompt",
|
|
description: "Set up Warp to honor your PS1 setting",
|
|
url: "https://docs.warp.dev/terminal/appearance/prompt",
|
|
button_label: "View documentation",
|
|
},
|
|
ContentItem {
|
|
title: "Integrate Warp with your IDE",
|
|
description: "Configure Warp to launch from your most used development tools",
|
|
url: "https://docs.warp.dev/terminal/integrations-and-plugins",
|
|
button_label: "View documentation",
|
|
},
|
|
ContentItem {
|
|
title: "How Warp uses Warp",
|
|
description: "Learn how Warp's engineering team uses their favorite features",
|
|
url: "https://www.warp.dev/blog/how-warp-uses-warp",
|
|
button_label: "Read article",
|
|
},
|
|
],
|
|
};
|
|
sections.push(Section::Content(advanced_setup));
|
|
|
|
sections
|
|
}
|
|
|
|
fn maximize_warp_items(ctx: &mut ViewContext<ResourceCenterMainView>) -> Vec<FeatureItem> {
|
|
let mut maximize_warp_items = vec![];
|
|
|
|
maximize_warp_items.push(FeatureItem::new(
|
|
"Command search",
|
|
"Find and run previously executed commands, workflows, and more.",
|
|
Tip::Action(TipAction::CommandSearch),
|
|
ctx,
|
|
));
|
|
|
|
maximize_warp_items.push(FeatureItem::new(
|
|
"AI command search",
|
|
"Generate shell commands with natural language.",
|
|
Tip::Action(TipAction::AiCommandSearch),
|
|
ctx,
|
|
));
|
|
|
|
if ContextFlag::CreateNewSession.is_enabled() {
|
|
maximize_warp_items.push(FeatureItem::new(
|
|
"Split panes",
|
|
"Split tabs into multiple panes to make your ideal layout.",
|
|
Tip::Action(TipAction::SplitPane),
|
|
ctx,
|
|
));
|
|
}
|
|
|
|
if ContextFlag::LaunchConfigurations.is_enabled() {
|
|
maximize_warp_items.push(FeatureItem::new(
|
|
"Launch configuration",
|
|
"Save your current configuration of windows, tabs, and panes.",
|
|
Tip::Action(TipAction::SaveNewLaunchConfig),
|
|
ctx,
|
|
));
|
|
}
|
|
|
|
maximize_warp_items
|
|
}
|