Skip to content

fix(qr): QR modal が親の再描画ごとに focus を奪う・金額欄がモード切替で作り直される等を直す (B-R11d) - #635

Open
cipherwebllc wants to merge 1 commit into
mainfrom
fix/r6-b11d-qr-modal-focus
Open

cipherwebllc wants to merge 1 commit into
mainfrom
fix/r6-b11d-qr-modal-focus

Conversation

@cipherwebllc

Copy link
Copy Markdown
Owner

概要

第 6 回レビュー R11b (#618) で固定した QR 生成画面の既存の挙動 4 件の修正 (B-R11d) です。意図的な挙動変更 (UX) です。

# 症状 修正
1 プレビューの modal が、残高更新・入力・FX のカウントダウン等で親が再描画されるたびに dialog へ focus を戻し、入力を中断していた onClose の識別を安定化。開いたときの focus と Escape での閉じ方は従来どおり
2 下部 bar の再描画 effect が、bar の初回表示では動かなかった 表示状態を依存に加え、初回表示と再表示で動く
3 据え置き ↔ 金額指定の切り替えで、金額入力と quick-amount editor が作り直され、入力値と展開状態が消えていた 既存の root に hidden を付けて node を保つ (wrapper の追加なし)。据え置き → 金額指定では従来どおり金額欄に focus する (iOS で keyboard が開く)
4 FX の期限切れが注意表示だけで、再計算まで QR を出し続ける 既存の方針 (comment) どおり変更なし。記録のみ
  • 支払い URL・EIP-681・receipt の fixture は変わりません (URL は状態から導出され、hidden の入力欄は読まれません)。
  • hidden を付けた 2 要素に Tailwind の display class はなく、tab 順・読み上げ・印刷からも外れます。
  • 公開文言の変更はありません (掟 8 の aria-label の追加もなし)。

検証

  • 各修正に、修正前は落ち・修正後に通るテストがあります (focus 2 件・bar 1 件・node の同一性 1 件・「12.5 を入力 → 据え置き → 金額指定」の URL 往復 1 件)。DOM の digest は意図した 2 状態だけ更新。
  • 別セッションの Opus 5.5 のレビュー: approve (should-fix 1 件 = 切替時の focus 復元、反映済み)。
  • typecheck 0 / eslint 0 / full vitest 14,558 pass / QR 関連 11 file 242 pass

同種の既存問題 (別 PR・B-R11e)

レジの QR modal (RegisterMode) と CSV パスの modal にも同じ focus 奪取があります。modal 側で直せば全呼び出しに効くので、別 PR にします。modal が閉じるときに focus を戻さない・focus trap がない点も既存のままです。

🤖 Generated with Claude Code

https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
openpay Ignored Ignored Preview Sep 24, 2026 10:23pm UTC

Request Review

第 6 回レビュー R11b で固定した QR 生成画面の既存の挙動 4 件。(1) プレビュー modal の
onClose が render ごとに変わり dialog に focus が戻っていた → handler を安定化 (open 時の
focus と Escape は従来どおり)。(2) 下部 bar の再描画 effect が初回表示で発火しなかった →
表示状態を依存に加える。(3) 据え置き↔金額指定の切替で金額入力と quick-amount editor が
作り直されていた → 既存 root に hidden を付けて node と入力値を保つ。据え置き → 金額指定の
切替では従来どおり金額欄に focus する (flushSync + ref)。(4) FX の期限切れは注意表示のみの
既存方針を維持 (comment に明記)。支払い URL・EIP-681・receipt の fixture は不変。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc
@cipherwebllc
cipherwebllc force-pushed the fix/r6-b11d-qr-modal-focus branch from 47c8252 to 31f2f8e Compare September 24, 2026 22:23

This branch has not been deployed

No deployments
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