Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Host controls in the live video stage fail silently

Aperta Adatta ai principianti
#205 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
84/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
react, typescript
Ambito
frontend

Direzione di ricerca

Inizia da apps/frontend/src/components/live/LiveStage.tsx confrontando la gestione degli errori del pulsante di azione dell’host con i controlli del microfono del player che usano streamError e visualizzano problem. Controlla l’altro percorso di errore visibile solo nella console, menzionato intorno alla riga 472. Il lavoro è completo quando le azioni dell’host non riuscite mostrano un messaggio comprensibile accanto al controllo, un nuovo tentativo riuscito lo cancella e il comportamento lato player resta invariato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug good first issue help wanted UI & UX

In apps/frontend/src/components/live/LiveStage.tsx, the host's action buttons — letting a player speak, taking the floor back — swallow their errors into the console:

onClick={async () => {
  setBusy(true);
  try {
    await onClick();
  } catch (err) {
    console.error("[live] host action failed", err);   // nothing reaches the host
  } finally {
    setBusy(false);
  }
}}

The button goes busy, comes back, and nothing changes. No message, no retry, no indication the request failed at all.

Why it matters

This happens live, in front of a room. A host taps "let in" on a raised hand, the button flickers, and the player stays silent. The host has no idea whether they misclicked, whether the player's connection is bad, or whether the request failed — so they tap it again, and again.

Meanwhile the player is waiting to speak and can see their hand is still up.

There is already a correct pattern in the same file

The player-side mic controls handle this properly:

const run = async (action: () => Promise<unknown>, failure: string) => {
  setBusy(true);
  setProblem(null);
  try {
    await action();
  } catch (err) {
    setProblem(streamError(err, failure));   // shown to the user
  } finally {
    setBusy(false);
  }
};

streamError already turns a failed request into a readable message, and the component already renders problem. The host buttons just never got the same treatment.

What a fix looks like

Give the host actions the same error state the player controls have, and show the message near the control that failed rather than at the top of the stage — the host is looking at a list of participants, so an error floating elsewhere is easy to miss.

Worth checking the whole file for other places that only console.error. The two paths I know about are the host action button and one around line 472.

Definition of done
  • A failed host action shows a readable message, not just a console line
  • The message appears near the control the host used
  • The error clears on a successful retry
  • The player-side behaviour is unchanged

Good first issue: the working pattern is a few hundred lines below in the same file, so this is mostly applying something that already exists.

Lingua principale
TypeScript
Stelle
21
Fork
7
Merge medio
4h 31m
PR unite (30g)
22

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TheCodeHeist-Coder/Rexial

Tutte le issue di TheCodeHeist-Coder/Rexial

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.