Recurrence module
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
- Ambito
- backend-api-design
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- TypeScript
- Stelle
- 620
- Fork
- 6
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 TanStack/time
-
Dependency DashboardAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 5/100
-
Client/server Data StrategyApertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 32/100
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Tutte le issue di TanStack/time
Issue simili
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
microsoft/playwright#43875 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
calagopus/panel#285 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 88/100
adobe/react-spectrum#10909 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Run the dependency drift checkForse già presa @spaceninja l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
cloudfour/lighthouse-parade#449 ·
I maintainer di solito rispondono entro 1 giorno