The player's sound control and the stored "narrate by default" are one setting

Open
#20 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
Half a day
Newbie friendliness
66/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start in DeckPlayer.tsx, where the speaker and the sheet's Narration switch currently call narration.toggle, and in src/voicePreference.tsx, which holds connected-deck:narrate-by-default. Add the optional onToggleNarration prop and have PresentationDeck pass the stored setter, so all three surfaces read and write one value. Done when a deck opened after muting starts silent, Settings shows Silent, and the engine's tests still pass.

Written by the indexing model from the issue text.

Description

enhancement

Why

The viewer bar's speaker and the sheet's Narration switch change only the deck being watched (DeckPlayer.tsx passes narration.toggle). The launch page's Settings keeps a separate stored preference, connected-deck:narrate-by-default (src/voicePreference.tsx). Turn narration on inside a deck, and the next deck opens silent. Turn it off in Settings, and the deck you have open doesn't change. One question gets answered in two places that disagree.

What changes

  1. DeckPlayer takes an optional onToggleNarration. When a host passes it, narrateByDefault is the live setting, and the bar's speaker and the sheet's switch call it instead of toggling the session.
  2. PresentationDeck passes the stored preference's setter, so the speaker, the sheet and the launch page's Settings all read and write one value.
  3. Turning narration off still clears Audiobook mode.
  4. A host that passes nothing keeps today's session-only toggle.

Done when

  • Muting inside a deck and then opening another deck opens it muted, and the launch page's Settings shows Silent.
  • Turning narration on in Settings takes effect in an open deck's sheet.
  • The engine's tests pass.

Out of scope

  • The notes window's own narration toggle.
  • The sheet's layout.
Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
30m
Merged PRs (30d)
9

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from johnfrog76/connected-deck

All issues in johnfrog76/connected-deck

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.