Prevent storybook dialog from swallowing terminal cursor when ctrl-c-ed

This commit is contained in:
Julia 2024-01-15 10:19:08 -05:00
parent fc294ce0b1
commit 5000a53a61
3 changed files with 98 additions and 3 deletions

View file

@ -35,6 +35,7 @@ menu = { path = "../menu" }
ui = { path = "../ui", features = ["stories"] }
util = { path = "../util" }
picker = { path = "../picker" }
ctrlc = "3.4"
[dev-dependencies]
gpui = { path = "../gpui", features = ["test-support"] }

View file

@ -44,11 +44,17 @@ fn main() {
let story_selector = args.story.clone().unwrap_or_else(|| {
let stories = ComponentStory::iter().collect::<Vec<_>>();
let selection = FuzzySelect::new()
ctrlc::set_handler(move || {}).unwrap();
let result = FuzzySelect::new()
.with_prompt("Choose a story to run:")
.items(&stories)
.interact()
.unwrap();
.interact();
let Ok(selection) = result else {
dialoguer::console::Term::stderr().show_cursor().unwrap();
std::process::exit(0);
};
StorySelector::Component(stories[selection])
});