Skip to content

スライド+スピーカーノート同時表示ビュー(発表者モード)の追加 #20

Description

@okamoto-aws

スライド+スピーカーノート同時表示ビュー(発表者モード)の追加

概要

スライドプレビュー画面に、PowerPointの発表者モードのようなビューを追加する。現在のスライドPNGとスピーカーノートを同一画面に表示し、矢印キーまたは矢印ボタンでスライド間をめくれるようにする。

現在のビューモード

  • Full: スライドを最大サイズで縦スクロール表示
  • Grid: スライドサムネイルをグリッド表示

追加するビューモード

  • Presenter: Full と Grid の間に配置

レイアウト

┌─────────────────────────────────┐
│  [← スライド 2/5 →]            │
├───────────────────┬─────────────┤
│                   │ Speaker     │
│   スライドPNG     │ Notes       │
│   (大きめ表示)    │             │
│                   │ テキスト    │
│                   │ 表示領域    │
│                   │ (スクロール)│
├───────────────────┴─────────────┤
│  ◀  ●●○●●  ▶                   │
└─────────────────────────────────┘

操作

  • 左右矢印キー(←→)でスライド切り替え
  • 画面上の矢印ボタンでも切り替え可能
  • スライドインジケーター(ドットまたは番号)で現在位置を表示

データソース

  • スライドPNG: 既存の previewUrl(presigned URL)
  • スピーカーノート: presentation.json 内の各スライドの notes フィールド
    • 現在 GET /decks/{id}?include=slideJson で取得可能
    • slideJson 内に notes が含まれている

実装箇所

  • web-ui/src/hooks/usePreferences.tsviewMode"presenter" を追加
  • web-ui/src/components/deck/SlideCarousel.tsx — Presenterビューのレンダリング追加、ビュー切り替えボタン追加
  • web-ui/src/services/deckService.ts — スピーカーノートの取得(slideJson パース)

考慮事項

  • スピーカーノートがないスライドではノート領域を「No speaker notes」等で表示
  • モバイルではスライドとノートを縦積みにするレスポンシブ対応
  • slideJson の取得は初回のみ(ポーリングのたびに取得しない)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions