[Feature] Add seated arrow-key desk navigation and improve seating user experience
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- html, javascript
- Lĩnh vực
- frontend
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- HTML
- Star
- 3
- Fork
- 29
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của alphaonelabs/learn
-
Password change returns 500 because `username` is used before it is setCó thể đã có người làm @10done đã nhận 12 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
alphaonelabs/learn#138 · 1 bình luận ·
-
Active Navigation State Is Not Highlighted in the NavbarCó thể đã có người làm @Taha254511 đã nhận 19 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
alphaonelabs/learn#91 · 1 bình luận ·
-
[Refactor] whiteboard module for improved maintainability, performance, and UXCó thể đã có người làm @rishavvrajj đã nhận 3 ngày trước. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
alphaonelabs/learn#144 ·
-
add edit an activity buttonCó thể đã có người làm @gopikrishna-20 đã nhận 15 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
alphaonelabs/learn#134 ·
-
Add a "Resend verification email" option on the login pageCó thể đã có người làm @gopikrishna-20 đã nhận 17 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
alphaonelabs/learn#131 ·
Tất cả issue của alphaonelabs/learn
Issue tương tự
-
bug ui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
hashtopolis/server#2614 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
変換の候補のどれが Zenzai の答えか分からないĐang mở要トリアージ
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
VictorKildahl/cra#192 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
vaadin-map
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
vaadin/flow-components#10586 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
S: Untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Trauma-Station/Trauma-Station#5285 ·
Maintainer thường phản hồi trong vòng 1 ngày