Skip to content

Commit f150d8f

Browse files
authored
[issue-765] Fix rendering tab based on url (#773)
1 parent 6bf0624 commit f150d8f

File tree

2 files changed

+28
-22
lines changed

2 files changed

+28
-22
lines changed

src/components/Temurin/Tabs/index.tsx

+17-11
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ const Tabs = ({ updaterAction, Table, openModalWithChecksum }) => {
4747
const [arch, updateArch] = useState("any")
4848
const [version, udateVersion] = useState("any")
4949

50-
const [active, setActive] = useState(data.mostRecentLts.version)
50+
const [activeVersionSelectorTab, setActiveVersionSelectorTab] = useState(data.mostRecentLts.version)
51+
5152
const [releases, setReleases] = useState(null)
5253

5354
/**
@@ -87,20 +88,24 @@ const Tabs = ({ updaterAction, Table, openModalWithChecksum }) => {
8788

8889
// init the default selected Version, if any from the param 'version' or from 'variant'
8990
let defaultSelectedVersion = data.mostRecentLts.version
91+
let defaultActiveVersionSelectorTab = data.mostRecentLts.version
9092
const versionParam = queryStringParams.version
9193
if (versionParam) {
9294
let versionParamStr = versionParam.toString()
9395
let versionParamNum = Number(versionParamStr)
9496

9597
if (versionParamStr.toLowerCase() === "latest") {
9698
// get the latest version of the list
97-
defaultSelectedVersion = LTSVersions.sort(
98-
(a, b) => b.node.version - a.node.version,
99-
)[0].node.version
100-
} else if (
101-
LTSVersions.findIndex(version => version.node.version === versionParamNum) >= 0
102-
) {
103-
defaultSelectedVersion = versionParamNum
99+
defaultSelectedVersion = LTSVersions.sort((a, b) => b.node.version - a.node.version,)[0].node.version;
100+
defaultActiveVersionSelectorTab = defaultSelectedVersion;
101+
} else if (LTSVersions.findIndex(version => version.node.version === versionParamNum) >= 0) {
102+
// it is a valid LTS version
103+
defaultSelectedVersion = versionParamNum;
104+
defaultActiveVersionSelectorTab = versionParamNum;
105+
} else {
106+
// it is another valid version
107+
defaultSelectedVersion = versionParamNum;
108+
defaultActiveVersionSelectorTab = 1;
104109
}
105110
}
106111

@@ -119,6 +124,7 @@ const Tabs = ({ updaterAction, Table, openModalWithChecksum }) => {
119124
osUpdater(defaultSelectedOS);
120125
archUpdater(defaultSelectedArch);
121126
versionUpdater(defaultSelectedVersion);
127+
setActiveVersionSelectorTab(defaultActiveVersionSelectorTab);
122128

123129
// OK we can loaded elements
124130
setReady(true)
@@ -157,13 +163,13 @@ const Tabs = ({ updaterAction, Table, openModalWithChecksum }) => {
157163
<section className="py-8 md:pt-16 px-6 w-full">
158164
<div className="w-full flex flex-col items-start justify-start sm:items-center sm:justify-center">
159165
<VersionSelector
160-
active={active}
161-
setActive={setActive}
166+
activeVersionTab={activeVersionSelectorTab}
167+
setActiveVersionTab={setActiveVersionSelectorTab}
162168
versions={LTSVersions}
163169
updateVersion={udateVersion}
164170
defaultVersion={data.mostRecentLts.version}
165171
/>
166-
{active === 1 ? (
172+
{activeVersionSelectorTab === 1 ? (
167173
<ReleaseSelector
168174
versions={data.allVersions}
169175
updateVersion={versionUpdater}

src/components/Temurin/VersionSelector/index.tsx

+11-11
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,44 @@ import React, { useCallback } from "react"
33
import { setURLParam } from "../../../util/setURLParam"
44

55
const VersionSelector = ({
6-
active,
7-
setActive,
6+
activeVersionTab,
7+
setActiveVersionTab,
88
versions,
99
updateVersion,
1010
defaultVersion,
1111
}) => {
12-
const setVersion = useCallback(version => {
13-
if (version === 1) {
12+
const setActiveTabVersion = useCallback(newActiveVersionTab => {
13+
if (newActiveVersionTab === 1) {
1414
setURLParam("version", defaultVersion)
1515
updateVersion(defaultVersion)
1616
} else {
17-
setURLParam("version", version)
18-
updateVersion(version)
17+
setURLParam("version", newActiveVersionTab)
18+
updateVersion(newActiveVersionTab)
1919
}
20-
setActive(version)
20+
setActiveVersionTab(newActiveVersionTab)
2121
}, [])
2222

2323
return (
2424
<div className="w-full max-w-[1264px] mx-auto ">
2525
<div className="overflow-auto relative min-w-full w-full ">
2626
<span className="h-[1px] w-full bg-[#3E3355] inline-block absolute bottom-0 z-[-1]"></span>
2727
<div className="flex space-x-10 whitespace-nowrap lg:justify-center py-3">
28-
<button onClick={() => setVersion(1)}>
28+
<button onClick={() => setActiveTabVersion(1)}>
2929
<span
3030
className={` py-3 w-full text-base font-normal leading-6
31-
outline-none cursor-pointer transition-all duration-200 ease-in-out ${active === 1 ? "border-primary border-b-[2px] text-white" : "text-[#8a809e] border-transparent border-b"}`}
31+
outline-none cursor-pointer transition-all duration-200 ease-in-out ${activeVersionTab === 1 ? "border-primary border-b-[2px] text-white" : "text-[#8a809e] border-transparent border-b"}`}
3232
>
3333
All Versions
3434
</span>
3535
</button>
3636
{versions.map((version, index) => (
3737
<button
3838
key={index}
39-
onClick={() => setVersion(version.node.version)}
39+
onClick={() => setActiveTabVersion(version.node.version)}
4040
>
4141
<span
4242
className={` py-3 w-full text-base font-normal leading-6
43-
outline-none cursor-pointer transition-all duration-200 ease-in-out ${active === version.node.version ? "border-primary border-b-[2px] text-white" : "text-[#8a809e] border-transparent border-b"}`}
43+
outline-none cursor-pointer transition-all duration-200 ease-in-out ${activeVersionTab === version.node.version ? "border-primary border-b-[2px] text-white" : "text-[#8a809e] border-transparent border-b"}`}
4444
>
4545
JDK {version.node.label}
4646
</span>

0 commit comments

Comments
 (0)