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

feat(classroom): add seated arrow-key desk navigation and improve seating user experience

Aperta
#121 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@rishavvrajj ci sta già lavorando.

Dal 16/10/2026.

  • #122 di @rishavvrajj — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
html, javascript
Ambito
frontend

Direzione di ricerca

Everything is in public/classroom_poc.html: the arrow-key handler belongs where isSeated is checked, keysPressed is reset on leave_seat and seat_left, renderDesks() holds the row spacing, and showToast is the toast to stub out. Pull request #122 is already open against this work, so check it before starting. Done means the seated arrow-key navigation, the keysPressed reset, the spacing change and the toast removal all work as the testing steps describe.

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

Descrizione

Overview

This proposal improves the virtual classroom seating experience in public/classroom_poc.html.

Currently, users can sit at a desk but cannot easily move to another desk while seated. This change adds arrow-key navigation between adjacent available desks, fixes movement state after standing up, improves row spacing, and removes intrusive toast notifications.

Proposed improvements

  • Allow seated users to move between adjacent available desks using ↑, ↓, ←, and →.
  • Prevent movement keys from becoming stuck after a user stands up by resetting keysPressed.
  • Increase vertical spacing between desk rows so username labels do not overlap desks or chairs above them.
  • Remove toast notifications for a cleaner classroom UI.
  • Prevent arrow keys from scrolling the page or interfering with chat input while navigating seats.

Expected behavior

When seated:

  • Pressing an arrow key attempts to move the user to the adjacent desk in that direction.
  • Movement is blocked if the target seat is occupied or out of bounds.
  • The client sends an update_seat event for valid seat changes.
  • Pressing E while seated lets the user stand up.
  • After standing up, normal character movement works immediately.

Implementation notes

Changes are limited to public/classroom_poc.html:

  • Add an arrow-key handler when isSeated === true.
  • Calculate the target desk row/column and validate it before sending update_seat.
  • Show a non-intrusive message when the target seat is already taken.
  • Reset keysPressed = {} on leave_seat and seat_left.
  • Update renderDesks() spacing using startTop = 20 and rowStep = 28.
  • Replace showToast with a no-op and remove the toast container.
  • Call preventDefault() for arrow keys and E when the user is not typing in an input field.

Testing steps

  1. Open /classroom_poc?autojoin=1&room=lobby while signed in.
  2. Walk to an available desk and press E to sit.
  3. Press ↑, ↓, ←, and → to move between adjacent available desks.
  4. Try moving into an occupied seat and confirm the move is blocked.
  5. Press E to stand up.
  6. Confirm that walking movement works immediately after standing.
  7. Confirm username labels no longer overlap desks in the row above.
  8. Confirm arrow keys do not scroll the page while seat navigation is active.

Screen recording

https://github.com/user-attachments/assets/9f3ff8c5-1074-4da6-b461-9017e9989fe6

  • Sitting at a desk with E
  • Moving between available desks with arrow keys
  • Attempting to move into an occupied seat
  • Standing up and immediately walking again
  • Improved spacing between desk rows

Acceptance criteria

  • Seated users can navigate to adjacent available desks with arrow keys.
  • Occupied and out-of-bounds seats cannot be selected.
  • keysPressed resets after standing up.
  • Arrow keys do not scroll the page or interfere with chat input.
  • Desk-row spacing prevents username-label overlap.
  • Toast notifications no longer appear.
Lingua principale
HTML
Stelle
3
Fork
28
Merge medio
17h 41m
PR unite (30g)
7

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 alphaonelabs/learn

Tutte le issue di alphaonelabs/learn

Issue simili

Altre issue su Web Dev

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.