Compare commits
1 Commits
refactor/p
...
refactor/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d69465ea3d |
@@ -10,6 +10,14 @@ const invalidKeys = {
|
|||||||
Escape: true,
|
Escape: true,
|
||||||
Backspace: true,
|
Backspace: true,
|
||||||
Enter: true,
|
Enter: true,
|
||||||
|
ArrowUp: true,
|
||||||
|
ArrowDown: true,
|
||||||
|
ArrowLeft: true,
|
||||||
|
ArrowRight: true,
|
||||||
|
Home: true,
|
||||||
|
End: true,
|
||||||
|
PageUp: true,
|
||||||
|
PageDown: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,21 +27,19 @@ const shouldTriggerCommand = (
|
|||||||
textAreaRef: React.RefObject<HTMLTextAreaElement>,
|
textAreaRef: React.RefObject<HTMLTextAreaElement>,
|
||||||
commandChar: string,
|
commandChar: string,
|
||||||
) => {
|
) => {
|
||||||
const text = textAreaRef.current?.value;
|
const textArea = textAreaRef.current;
|
||||||
if (!(text && text[text.length - 1] === commandChar)) {
|
if (!textArea) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const startPos = textAreaRef.current?.selectionStart;
|
const text = textArea.value;
|
||||||
if (!startPos) {
|
const cursorPosition = textArea.selectionStart;
|
||||||
|
|
||||||
|
if (cursorPosition !== text.length || text.length !== 1 || text[0] !== commandChar) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const isAtStart = startPos === 1;
|
return true;
|
||||||
const isPrecededBySpace = textAreaRef.current?.value.charAt(startPos - 2) === ' ';
|
|
||||||
|
|
||||||
const shouldTrigger = isAtStart || isPrecededBySpace;
|
|
||||||
return shouldTrigger;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user