mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-12 13:24:19 +00:00
assistant2: Use ContextKind
to match on ContextPicker
entries (#22143)
This PR updates the `ContextPicker` entries to match on the `ContextKind` instead of using strings. Release Notes: - N/A
This commit is contained in:
parent
ed3e647ed7
commit
68e3d79847
1 changed files with 9 additions and 9 deletions
|
@ -13,6 +13,7 @@ use ui::{prelude::*, ListItem, ListItemSpacing};
|
|||
use util::ResultExt;
|
||||
use workspace::Workspace;
|
||||
|
||||
use crate::context::ContextKind;
|
||||
use crate::context_picker::fetch_context_picker::FetchContextPicker;
|
||||
use crate::context_picker::file_context_picker::FileContextPicker;
|
||||
use crate::context_picker::thread_context_picker::ThreadContextPicker;
|
||||
|
@ -40,16 +41,14 @@ impl ContextPicker {
|
|||
cx: &mut ViewContext<Self>,
|
||||
) -> Self {
|
||||
let mut entries = vec![
|
||||
ContextPickerEntry {
|
||||
name: "Directory".into(),
|
||||
icon: IconName::Folder,
|
||||
},
|
||||
ContextPickerEntry {
|
||||
name: "File".into(),
|
||||
kind: ContextKind::File,
|
||||
icon: IconName::File,
|
||||
},
|
||||
ContextPickerEntry {
|
||||
name: "Fetch".into(),
|
||||
kind: ContextKind::FetchedUrl,
|
||||
icon: IconName::Globe,
|
||||
},
|
||||
];
|
||||
|
@ -57,6 +56,7 @@ impl ContextPicker {
|
|||
if thread_store.is_some() {
|
||||
entries.push(ContextPickerEntry {
|
||||
name: "Thread".into(),
|
||||
kind: ContextKind::Thread,
|
||||
icon: IconName::MessageCircle,
|
||||
});
|
||||
}
|
||||
|
@ -115,6 +115,7 @@ impl Render for ContextPicker {
|
|||
#[derive(Clone)]
|
||||
struct ContextPickerEntry {
|
||||
name: SharedString,
|
||||
kind: ContextKind,
|
||||
icon: IconName,
|
||||
}
|
||||
|
||||
|
@ -155,8 +156,8 @@ impl PickerDelegate for ContextPickerDelegate {
|
|||
if let Some(entry) = self.entries.get(self.selected_ix) {
|
||||
self.context_picker
|
||||
.update(cx, |this, cx| {
|
||||
match entry.name.to_string().as_str() {
|
||||
"File" => {
|
||||
match entry.kind {
|
||||
ContextKind::File => {
|
||||
this.mode = ContextPickerMode::File(cx.new_view(|cx| {
|
||||
FileContextPicker::new(
|
||||
self.context_picker.clone(),
|
||||
|
@ -166,7 +167,7 @@ impl PickerDelegate for ContextPickerDelegate {
|
|||
)
|
||||
}));
|
||||
}
|
||||
"Fetch" => {
|
||||
ContextKind::FetchedUrl => {
|
||||
this.mode = ContextPickerMode::Fetch(cx.new_view(|cx| {
|
||||
FetchContextPicker::new(
|
||||
self.context_picker.clone(),
|
||||
|
@ -176,7 +177,7 @@ impl PickerDelegate for ContextPickerDelegate {
|
|||
)
|
||||
}));
|
||||
}
|
||||
"Thread" => {
|
||||
ContextKind::Thread => {
|
||||
if let Some(thread_store) = self.thread_store.as_ref() {
|
||||
this.mode = ContextPickerMode::Thread(cx.new_view(|cx| {
|
||||
ThreadContextPicker::new(
|
||||
|
@ -188,7 +189,6 @@ impl PickerDelegate for ContextPickerDelegate {
|
|||
}));
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
cx.focus_self();
|
||||
|
|
Loading…
Reference in a new issue