Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

"Add a slot" adds an empty row without opening it

Đang mở
#596 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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ả

enhancement pipeline:proposed pipeline:ux

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 addRow resolve to the new slot's id, and have handleAddSlot open that slot's editor and close any other, as Duplicate does with its copy. #580 already makes addRow resolve to the id, and its openSlot adds 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 focusRequest takes 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.ts chooses 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-run pnpm help:screenshots if 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.tsx and useBuildState.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.tsx pins it, and the help walkthrough passes with the new step.
  • pnpm lint && pnpm typecheck && pnpm knip && pnpm test pass.

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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của richshaw/OpenSignup

Tất cả issue của richshaw/OpenSignup

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.