fix(plugins): keep focus on search input in Exported Packages (#36214)#36300
Conversation
…kages
The Exported Packages search field was moving focus to the editable
package-list textarea ~500ms after typing (the debounce). Subsequent
keystrokes silently edited the live exported-packages config — a
data-integrity risk since malformed lists break OSGi plugin loading.
`#scrollToMatch` now takes an opt-in `{ focus }` flag. The debounced
search-as-you-type path leaves focus on the search input; only the
explicit ▲/▼ navigation focuses the textarea so the match selection
becomes visible.
Fixes #36214
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Claude finished @hmoreras's task in 53s —— View job Rollback Safety Analysis
Result: ✅ Safe To RollbackThe changes in this PR are pure frontend Angular fixes with no backend impact. Against every unsafe category in the reference:
Changed files:
All changes are scoped to a single Angular component's TypeScript and test file. No database migrations, Elasticsearch mappings, REST endpoints, OSGi interfaces, or VTL viewtools are touched. Rolling back to the previous release requires no database interaction or reindexing. Label added: AI: Safe To Rollback |
🤖 Bedrock Review —
|
- Export SEARCH_DEBOUNCE_MS from the component and import it in the spec so the debounce stays in sync between prod and tests. - Mirror nativeTextarea()'s nullable pattern in searchInput() to surface a clear failure if the testid ever disappears. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🤖 Bedrock Review —
|
Collapse PACKAGES_TEXT back to a single line — the string fits within Prettier's print width, and the prior commit's wrap caused format-test to fail in CI (run 28064948599). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🤖 Bedrock Review —
|
|
Tick the box to add this pull request to the merge queue (same as
|
Summary
<textarea>~500 ms after typing (the debounce). Any keystrokes after the debounce fired went into the textarea instead of the search box — and the textarea is the live exported-packages config, so unnoticed edits can corrupt it (a known cause of OSGi plugin-load failures).#scrollToMatch()indot-plugins-extra-packages.component.tswas callingtextarea.focus()unconditionally. That call is needed for the explicit ▲/▼ next/prev navigation but not for the search-as-you-type path.{ focus }flag to#scrollToMatch. The debounced typing path now leaves focus on the search input; onlynextMatch()/prevMatch()passfocus: true. The selection range is still set during typing so the match becomes visible the moment the user navigates with ▲/▼.Fixes #36214
Acceptance criteria
Test plan
This PR fixes: #36214