Skip to content

Commit 1673adf

Browse files
committed
refactor relative time logic to use new utility function
1 parent dd2bd84 commit 1673adf

File tree

4 files changed

+52
-44
lines changed

4 files changed

+52
-44
lines changed

ui/src/Components/DashBoard/Compare/CommitCompareComponent/CommitCompareComponent.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default function CommitCompareComponent(props) {
1616
const [compareCommit, setCompareCommit] = useState("");
1717
const [errState, setErrState] = useState(false);
1818
const [referenceCommit, setReferenceCommit] = useState("");
19+
const [loadingCommits, setLoadingCommits] = useState(false);
1920

2021
const memoizedCommitFileDifference = useMemo(() => {
2122
return (
@@ -28,6 +29,7 @@ export default function CommitCompareComponent(props) {
2829
}, [props.repoId, baseCommit, compareCommit]);
2930

3031
useEffect(() => {
32+
setLoadingCommits(true);
3133
setErrState(false);
3234
axios({
3335
url: globalAPIEndpoint,
@@ -43,7 +45,6 @@ export default function CommitCompareComponent(props) {
4345
hash
4446
author
4547
commitMessage
46-
commitRelativeTime
4748
commitFilesCount
4849
}
4950
}
@@ -52,6 +53,7 @@ export default function CommitCompareComponent(props) {
5253
},
5354
})
5455
.then((res) => {
56+
setLoadingCommits(false);
5557
if (res.data.data) {
5658
const { commits, totalCommits } = res.data.data.gitCommitLogs;
5759
if (totalCommits === 0 || totalCommits == null) {
@@ -70,6 +72,7 @@ export default function CommitCompareComponent(props) {
7072
}
7173
})
7274
.catch((err) => {
75+
setLoadingCommits(false);
7376
console.log(err);
7477
setErrState(true);
7578
});
@@ -90,16 +93,19 @@ export default function CommitCompareComponent(props) {
9093
})}
9194
{totalCommitCount > commitData.length ? (
9295
<div
93-
className="p-3 border cursor-pointer hover:bg-gray-100 text-center font-sans font-semibold"
96+
className={`p-3 border cursor-pointer hover:bg-gray-100 text-center font-sans ${
97+
loadingCommits ? "text-gray-500" : "text-gray-800"
98+
} font-semibold`}
9499
onClick={() => {
95-
const len = commitData.length;
96-
97-
if (len >= 1) {
98-
setReferenceCommit(commitData[len - 1].hash);
100+
if (!loadingCommits) {
101+
const len = commitData.length;
102+
if (len >= 1) {
103+
setReferenceCommit(commitData[len - 1].hash);
104+
}
99105
}
100106
}}
101107
>
102-
Load More commits
108+
{loadingCommits ? "Loading more commits..." : "Load More commits"}
103109
</div>
104110
) : null}
105111
</>

ui/src/Components/DashBoard/Compare/CommitCompareComponent/CommitLogCardComponent.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from "react";
22
import { library } from "@fortawesome/fontawesome-svg-core";
33
import { fas } from "@fortawesome/free-solid-svg-icons";
44
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5+
import { relativeCommitTimeCalculator } from "../../../../util/relativeCommitTimeCalculator";
56

67
export default function CommitLogCardComponent(props) {
78
library.add(fas);
@@ -35,7 +36,7 @@ export default function CommitLogCardComponent(props) {
3536
#{item.hash.substring(0, 7)}
3637
</div>
3738
<div className="my-2 shadow border rounded text-sm p-2 bg-orange-100 font-sans font-semibold">
38-
{item.commitRelativeTime}
39+
{relativeCommitTimeCalculator(item.commitTime)}
3940
</div>
4041
</div>
4142
</div>

ui/src/Components/DashBoard/Repository/RepoComponents/RepoDetails/RepoDetailBackdrop/CommitLogComponent.js

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import moment from "moment";
99
import React, { useEffect, useRef, useState } from "react";
1010
import ReactDOM from "react-dom";
1111
import { globalAPIEndpoint } from "../../../../../../util/env_config";
12+
import { relativeCommitTimeCalculator } from "../../../../../../util/relativeCommitTimeCalculator";
1213
import InfiniteLoader from "../../../../../Animations/InfiniteLoader";
1314
import CommitLogFileCard from "./CommitLogFileCard";
1415

@@ -339,42 +340,6 @@ export default function RepositoryCommitLogComponent(props) {
339340
);
340341
}
341342

342-
function relativeCommitTimeCalculator(commitTime) {
343-
let commitRelativeTime;
344-
345-
const now = new Date();
346-
const timeDiff = moment.duration(moment(now).diff(commitTime));
347-
348-
const days = Math.floor(timeDiff.asDays());
349-
const hours = Math.floor(timeDiff.asHours());
350-
const minutes = Math.floor(timeDiff.asMinutes());
351-
352-
if (days > 0) {
353-
if (days >= 30) {
354-
const month = Math.floor(timeDiff.asMonths());
355-
commitRelativeTime =
356-
month === 1 ? month + " Month Ago" : month + " Months Ago";
357-
} else if (days >= 365) {
358-
const year = Math.floor(timeDiff.asYears());
359-
commitRelativeTime =
360-
year === 1 ? year + " Year Ago" : year + " Years Ago";
361-
} else {
362-
commitRelativeTime =
363-
days === 1 ? days + " Day Ago" : days + " Days Ago";
364-
}
365-
} else if (hours > 0) {
366-
commitRelativeTime =
367-
hours === 1 ? hours + " Hour Ago" : hours + " Hours Ago";
368-
} else if (minutes > 0) {
369-
commitRelativeTime =
370-
minutes === 1 ? minutes + " Minute Ago" : minutes + " Minutes Ago";
371-
} else {
372-
commitRelativeTime = "recent commit";
373-
}
374-
375-
return commitRelativeTime;
376-
}
377-
378343
return (
379344
<>
380345
{searchbarComponent()}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import moment from "moment";
2+
3+
export function relativeCommitTimeCalculator(commitTime) {
4+
let commitRelativeTime;
5+
6+
const now = new Date();
7+
const timeDiff = moment.duration(moment(now).diff(commitTime));
8+
9+
const days = Math.floor(timeDiff.asDays());
10+
const hours = Math.floor(timeDiff.asHours());
11+
const minutes = Math.floor(timeDiff.asMinutes());
12+
13+
if (days > 0) {
14+
if (days >= 30) {
15+
const month = Math.floor(timeDiff.asMonths());
16+
commitRelativeTime =
17+
month === 1 ? month + " Month Ago" : month + " Months Ago";
18+
} else if (days >= 365) {
19+
const year = Math.floor(timeDiff.asYears());
20+
commitRelativeTime =
21+
year === 1 ? year + " Year Ago" : year + " Years Ago";
22+
} else {
23+
commitRelativeTime = days === 1 ? days + " Day Ago" : days + " Days Ago";
24+
}
25+
} else if (hours > 0) {
26+
commitRelativeTime =
27+
hours === 1 ? hours + " Hour Ago" : hours + " Hours Ago";
28+
} else if (minutes > 0) {
29+
commitRelativeTime =
30+
minutes === 1 ? minutes + " Minute Ago" : minutes + " Minutes Ago";
31+
} else {
32+
commitRelativeTime = "recent commit";
33+
}
34+
35+
return commitRelativeTime;
36+
}

0 commit comments

Comments
 (0)