Fix file picker not reopening after Escape
- Clear ignored @ position when user moves away from it - Track when @ position changes and remove old position from ignored set - Allows file picker to work again on new @ mentions - Example: @app (Escape) → @file (picker opens for new @)
This commit is contained in:
@@ -131,14 +131,26 @@ export default function PromptInput(props: PromptInputProps) {
|
|||||||
const textBeforeCursor = value.substring(0, cursorPos)
|
const textBeforeCursor = value.substring(0, cursorPos)
|
||||||
const lastAtIndex = textBeforeCursor.lastIndexOf("@")
|
const lastAtIndex = textBeforeCursor.lastIndexOf("@")
|
||||||
|
|
||||||
if (lastAtIndex !== -1 && !ignoredAtPositions().has(lastAtIndex)) {
|
const previousAtPosition = atPosition()
|
||||||
|
|
||||||
|
if (previousAtPosition !== null && lastAtIndex !== previousAtPosition) {
|
||||||
|
setIgnoredAtPositions((prev) => {
|
||||||
|
const next = new Set(prev)
|
||||||
|
next.delete(previousAtPosition)
|
||||||
|
return next
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lastAtIndex !== -1) {
|
||||||
const textAfterAt = value.substring(lastAtIndex + 1, cursorPos)
|
const textAfterAt = value.substring(lastAtIndex + 1, cursorPos)
|
||||||
const hasSpace = textAfterAt.includes(" ") || textAfterAt.includes("\n")
|
const hasSpace = textAfterAt.includes(" ") || textAfterAt.includes("\n")
|
||||||
|
|
||||||
if (!hasSpace && cursorPos === lastAtIndex + textAfterAt.length + 1) {
|
if (!hasSpace && cursorPos === lastAtIndex + textAfterAt.length + 1) {
|
||||||
setAtPosition(lastAtIndex)
|
if (!ignoredAtPositions().has(lastAtIndex)) {
|
||||||
setFileSearchQuery(textAfterAt)
|
setAtPosition(lastAtIndex)
|
||||||
setShowFilePicker(true)
|
setFileSearchQuery(textAfterAt)
|
||||||
|
setShowFilePicker(true)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user