Skip to content

Commit 7152da4

Browse files
committed
move disableWhenEmpty to BaseAutosuggestionsConfig
.
1 parent d532b4e commit 7152da4

5 files changed

Lines changed: 17 additions & 13 deletions

File tree

packages/react-textarea/src/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ export function BaseCopilotTextarea(
8787
autosuggestionsConfig.debounceTime,
8888
autosuggestionsConfig.acceptAutosuggestionKey,
8989
props.autosuggestionsFunction,
90-
insertText
90+
insertText,
91+
autosuggestionsConfig.disableWhenEmpty
9192
);
9293

9394
// sync autosuggestions state with the editor

packages/react-textarea/src/components/copilot-textarea/copilot-textarea.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ export function CopilotTextarea(props: CopilotTextareaProps): JSX.Element {
2424
autosuggestionsConfig.apiEndpoint,
2525
autosuggestionsConfig.makeSystemMessage,
2626
autosuggestionsConfig.fewShotMessages,
27-
autosuggestionsConfig.contextCategories,
28-
autosuggestionsConfig.disableWhenEmpty
27+
autosuggestionsConfig.contextCategories
2928
);
3029

3130
return (

packages/react-textarea/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,12 @@ export function useMakeAutosuggestionFunction(
2828
apiEndpoint: string,
2929
makeSystemMessage: MakeSystemMessage,
3030
fewShotMessages: MinimalChatGPTMessage[],
31-
contextCategories: string[] | undefined,
32-
disableWhenEmpty: boolean
31+
contextCategories: string[] | undefined
3332
): AutosuggestionsBareFunction {
3433
const { getContextString } = useContext(CopilotContext);
3534

3635
return useCallback(
3736
async (beforeText: string, afterText: string, abortSignal: AbortSignal) => {
38-
if (disableWhenEmpty && beforeText === "" && afterText === "") {
39-
throw new Error("No text to suggest");
40-
}
41-
4237
const res = await retry(async () => {
4338
return await fetch(apiEndpoint, {
4439
method: "POST",

packages/react-textarea/src/hooks/use-autosuggestions.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export function useAutosuggestions(
2727
debounceTime: number,
2828
acceptAutosuggestionKey: string,
2929
autosuggestionFunction: AutosuggestionsBareFunction,
30-
insertAutocompleteSuggestion: (suggestion: AutosuggestionState) => void
30+
insertAutocompleteSuggestion: (suggestion: AutosuggestionState) => void,
31+
disableWhenEmpty: boolean
3132
): UseAutosuggestionsResult {
3233
const [previousAutocompleteState, setPreviousAutocompleteState] =
3334
useState<EditorAutocompleteState | null>(null);
@@ -43,6 +44,14 @@ export function useAutosuggestions(
4344
editorAutocompleteState: EditorAutocompleteState,
4445
abortSignal: AbortSignal
4546
) => {
47+
if (
48+
disableWhenEmpty &&
49+
editorAutocompleteState.textBeforeCursor === "" &&
50+
editorAutocompleteState.textAfterCursor === ""
51+
) {
52+
return;
53+
}
54+
4655
const suggestion = await autosuggestionFunction(
4756
editorAutocompleteState.textBeforeCursor,
4857
editorAutocompleteState.textAfterCursor,
@@ -59,7 +68,7 @@ export function useAutosuggestions(
5968
point: editorAutocompleteState.cursorPoint,
6069
});
6170
},
62-
[autosuggestionFunction, setCurrentAutocompleteSuggestion]
71+
[autosuggestionFunction, setCurrentAutocompleteSuggestion, disableWhenEmpty]
6372
);
6473

6574
const debouncedFunction = useMemo(

packages/react-textarea/src/types/autosuggestions-config.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,21 @@ export interface BaseAutosuggestionsConfig {
99
textareaPurpose: string;
1010
debounceTime: number;
1111
acceptAutosuggestionKey: string;
12+
disableWhenEmpty: boolean;
1213
}
1314

1415
export const defaultBaseAutosuggestionsConfig: BaseAutosuggestionsConfig = {
1516
textareaPurpose: "A generic textbox",
1617
debounceTime: 500,
1718
acceptAutosuggestionKey: "Tab",
19+
disableWhenEmpty: true,
1820
};
1921

2022
export interface AutosuggestionsConfig extends BaseAutosuggestionsConfig {
2123
apiEndpoint: string;
2224
contextCategories: string[] | undefined;
2325
makeSystemMessage: MakeSystemMessage;
2426
fewShotMessages: MinimalChatGPTMessage[];
25-
disableWhenEmpty: boolean;
2627
}
2728

2829
export const defaultMakeSystemMessage: MakeSystemMessage = (
@@ -94,5 +95,4 @@ export const defaultAutosuggestionsConfig: AutosuggestionsConfig = {
9495
makeSystemMessage: defaultMakeSystemMessage,
9596
fewShotMessages: defaultFewShotMessages,
9697
contextCategories: undefined,
97-
disableWhenEmpty: false,
9898
};

0 commit comments

Comments
 (0)