Skip to content

fix(nsg_input): зажимать offset выделения в Double-поле (invalid text selection)#15

Open
zenalex wants to merge 1 commit into
masterfrom
alex/issue-486-textselection-guard
Open

fix(nsg_input): зажимать offset выделения в Double-поле (invalid text selection)#15
zenalex wants to merge 1 commit into
masterfrom
alex/issue-486-textselection-guard

Conversation

@zenalex

@zenalex zenalex commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Что

NsgInput для NsgDataDoubleField падал с FlutterError: invalid text selection: TextSelection.collapsed(offset: N…) (GT-451).

Почему

В listener'е после фильтрации ввода (replaceAll(',', '.') + удаление [^0-9.-]) текст становится короче, а сохранённый start/end указывает за его конец → TextSelection(baseOffset: start, …) бросает исключение.

Фикс

Зажимаем start/end в text.length перед установкой выделения — ровно как уже сделано в ветке car-plate этого же listener. 3 строки, API пакета не меняется.

Потребитель: zenalex/footballers_diary_app (issue NSG-SOFT/futbolista-tasks#486), bump-PR с dependency_overrides на эту ветку — отдельно.

… selection)

После фильтрации ввода (replaceAll ',' -> '.' и удаление [^0-9.-]) текст может
стать короче, и сохранённый offset выходит за границы -> TextSelection бросает
"FlutterError: invalid text selection" (GT-451). Зажимаем start/end в text.length,
как уже сделано в ветке car-plate этого же listener.

Refs zenalex/footballers_diary_app#486 (NSG-SOFT/futbolista-tasks#486)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant