Recurrence module
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- typescript
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Start with parent issue #25 and the blocked module API issue #28, then trace how the kernel's read and write pipelines and the Calendar product factory register modules. Review the RecurrenceRule model and the occurrence projection; identify how the listed acceptance criteria fit together before estimating the work. Done means the module meets the recurrence, editing, navigation, and tree-shaking criteria while keeping occurrences ephemeral.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Parent
https://github.com/TanStack/time/issues/25
What to build
Extract recurrence expansion and editing into a proper module that plugs into the kernel's read and write pipelines. When registered, the module expands Master Events into ephemeral Occurrences within the current viewport and handles all recurrence-specific writes (edit-this, edit-this-and-following, delete-this, delete-all).
Also extend the `RecurrenceRule` model to cover the full UI-builder subset: add `byMonthDay` (supports negative values, e.g. `-1` = last day of month) and ordinal weekdays (e.g. `{ weekday: 2, nth: 2 }` = 2nd Tuesday, `{ weekday: 5, nth: -1 }` = last Friday).
Occurrences are ephemeral — derived in the projection, never stored. The Master Event carries the rule; Overrides and Exceptions live on the master's rule.
Acceptance criteria
- `RecurrenceModule` plugs into the kernel via the module API (#28) and is listed as a registered module in the Calendar product factory
- A Master Event with a `RecurrenceRule` produces the correct Occurrences for the current viewport
- Editing a single Occurrence creates an Override keyed by original start (RECURRENCE-ID); other occurrences are unaffected
- Editing "this and following" splits the master at the occurrence boundary, producing a new master for the remainder
- Deleting a single Occurrence adds it to `exDates` (Exception); the series continues
- `byMonthDay` (including negative values) generates the correct occurrences for monthly/yearly rules
- Ordinal weekday (`{ weekday, nth }`) generates the correct occurrences (e.g. 2nd Tuesday, last Friday)
- `goToNextOccurrence` / `goToPreviousOccurrence` navigate correctly across the series
- Removing the `RecurrenceModule` from the module list causes recurrence-related code to tree-shake out of the bundle
Blocked by
- Ngôn ngữ chính
- TypeScript
- Star
- 620
- Fork
- 6
- 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
- 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 TanStack/time
-
Dependency DashboardĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 5/100
-
Client/server Data StrategyĐang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 32/100
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Tất cả issue của TanStack/time
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/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 68/100
caprover/caprover-frontend#273 ·
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
ai-driven-dev/framework#1147 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
agent-ui bug p2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/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 62/100
cybersemics/em#6232 ·
Maintainer thường phản hồi trong vòng 1 ngày