Skip to content

feat(ui): show the row lifecycle controls as icons - #73

Merged
smileygames merged 1 commit into
mainfrom
71-feat-ui-show-the-row-lifecycle-controls-as-icons
Aug 24, 2026
Merged

feat(ui): show the row lifecycle controls as icons#73
smileygames merged 1 commit into
mainfrom
71-feat-ui-show-the-row-lifecycle-controls-as-icons

Conversation

@smileygames

Copy link
Copy Markdown
Member

Closes #71

参加者の行の三つの操作を記号表示にし(開始 ▶️ / 終了 ❌ / 編集 ⚙️)、語は aria-labeltitle に移した。終了の確認は、ボタンの armed 状態から webview 内の新設 <dialog>#end-dialog)へ移した。window.confirm は使わないという #57 の判断はそのまま生きている。

armed の機構は丸ごと落ちた(armedEnd / armedTimer / armedAt / END_ARM_MS / END_SETTLE_MS / armEnd / disarmEnd / .end.armed)。END_SETTLE_MS は armed でボタンが広がることへの対処であり、記号固定で幅が動かなくなった時点で前提が無い。同じ理由でライフサイクルと編集の列を固定幅にした。

影響範囲 = 参加者パネルの行の操作(表示と終了の確認経路)、および docs/0-requirements.md の該当記述。押した先で起きることは変えていない。アカウントの削除は二度押しのまま残した(#72)。

参加者の行の三つの操作を語から記号へ変え、終了の確認をボタンの armed 状態から
webview 内の `<dialog>` へ移した。

- 開始 ▶️ / 終了 ❌ / 編集 ⚙️。語は `aria-label` と `title` に入れた。記号は
  読み上げに耐えないため、アクセシブルな名前は別に要る。
- `#end-dialog` を新設した。`#account-dialog` は編集フォームであり、一枚の
  `<dialog>` に二役を持たせると開くたびの分岐を抱えるため流用しない。焦点は
  「取消」にあり、Escape も取消である。
- `window.confirm` は使わない。ホストが答えなかった場合の失敗の向きがどちらも
  誤りであるという #57 の判断は生きている。webview 内の `<dialog>` であれば
  その失敗の形が起こらない。
- armed の機構を撤去した。`armedEnd` / `armedTimer` / `armedAt` /
  `END_ARM_MS` / `END_SETTLE_MS` / `armEnd` / `disarmEnd`、`.end.armed`。
  `END_SETTLE_MS` は armed でボタンが広がることへの対処であり、記号固定で幅が
  動かなくなった以上その前提が無い。
- ライフサイクルと編集の列を固定幅にした。絵文字の送り幅はフォントが決めるため、
  字面から幅を取れば同じ画面が機械ごとに違う形になる。実測で 16.5rem の
  パネルでも本人の行の名前は出る。

「状態はボタン自身が表示する」形は手放した。Master が三択を見た上でダイアログを
選んだ決定であり、決着済みとして扱う。アカウントの削除は二度押しのまま残した
(#72)。

#71
@smileygames smileygames linked an issue Aug 24, 2026 that may be closed by this pull request
@smileygames smileygames self-assigned this Aug 24, 2026

@smileygames smileygames left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

自己レビュー結果: PASS

#71 の受け入れ基準に対して差分を確認した。

受け入れ基準

  • 記号表示▶️ / ⚙️ / textContent に。語は title と新設の aria-label の両方に入っている(#71 制約「title を落とさない」を満たす)。
  • 確認ダイアログの新設#end-dialog を追加。#account-dialog の流用はしていない。autofocus取消 にあり、close ハンドラで endingAccount を消しているため、Escape・取消・ダイアログ外の経路がすべて同じ答えへ倒れる。
  • window.confirm 不使用 — webview 内の <dialog>#57 のホスト依存の失敗(理由1)は生きたまま。
  • armed 機構の撤去armedEnd / armedTimer / armedAt / END_ARM_MS / END_SETTLE_MS / armEnd / disarmEndshowView からの呼び出し、.end.armed がすべて消えている。残る armed の参照は #account-dialog削除 のみで、これは #72 の範囲。
  • 記号の列の幅固定grid-template-columnsminmax(3.2rem, auto) 3rem から 2rem 2rem へ。ボタンは height: 1.6rem / padding: 0 の flex 中央寄せで、字面の送り幅が箱の寸法を決めない形になっている。
  • 押した先を変えていないendSession の本体は無改変。confirmEndDialogviews.get() で id を引き直しており、ダイアログが開いている間に自然終了したセッションに対しては何も起きない。
  • docs 同梱window.confirm を断る理由と、確認をどの面に出すかの判断が別段落に分かれた。315 行の armed 幅の記述は幅固定の理由へ差し替え済み。

スコープ

削除 の挙動は無改変。ただし本 PR が偽にした記述三箇所(index.html のコメント、main.ts:1509 のコメント、docs:479)は訂正し、いずれも #72 を指すようにしてある。「終了と同じ形」という記述を残せば docs が嘘になるため、無改変の範囲を超えたのはこの三箇所のみ。逸脱として記録する。

実装者の判断で足されたもの

.start:disabledopacity: 0.45。カラー絵文字は color で塗られないため、これが無いと無効状態に見た目の signal が残らない。妥当と判断。

実機未確認

三つの記号が Windows の webview のフォントで揃って出るか、幅固定の列で本人の行の名前が出るかは、ビルドでは答えられない。docs の未実装節に記録済み。

次の一手

実行モード auto。人間のレビュー gate は無く、この自己レビュー通過をもって squash merge する。リリース種別は patch 相当(観測可能だが増分の変更であり、大規模な構造変更ではない)。

@smileygames
smileygames merged commit dd178bb into main Aug 24, 2026
2 checks passed
@smileygames
smileygames deleted the 71-feat-ui-show-the-row-lifecycle-controls-as-icons branch August 24, 2026 00:25
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.

feat(ui): show the row lifecycle controls as icons

1 participant