Skip to content

feat(mobile-gui): allow dismissing orientation gate warning#693

Merged
takaokouji merged 2 commits into
developfrom
feature/dismiss-orientation-gate
May 21, 2026
Merged

feat(mobile-gui): allow dismissing orientation gate warning#693
takaokouji merged 2 commits into
developfrom
feature/dismiss-orientation-gate

Conversation

@takaokouji
Copy link
Copy Markdown

@takaokouji takaokouji commented May 21, 2026

Summary

縦持ち警告オーバーレイ (MobileOrientationGate) に「このまま使う」(Use as is) ボタンを追加し、ユーザー操作で警告を閉じられるようにする。dismiss 状態は sessionStorage に保持され、ページリロードで自動復活する。

Fixes #691

Background

MobileOrientationGate(orientation: portrait) メディアクエリだけで発火するため、PC ブラウザでウィンドウを縦長にリサイズしただけで警告が発火し、MobileGui 上に被さって操作不能になっていた。警告自体は意味があるので残しつつ、ユーザーが閉じられる導線を追加する。

Design Choices

  • 永続化スコープ: sessionStorage — PC ユーザは 1 セッション 1 回の dismiss で済み、実機スマホで誤タップしても次回起動で警告が復活する
  • ボタン文言: 「このまま使う」(Use as is) — 警告を理解した上で現状レイアウトで作業を続けるニュアンス
  • 再表示 UI: 設けない — リロードで自動復活するため別途 UI 不要

Changes Made

Phase 1:

  • mobile-orientation-gate.jsx: useState + sessionStorage 連携、handleDismiss<button data-testid="mobile-orientation-gate-dismiss"> 追加。DISMISS_STORAGE_KEY を named export
  • mobile-orientation-gate.css: .dismiss-button スタイル追加 (44×44px 以上、紫背景に対し白枠 + 白テキスト)
  • mobile-orientation-gate.test.jsx: dismiss 関連の 5 ケース追加 (ボタン表示、押下で消える、sessionStorage 書き込み、初期化時 sessionStorage 読み、orientation toggle 後も dismiss 維持)

Phase 2:

  • ja.js: 「このまま使う」翻訳追加
  • ja-Hira.js: 「このまま つかう」翻訳追加

Implementation Steps

  • Phase 1: dismiss 機能 + ボタン + unit tests
  • Phase 2: 日本語翻訳 (ja / ja-Hira)
  • Phase DoD: CI green 後、Playwright MCP でブラウザ動作確認

Test Coverage

  • 既存 3 件 + 新規 5 件 = mobile-orientation-gate.test.jsx に 8 件のテストが pass

Definition of Done

  • ユニットテスト pass (8/8)
  • lint pass
  • CI green
  • ブラウザ確認 (Playwright MCP):
    • PC viewport (700×900 縦長) で警告が表示される
    • 「このまま使う」ボタンがタッチ領域 44×44px 以上で表示される
    • ボタン押下で警告 overlay が即消える
    • dismiss 後、同一セッションで viewport を 1200×800 (landscape) → 700×900 (portrait) と切り替えても警告は再表示されない
    • ページリロード後、portrait viewport で警告が再表示される (sessionStorage scope)
    • iPhone 縦持ち viewport (390×844) でも dismiss できる
    • dismiss 状態でも MobileGui が動作する
    • ja / ja-Hira ロケールでボタン文言が正しく表示される

SP / iPad 影響

  • 触ったファイル: src/components/mobile-orientation-gate/(SP 関連)
  • mobile-ui ルール §2.2 確認: 「PC 表示が崩れている警告バナーを置かない」 → 本対応は新規バナー追加ではなく既存 portrait 警告のユーザビリティ改善で、ルールの趣旨 (誤検知 noise 削減) と整合
  • 新規 data-testid="mobile-orientation-gate-dismiss" を追加 — docs/mobile-ui/playwright.md への追記は本 PR では割愛 (Mobile* 系コンポーネントの testid 表が現状 mobile-orientation-gate に未掲載)
  • viewport プリセット: iPhone 縦 (390×844)、PC 縦長 (700×900) で確認予定 (Playwright MCP)

Related Issues

Fixes #691

縦持ち警告オーバーレイ (MobileOrientationGate) に「このまま使う」(Use as is)
ボタンを追加し、ユーザーが現在のブラウザセッション中だけ警告を閉じられる
ようにする。dismiss 状態は sessionStorage に保持し、リロード or タブ閉じで
復活する。

背景: PC ブラウザでウィンドウを縦長にリサイズしただけで本警告が発火し、
MobileGui 上に重なって操作不能になる問題があった。永続化 (localStorage) は
実機スマホで誤タップした場合に気付けないリスクがあるため採用せず、
session スコープで「このセッションだけ閉じる」挙動にしている。

Refs #691
…ss button

ja: 「このまま使う」
ja-Hira: 「このまま つかう」

Refs #691
@github-actions
Copy link
Copy Markdown

@takaokouji takaokouji merged commit 152cfd7 into develop May 21, 2026
9 checks passed
@takaokouji takaokouji deleted the feature/dismiss-orientation-gate branch May 21, 2026 04:32
github-actions Bot pushed a commit that referenced this pull request May 21, 2026
…ss-orientation-gate

feat(mobile-gui): allow dismissing orientation gate warning
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(mobile-gui): allow dismissing portrait orientation warning overlay

1 participant