Fix civil-date public types: Day.date, currentPeriod, activeDate → YYYY-MM-DD strings
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- typescript
- Bereich
- api
Rechercherichtung
Start by reading the public types for Day and CalendarStore, then search for all-day event boundaries and existing tests that use Temporal.PlainDate. Update the affected exported types and usages so civil dates are YYYY-MM-DD strings while event start/end remain Date objects. Done means no exported type exposes Temporal.PlainDate, the named values and tests use identical ISO date strings, and consumers get a TypeScript error for the old property access.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Parent
https://github.com/TanStack/time/issues/25
What to build
Change every civil-date value at the public boundary from `Temporal.PlainDate` to a `YYYY-MM-DD` ISO string. This is a targeted breaking change that must land before the module API is built, so the correct types are foundational from the start.
Civil values affected: `Day.date`, `CalendarStore.currentPeriod`, `CalendarStore.activeDate`, and any all-day event boundary that is currently typed as `Temporal.PlainDate`.
Why: encoding a civil date as a `Temporal.PlainDate` leaks the Temporal polyfill into consumer types. Encoding it as a `Date` object introduces the all-day off-by-one bug (UTC-midnight reads incorrectly in west-of-UTC timezones). A `YYYY-MM-DD` string is the honest, zero-ambiguity representation of a calendar-civil day.
Instant-bearing values (event `start`/`end`) are unaffected — those remain `Date` objects.
Acceptance criteria
- `Day.date` is typed as `string` and carries a `YYYY-MM-DD` value
- `CalendarStore.currentPeriod` and `activeDate` are typed as `string` (`YYYY-MM-DD`)
- No `Temporal.PlainDate` appears in any exported type
- `Day.isoDate` (already present) is confirmed as the canonical fast-path key; `Day.date` and `Day.isoDate` carry identical values — one of them may be removed if redundant
- All existing tests updated to reflect the new types
- A consumer who previously accessed `Day.date.year` / `.month` / `.day` receives a TypeScript error pointing them to the ISO string instead
Blocked by
- Vorherrschende Sprache
- TypeScript
- Sterne
- 620
- Forks
- 6
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TanStack/time
-
Dependency DashboardOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 5/100
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 32/100
-
enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Ähnliche Issues
-
area: cli bug flake ready-for-agent
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
gazetta-studio/gazetta-studio#1772 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
microsoft/playwright#43875 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
calagopus/panel#285 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag