feat(classroom): add seated arrow-key desk navigation and improve seating user experience
I maintainer di solito rispondono entro 1 giorno
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_seatevent for valid seat changes. - Pressing
Ewhile 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 = {}onleave_seatandseat_left. - Update
renderDesks()spacing usingstartTop = 20androwStep = 28. - Replace
showToastwith a no-op and remove the toast container. - Call
preventDefault()for arrow keys andEwhen the user is not typing in an input field.
Testing steps
- Open
/classroom_poc?autojoin=1&room=lobbywhile signed in. - Walk to an available desk and press
Eto sit. - Press
↑,↓,←, and→to move between adjacent available desks. - Try moving into an occupied seat and confirm the move is blocked.
- Press
Eto stand up. - Confirm that walking movement works immediately after standing.
- Confirm username labels no longer overlap desks in the row above.
- 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.
-
keysPressedresets 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
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di alphaonelabs/learn
-
Active Navigation State Is Not Highlighted in the NavbarForse già presa @Taha254511 l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
alphaonelabs/learn#91 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add a "Resend verification email" option on the login pageForse già presa @gopikrishna-20 l’ha presa oggi. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
alphaonelabs/learn#131 ·
I maintainer di solito rispondono entro 1 giorno
-
[Security] Use random salts for new password hashes, with backward-compatible migrationForse già presa @Taha254511 l’ha presa oggi. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
alphaonelabs/learn#130 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add Google Sign-In AuthenticationForse già presa @gopikrishna-20 l’ha presa 1 giorno fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
alphaonelabs/learn#126 ·
I maintainer di solito rispondono entro 1 giorno
-
feat(classroom): add keyboard shortcuts and clean up interaction controlsForse già presa @rishavvrajj l’ha presa 2 giorni fa. Aperta
Difficoltà 3/5 Mezza giornata Idoneità per principianti 42/100
alphaonelabs/learn#124 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di alphaonelabs/learn
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Billionmail/BillionMail#389 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
mattermost/compass-design#106 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
nordcraftengine/nordcraft#1400 ·
I maintainer di solito rispondono entro 1 giorno
-
Remove responsibilities not working in Custom Roles & BadgesForse già presa @thomasgwatson l’ha presa oggi. Apertaagent-ready agent:needs-test
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 2 giorni
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
AIssoufi/issoufi.fr#220 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno