summaryrefslogtreecommitdiff
path: root/extension/react-app/src/components
diff options
context:
space:
mode:
authorNate Sesti <33237525+sestinj@users.noreply.github.com>2023-08-10 15:52:44 -0700
committerGitHub <noreply@github.com>2023-08-10 15:52:44 -0700
commite07dd52631b78a01402d7569dd976b2505a20f8b (patch)
tree51d20aa637a074eadd2323b30c437dbf7c04ca47 /extension/react-app/src/components
parentb82e61cf8ba2be3bcda00699618a83f7c4db275e (diff)
parent7ca3bea2990d3a1c84d5a544e72827242a78361c (diff)
downloadsncontinue-e07dd52631b78a01402d7569dd976b2505a20f8b.tar.gz
sncontinue-e07dd52631b78a01402d7569dd976b2505a20f8b.tar.bz2
sncontinue-e07dd52631b78a01402d7569dd976b2505a20f8b.zip
Merge pull request #360 from bra1nDump/fixup-search-cross-workspace-polution
Fixup search cross workspace polution
Diffstat (limited to 'extension/react-app/src/components')
-rw-r--r--extension/react-app/src/components/ComboBox.tsx18
1 files changed, 13 insertions, 5 deletions
diff --git a/extension/react-app/src/components/ComboBox.tsx b/extension/react-app/src/components/ComboBox.tsx
index 472e1b14..c75f9ee6 100644
--- a/extension/react-app/src/components/ComboBox.tsx
+++ b/extension/react-app/src/components/ComboBox.tsx
@@ -24,7 +24,8 @@ import {
setBottomMessage,
setBottomMessageCloseTimeout,
} from "../redux/slices/uiStateSlice";
-import { useDispatch } from "react-redux";
+import { useDispatch, useSelector } from "react-redux";
+import { RootStore } from "../redux/store";
const SEARCH_INDEX_NAME = "continue_context_items";
@@ -136,6 +137,7 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
const searchClient = new MeiliSearch({ host: "http://127.0.0.1:7700" });
const client = useContext(GUIClientContext);
const dispatch = useDispatch();
+ const workspacePaths = useSelector((state: RootStore) => state.config.workspacePaths);
const [history, setHistory] = React.useState<string[]>([]);
// The position of the current command you are typing now, so the one that will be appended to history once you press enter
@@ -181,10 +183,16 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
// Get search results and return
setCurrentlyInContextQuery(true);
const providerAndQuery = segs[segs.length - 1] || "";
- const [provider, query] = providerAndQuery.split(" ");
+ // Only return context items from the current workspace - the index is currently shared between all sessions
+ const workspaceFilter =
+ workspacePaths && workspacePaths.length > 0
+ ? `workspace_dir IN [ ${workspacePaths.map((path) => `"${path}"`).join(", ")} ]`
+ : undefined;
searchClient
.index(SEARCH_INDEX_NAME)
- .search(providerAndQuery)
+ .search(providerAndQuery, {
+ filter: workspaceFilter,
+ })
.then((res) => {
setItems(
res.hits.map((hit) => {
@@ -410,7 +418,7 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
// Prevent Downshift's default 'Enter' behavior.
(event.nativeEvent as any).preventDownshiftDefault = true;
- if (props.onEnter) props.onEnter(event);
+ if (props.onEnter) {props.onEnter(event);}
setCurrentlyInContextQuery(false);
} else if (event.key === "Tab" && items.length > 0) {
downshiftProps.setInputValue(items[0].name);
@@ -423,7 +431,7 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
) {
(event.nativeEvent as any).preventDownshiftDefault = true;
} else if (event.key === "ArrowUp") {
- if (positionInHistory == 0) return;
+ if (positionInHistory == 0) {return;}
else if (
positionInHistory == history.length &&
(history.length === 0 ||