Skip to content

Commit 2ea24a8

Browse files
key
1 parent e3f15e0 commit 2ea24a8

3 files changed

Lines changed: 15 additions & 5 deletions

File tree

src/frontend/src/pages/GanttPage/GanttChart/GanttChartComponents/GanttTaskBar/GanttTaskBar.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ interface GanttTaskBarProps<T> {
2626
onAddTaskPressed: (parent: GanttTask<T>) => void;
2727
highlightTaskComparator: HighlightTaskComparator<T>;
2828
highlightSubtaskComparator: HighlightTaskComparator<T>;
29+
onToggle?: () => void;
2930
}
3031

3132
const GanttTaskBar = <T,>({
@@ -38,7 +39,8 @@ const GanttTaskBar = <T,>({
3839
highlightedChange,
3940
onAddTaskPressed,
4041
highlightSubtaskComparator,
41-
highlightTaskComparator
42+
highlightTaskComparator,
43+
onToggle
4244
}: GanttTaskBarProps<T>) => {
4345
const getStartCol = (start: Date) => {
4446
const startCol = days.findIndex((day) => toDateString(day) === toDateString(getMonday(start))) + 1;
@@ -76,6 +78,7 @@ const GanttTaskBar = <T,>({
7678
onAddTaskPressed={onAddTaskPressed}
7779
highlightSubtaskComparator={highlightSubtaskComparator}
7880
highlightTaskComparator={highlightTaskComparator}
81+
onToggle={onToggle}
7982
/>
8083
)}
8184
</div>

src/frontend/src/pages/GanttPage/GanttChart/GanttChartComponents/GanttTaskBar/GanttTaskBarView.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ interface GanttTaskBarViewProps<T> {
2020
onAddTaskPressed: (parent: GanttTask<T>) => void;
2121
highlightTaskComparator: HighlightTaskComparator<T>;
2222
highlightSubtaskComparator: HighlightTaskComparator<T>;
23+
onToggle?: () => void;
2324
}
2425

2526
const GanttTaskBarView = <T,>({
@@ -32,7 +33,8 @@ const GanttTaskBarView = <T,>({
3233
highlightedChange,
3334
onAddTaskPressed,
3435
highlightSubtaskComparator,
35-
highlightTaskComparator
36+
highlightTaskComparator,
37+
onToggle
3638
}: GanttTaskBarViewProps<T>) => {
3739
const [showChildren, setShowChildren] = useState(false);
3840
const [loadedChildren, setLoadedChildren] = useState<GanttTask<T>[]>(task.children);
@@ -64,7 +66,7 @@ const GanttTaskBarView = <T,>({
6466
highlightTaskComparator={highlightTaskComparator}
6567
/>
6668

67-
<Collapse in={showChildren} unmountOnExit>
69+
<Collapse in={showChildren} unmountOnExit onEntered={onToggle} onExited={onToggle}>
6870
{loadedChildren.map((child) => (
6971
<GanttTaskBar
7072
key={child.id}
@@ -78,6 +80,7 @@ const GanttTaskBarView = <T,>({
7880
onAddTaskPressed={onAddTaskPressed}
7981
highlightSubtaskComparator={highlightSubtaskComparator}
8082
highlightTaskComparator={highlightTaskComparator}
83+
onToggle={onToggle}
8184
/>
8285
))}
8386
</Collapse>

src/frontend/src/pages/GanttPage/GanttChart/GanttChartSection.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { Box, Typography } from '@mui/material';
1515
import { MutableRefObject, useCallback, useRef, useState } from 'react';
1616
import GanttTaskBar from './GanttChartComponents/GanttTaskBar/GanttTaskBar';
1717
import GanttToolTip from './GanttChartComponents/GanttToolTip';
18-
import { ArcherContainer } from 'react-archer';
18+
import { ArcherContainer, ArcherContainerRef } from 'react-archer';
1919

2020
interface GanttChartSectionProps<T> {
2121
start: Date;
@@ -70,6 +70,9 @@ const GanttChartSection = <T,>({
7070
}: GanttChartSectionProps<T>) => {
7171
const days = eachDayOfInterval({ start, end }).filter((day) => isMonday(day));
7272

73+
const archerRef = useRef<ArcherContainerRef>(null);
74+
const handleToggle = useCallback(() => archerRef.current?.refreshScreen(), []);
75+
7376
const updateTooltip = useRef<(options: OnMouseOverOptions | undefined, y?: number) => void>(() => {});
7477

7578
const handleOnMouseOver = useCallback(
@@ -92,7 +95,7 @@ const GanttChartSection = <T,>({
9295
);
9396

9497
return tasks.length > 0 ? (
95-
<ArcherContainer strokeColor="#ef4545">
98+
<ArcherContainer strokeColor="#ef4545" ref={archerRef}>
9699
<Box sx={{ width: 'fit-content' }}>
97100
<Box sx={{ mt: '1rem', width: 'fit-content' }}>
98101
{tasks.map((task) => {
@@ -109,6 +112,7 @@ const GanttChartSection = <T,>({
109112
highlightedChange={highlightedChange}
110113
highlightSubtaskComparator={highlightSubtaskComparator}
111114
highlightTaskComparator={highlightTaskComparator}
115+
onToggle={handleToggle}
112116
/>
113117
</Box>
114118
);

0 commit comments

Comments
 (0)