Logical layout + percentage prop-getter
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- typescript
- Domaine
- frontend
Piste de recherche
Start by reading the parent issue #25 and the blocking issue #28 to understand the surrounding design and whether this work can begin. Then trace the core projection and view-layer APIs described here; the payload does not name specific files or tests. Done means the projection exposes fractional logical layout without container dimensions, and the view prop-getter produces percentage styles for both orientations.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Parent
https://github.com/TanStack/time/issues/25
What to build
Remove all pixel values from the core projection and introduce a percentage-based prop-getter that gives consumers an easy, zero-configuration way to position events. The kernel and projection are pixel-free; the prop-getter lives on the view layer.
The projection emits logical Event Layout per event: `{ startFraction, endFraction, column, columnCount, lane }`. The `getEventProps(event)` prop-getter on the view converts these into a `%`-based `style` object the consumer spreads directly onto an element. View orientation (vertical for day/week, horizontal for timeline) is a config on the view, not a separate function.
The timeline view ships under this slice — it is a view over the same logical layout data, not a separate product.
Acceptance criteria
- `getUnavailableRanges(date)` no longer accepts `containerHeight`; returns fractional ranges (`{ startFraction, endFraction }`)
- `getTimelineLayout()` returns fractional `left`/`width` (0–1 range) and logical `lane` index — no pixel values
- `getEventProps(event)` returns `{ style: { position: 'absolute', top: '...%', height: '...%', ... } }` for vertical orientation
- `getEventProps(event)` returns `{ style: { position: 'absolute', left: '...%', width: '...%', ... } }` for horizontal (timeline) orientation
- Raw logical fields (`startFraction`, `endFraction`, `column`, `columnCount`, `lane`) remain public on the event layout object for canvas/virtualized renderers
- Overlap resolution (interval-graph coloring → `column`/`columnCount`) is computed in the projection, not in the prop-getter
- `currentTimePosition` (previously in pixels) is returned as a fraction (0–1)
- No method in the core or projection accepts a container dimension as a parameter
Blocked by
- Langage dominant
- TypeScript
- Étoiles
- 620
- Forks
- 6
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TanStack/time
-
Dependency DashboardOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 5/100
-
Client/server Data StrategyOuverteenhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 32/100
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
-
Undo/redo moduleOuverteenhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Toutes les issues de TanStack/time
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
LucasSantana-Dev/Lucky#2951 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
danielmiessler/LifeOS#2567 ·
Les mainteneurs répondent en général sous 9 jours
-
refactor(react-pi): classify base64 images with core's parseBase64Peut-être pris @jimmyallinai l’a pris aujourd’hui. Ouvertemaintenance
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
assistant-ui/assistant-ui#10293 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
brijeshb42/monaco-vim#175 ·