Skip to content

Commit 62003a6

Browse files
committed
Added shortcut to today's date in Fresh Releases using a Calendar Icon as a ticker
1 parent c67be5d commit 62003a6

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

frontend/js/src/explore/fresh-releases/components/ReleaseTimeline.tsx

+24-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import * as React from "react";
22
import Slider from "rc-slider";
33
import { countBy, debounce, zipObject } from "lodash";
4+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5+
import { faCalendarCheck } from "@fortawesome/free-solid-svg-icons";
46
import { formatReleaseDate, useMediaQuery } from "../utils";
57
import { SortDirection } from "../FreshReleases";
68

@@ -15,7 +17,7 @@ function createMarks(
1517
sortDirection: string,
1618
order: string
1719
) {
18-
let dataArr: Array<string> = [];
20+
let dataArr: Array<React.ReactNode> = [];
1921
let percentArr: Array<number> = [];
2022
// We want to filter out the keys that have less than 1.5% of the total releases
2123
const minReleasesThreshold = Math.floor(releases.length * 0.015);
@@ -24,11 +26,26 @@ function createMarks(
2426
releases,
2527
(item: FreshReleaseItem) => item.release_date
2628
);
27-
const filteredDates = Object.keys(releasesPerDate).filter(
28-
(date) => releasesPerDate[date] >= minReleasesThreshold
29+
const today = new Date();
30+
const todayString = today.toISOString().split("T")[0];
31+
const formattedTodayString = formatReleaseDate(todayString);
32+
const filteredDates = Object.keys(releasesPerDate).filter((date) =>
33+
date !== todayString
34+
? releasesPerDate[date] >= minReleasesThreshold
35+
: releasesPerDate[date] > 0
2936
);
3037

31-
dataArr = filteredDates.map((item) => formatReleaseDate(item));
38+
dataArr = filteredDates.map((item) =>
39+
formatReleaseDate(item) === formattedTodayString ? (
40+
<FontAwesomeIcon
41+
icon={faCalendarCheck}
42+
size="2xl"
43+
style={{ color: "#353070" }}
44+
/>
45+
) : (
46+
formatReleaseDate(item)
47+
)
48+
);
3249
percentArr = filteredDates
3350
.map((item) => (releasesPerDate[item] / releases.length) * 100)
3451
.map((_, index, arr) =>
@@ -103,7 +120,9 @@ export default function ReleaseTimeline(props: ReleaseTimelineProps) {
103120
const { releases, order, direction } = props;
104121

105122
const [currentValue, setCurrentValue] = React.useState<number | number[]>();
106-
const [marks, setMarks] = React.useState<{ [key: number]: string }>({});
123+
const [marks, setMarks] = React.useState<{ [key: number]: React.ReactNode }>(
124+
{}
125+
);
107126

108127
const screenMd = useMediaQuery("(max-width: 992px)"); // @screen-md
109128

0 commit comments

Comments
 (0)