Skip to content

Commit a141eb5

Browse files
authored
Merge pull request MaTeMaTuK#140 from MusabShakeel576/feature/scroll-to-task
feat: scroll to task
2 parents fabcdfb + 448e635 commit a141eb5

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

src/components/gantt/gantt.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,9 @@ export const Gantt: React.FunctionComponent<GanttProps> = ({
382382
}
383383
setSelectedTask(newSelectedTask);
384384
};
385+
const handleSelectedTaskStartX = (x1: number | undefined) => {
386+
setScrollX(x1??-1)
387+
}
385388
const handleExpanderClick = (task: Task) => {
386389
if (onExpanderClick && task.hideChildren !== undefined) {
387390
onExpanderClick({ ...task, hideChildren: !task.hideChildren });
@@ -445,6 +448,7 @@ export const Gantt: React.FunctionComponent<GanttProps> = ({
445448
selectedTask,
446449
taskListRef,
447450
setSelectedTask: handleSelectedTask,
451+
setSelectedTaskStartX: handleSelectedTaskStartX,
448452
onExpanderClick: handleExpanderClick,
449453
TaskListHeader,
450454
TaskListTable,

src/components/task-list/task-list-table.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export const TaskListTableDefault: React.FC<{
3030
tasks: Task[];
3131
selectedTaskId: string;
3232
setSelectedTask: (taskId: string) => void;
33+
setSelectedTaskStartX: (x1: number | undefined) => void;
3334
onExpanderClick: (task: Task) => void;
3435
}> = ({
3536
rowHeight,
@@ -38,6 +39,7 @@ export const TaskListTableDefault: React.FC<{
3839
fontFamily,
3940
fontSize,
4041
locale,
42+
setSelectedTaskStartX,
4143
onExpanderClick,
4244
}) => {
4345
const toLocaleDateString = useMemo(
@@ -72,8 +74,10 @@ export const TaskListTableDefault: React.FC<{
7274
style={{
7375
minWidth: rowWidth,
7476
maxWidth: rowWidth,
77+
cursor: "pointer",
7578
}}
7679
title={t.name}
80+
onClick={() => setSelectedTaskStartX(t.x1)}
7781
>
7882
<div className={styles.taskListNameWrapper}>
7983
<div

src/components/task-list/task-list.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export type TaskListProps = {
1616
horizontalContainerClass?: string;
1717
selectedTask: BarTask | undefined;
1818
setSelectedTask: (task: string) => void;
19+
setSelectedTaskStartX: (x1: number | undefined) => void;
1920
onExpanderClick: (task: Task) => void;
2021
TaskListHeader: React.FC<{
2122
headerHeight: number;
@@ -32,6 +33,7 @@ export type TaskListProps = {
3233
tasks: Task[];
3334
selectedTaskId: string;
3435
setSelectedTask: (taskId: string) => void;
36+
setSelectedTaskStartX: (x1: number | undefined) => void;
3537
onExpanderClick: (task: Task) => void;
3638
}>;
3739
};
@@ -46,6 +48,7 @@ export const TaskList: React.FC<TaskListProps> = ({
4648
tasks,
4749
selectedTask,
4850
setSelectedTask,
51+
setSelectedTaskStartX,
4952
onExpanderClick,
5053
locale,
5154
ganttHeight,
@@ -77,6 +80,7 @@ export const TaskList: React.FC<TaskListProps> = ({
7780
locale,
7881
selectedTaskId: selectedTaskId,
7982
setSelectedTask,
83+
setSelectedTaskStartX,
8084
onExpanderClick,
8185
};
8286

src/types/public-types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export interface Task {
3030
dependencies?: string[];
3131
hideChildren?: boolean;
3232
displayOrder?: number;
33+
x1?: number;
3334
}
3435

3536
export interface EventOption {
@@ -135,6 +136,7 @@ export interface StylingOption {
135136
* Sets selected task by id
136137
*/
137138
setSelectedTask: (taskId: string) => void;
139+
setSelectedTaskStartX: (x1: number | undefined) => void;
138140
onExpanderClick: (task: Task) => void;
139141
}>;
140142
}

0 commit comments

Comments
 (0)