fix: prevent cursor jumping to end of textarea in NewSessionModal#17
Merged
fix: prevent cursor jumping to end of textarea in NewSessionModal#17
Conversation
The focus effect was reading the reactive prompt variable to set the cursor position. In Svelte 5, this caused the effect to re-run on every keystroke, resetting selectionStart/selectionEnd to prompt.length and forcing the cursor to the end of the buffer. Fix by reading el.value.length from the DOM element instead, which is not a reactive dependency, keeping this as a one-time mount behavior.
loganj
added a commit
that referenced
this pull request
Feb 26, 2026
Add bulk actions to multi-file selection bar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When typing in the textarea of the NewSessionModal, the cursor would jump to the end of the text on every keystroke. This made editing text in the middle of the prompt impossible.
Cause
The
$effectthat focused the textarea on mount was readingpromptreactively, causing it to re-run on every keystroke. Each re-run would setselectionStartandselectionEndtoprompt.length, forcing the cursor to the end.Fix
Read the length from the DOM element's
.valueproperty instead of the reactivepromptvariable. This avoids trackingpromptas a dependency, so the effect only runs once on mount (whentextareaElis first set) and correctly places the cursor at the end of any pre-filled text without interfering with subsequent edits.