"Add a slot" adds an empty row without opening it
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đá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
- 52/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- react, typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Start with BuildWysiwyg.tsx and src/components/build-shared/useBuildState.ts, then read how Duplicate opens a slot and uses focusRequest. Update the Add a slot flow and pin its behavior in BuildWysiwyg.test.tsx; adjust tests/e2e/help/create-and-publish-a-signup.spec.ts and the help article. Done when the new slot opens with focus in its first empty field in flat and grouped lists, the walkthrough passes, and the listed checks pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Needs your OK: this changes what Add a slot does on the Build tab: the new slot opens in the editor, with focus in its first empty field. Swap pipeline:proposed for pipeline:ready to have it built.
What happens
On the Build tab, Add a slot (WysiwygGroup in src/components/build-wysiwyg/WysiwygGroup.tsx) calls handleAddSlot in BuildWysiwyg.tsx, which calls addRow in src/components/build-shared/useBuildState.ts. The new slot appears as a closed, empty row, and nothing opens. The organizer has to find it and choose it before typing anything. With the keyboard, focus stays on Add a slot, below the new row.
Duplicate works the other way since #557: the copy opens in the editor with focus in its first field. Two buttons that both make a slot leave the organizer in different places. A new slot left closed and empty is also how "Untitled slot" ends up on a published page.
To see it: create a signup by hand, fill in its first slot, choose Done, then choose Add a slot.
Fix, in outline
- Open the new slot. Have
addRowresolve to the new slot's id, and havehandleAddSlotopen that slot's editor and close any other, as Duplicate does with its copy. #580 already makesaddRowresolve to the id, and itsopenSlotadds a slot and opens it for Publish's check; use that path. - Put focus in the first empty field. A slot added under a group already has the group's value (its day, say), so focus skips that box and lands on the first one without a value. #580's
focusRequesttakes a field for this. - Help page. In
src/help/articles/create-and-publish-a-signup.tsx, "For the next slot, choose Add a slot and fill it in the same way." still holds. Add that the new slot opens, ready to fill in.
Watch for
- The help walkthrough
tests/e2e/help/create-and-publish-a-signup.spec.tschooses Add a slot and then expects two "Edit slot" rows. With the new slot open, one of them is an editor. Update it, and re-runpnpm help:screenshotsif a screenshot changes. - A refused add opens nothing and keeps its error on the rail, as now.
- Add date, on a signup grouped by a date field, adds a slot under a new "Set a date" heading. Leave it as it is (see Choices).
- Overlap with #580 and #581, which change
BuildWysiwyg.tsxanduseBuildState.ts, and with #595 (Escape and focus in the slot editor). - CHANGELOG entry.
Choices this makes
- Add a slot opens the new slot. Default: yes. It matches Duplicate, and the organizer can type into it straight away.
- Where focus goes: the first field without a value. Default: the first empty field, so a slot added under a day starts at What, not at the date it already has.
- Add date stays as it is. Default: unchanged. Its slot sits under a "Set a date" heading, and setting that heading is the next step.
Order
After #580, which changes addRow to resolve to the new slot's id and adds openSlot and focusRequest to BuildWysiwyg.tsx. Built on main first, this would make the same changes twice.
Done when
- Choosing Add a slot opens the new slot's editor, closes any other, and puts focus in its first empty field, in a flat list and under a group.
- A unit test in
BuildWysiwyg.test.tsxpins it, and the help walkthrough passes with the new step. pnpm lint && pnpm typecheck && pnpm knip && pnpm testpass.
Found by the UX walkthrough (scenario O4) on 2026-10-24, and checked against the code on main at 4ed27a9.
Generated by Claude Code
- Ngôn ngữ chính
- TypeScript
- Star
- 19
- Fork
- 4
- Merge trung bình
- 19 giờ 34 phút
- Pull request đã merge (30 ngày)
- 165
Chuẩn bị môi trường
- Có Dockerfile hoặc 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 richshaw/OpenSignup
-
enhancement pipeline:proposed pipeline:ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
richshaw/OpenSignup#654 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
The help pages never say "pause", so organizers looking for it miss Close or reopen a signupĐang mởenhancement pipeline:proposed pipeline:ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
richshaw/OpenSignup#653 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement pipeline:proposed pipeline:ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
richshaw/OpenSignup#652 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
SMTP timeout notes in smtp.ts and the changelog describe nodemailer 10.0, not 10.1Có thể đã có người làm @agammann đã nhận hôm nay. Đang mởenhancement good first issue pipeline:ready
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
richshaw/OpenSignup#645 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
A signup page's first Tab skips the header and lands on the next tabCó thể đã có người làm @richshaw đã nhận hôm nay. Đang mởbug good first issue pipeline:building pipeline:ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
richshaw/OpenSignup#644 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của richshaw/OpenSignup
Issue tương tự
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
ajv-validator/ajv#2689 ·
-
[Bug]: IME confirmation Enter can submit the SSH port-forward dialogCó thể đã có người làm @seijikohara đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
home-assistant/frontend#55323 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
lingdojo/kana-dojo#33188 · 1 bình luận · 5 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
self-driving
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày