Skip to content

Commit 3d719dc

Browse files
committed
feat: implement alternate left/right positioning
1 parent 995cf46 commit 3d719dc

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/components/Timeline.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,21 @@ export function Timeline({ items }: TimelineProps) {
1919

2020
useEffect(() => {
2121
const elements = Array.from(getRefMap().values());
22-
const heights = elements.map((item) => item.offsetHeight);
2322

24-
elements.forEach((item, index) => {
23+
let leftHeight = 0;
24+
let rightHeight = 0;
25+
26+
elements.forEach((item) => {
2527
const element = item;
26-
const topOffset = heights.slice(0, index).reduce((prev, curr) => prev + curr, 0);
27-
element.style.top = `${topOffset}px`;
28+
if (leftHeight > rightHeight) {
29+
element.style.top = `${rightHeight}px`;
30+
element.style.right = '0';
31+
rightHeight += element.offsetHeight;
32+
} else {
33+
element.style.top = `${leftHeight}px`;
34+
leftHeight += element.offsetHeight;
35+
element.style.left = '0';
36+
}
2837
});
2938
}, [itemsRef]);
3039

0 commit comments

Comments
 (0)