Skip to content

Follow up IME option creation and delete dialog timing fixes#3185

Open
don9x2E wants to merge 2 commits intonextcloud:mainfrom
don9x2E:fix/ime-option-creation-followup
Open

Follow up IME option creation and delete dialog timing fixes#3185
don9x2E wants to merge 2 commits intonextcloud:mainfrom
don9x2E:fix/ime-option-creation-followup

Conversation

@don9x2E
Copy link
Contributor

@don9x2E don9x2E commented Feb 26, 2026

Summary

Follow-up fixes after #3183 to address remaining real-world Korean IME issues and related UX regressions.

  • Prevent unintended option creation while IME composition is active
  • Local "Add a new answer option" row now creates only on explicit intent:
    • Enter after composition end, or
    • explicit + button click
  • Keep live update behavior for already-created options
  • After creating an option with Enter, move focus to the next empty local option row
  • Fix delayed "Delete form" confirmation dialog by rendering dialog outside the actions slot

Why this follow-up is needed

The initial IME patch improved composition handling, but in actual Korean IME use there were still edge cases where input-driven side effects could trigger option creation timing unexpectedly.

Switching local-row creation to explicit intent removes those composition timing race paths while preserving normal editing for existing options.

Trade-off

Auto-create-on-input for the local empty row is intentionally disabled for now to prioritize deterministic IME-safe behavior.

Validation

  • IME composition does not auto-create options
  • Exactly one option is created on explicit Enter/click
  • Focus advances to the next empty local row after creation
  • Delete-form confirmation opens immediately on click

The previous IME fix still allowed option-creation side effects from input events and did not fully protect Enter-driven actions during composition.

This change switches local option creation to explicit user intent (Enter or add button after composition), keeps updates for existing options, and guards Enter/delete handlers with composition checks.

It also moves focus to the next empty local option after creating one, and renders the delete-form confirmation dialog outside the actions slot so it opens immediately when clicked.

Signed-off-by: don9x2E <revan@kakao.com>
- format AppNavigationForm.vue to satisfy prettier/eslint CI

- register IconPlus in AnswerInput components used by explicit add button

- update IME playwright test to assert explicit Enter intent before option creation

Signed-off-by: don9x2E <revan@kakao.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