126 |
{`${
127 | task.name
128 | }: ${task.start.getDate()}-${
129 | task.start.getMonth() + 1
130 | }-${task.start.getFullYear()} - ${task.end.getDate()}-${
131 | task.end.getMonth() + 1
132 | }-${task.end.getFullYear()}`}
133 | {task.end.getTime() - task.start.getTime() !== 0 && (
134 |
{`Duration: ${~~(
135 | (task.end.getTime() - task.start.getTime()) /
136 | (1000 * 60 * 60 * 24)
137 | )} day(s)`}
138 | )}
139 |
140 |
141 | {!!task.progress && `Progress: ${task.progress} %`}
142 |
143 |
144 | );
145 | };
146 |
--------------------------------------------------------------------------------
/src/components/other/vertical-scroll.module.css:
--------------------------------------------------------------------------------
1 | .scroll {
2 | overflow: hidden auto;
3 | width: 1rem;
4 | flex-shrink: 0;
5 | /*firefox*/
6 | scrollbar-width: thin;
7 | }
8 | .scroll::-webkit-scrollbar {
9 | width: 1.1rem;
10 | height: 1.1rem;
11 | }
12 | .scroll::-webkit-scrollbar-corner {
13 | background: transparent;
14 | }
15 | .scroll::-webkit-scrollbar-thumb {
16 | border: 6px solid transparent;
17 | background: rgba(0, 0, 0, 0.2);
18 | background: var(--palette-black-alpha-20, rgba(0, 0, 0, 0.2));
19 | border-radius: 10px;
20 | background-clip: padding-box;
21 | }
22 | .scroll::-webkit-scrollbar-thumb:hover {
23 | border: 4px solid transparent;
24 | background: rgba(0, 0, 0, 0.3);
25 | background: var(--palette-black-alpha-30, rgba(0, 0, 0, 0.3));
26 | background-clip: padding-box;
27 | }
28 |
--------------------------------------------------------------------------------
/src/components/other/vertical-scroll.tsx:
--------------------------------------------------------------------------------
1 | import React, { SyntheticEvent, useRef, useEffect } from "react";
2 | import styles from "./vertical-scroll.module.css";
3 |
4 | export const VerticalScroll: React.FC<{
5 | scroll: number;
6 | ganttHeight: number;
7 | ganttFullHeight: number;
8 | headerHeight: number;
9 | rtl: boolean;
10 | onScroll: (event: SyntheticEvent