Skip to content

Commit 051e4e2

Browse files
authored
Fix release candidate .0 not showing up (#157)
Fix release candidate `.0` not showing up
2 parents c10ee8a + bdf86af commit 051e4e2

File tree

1 file changed

+33
-5
lines changed

1 file changed

+33
-5
lines changed

src/components/common/VersionSelector.js

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,23 @@ const getVersionsInURL = () => {
4848
}
4949

5050
const compareReleaseCandidateVersions = ({ version, versionToCompare }) =>
51-
['prepatch', null].includes(semver.diff(version, versionToCompare))
51+
['prerelease', 'prepatch', null].includes(
52+
semver.diff(version, versionToCompare)
53+
)
54+
55+
const getLatestMajorReleaseVersion = releasedVersions =>
56+
semver.valid(
57+
semver.coerce(
58+
releasedVersions.find(
59+
releasedVersion =>
60+
!semver.prerelease(releasedVersion) &&
61+
semver.patch(releasedVersion) === 0
62+
)
63+
)
64+
)
5265

5366
// Check if `from` rc version is one of the latest major release (ie. 0.60.0)
54-
const checkLatestReleaseCandidate = ({ version, latestVersion }) =>
67+
const checkIfVersionIsALatestRC = ({ version, latestVersion }) =>
5568
semver.prerelease(version) &&
5669
compareReleaseCandidateVersions({
5770
version: latestVersion,
@@ -73,7 +86,7 @@ const getReleasedVersionsWithCandidates = ({
7386
// Show the release candidates of the latest version
7487
const isLatestReleaseCandidate =
7588
showReleaseCandidates &&
76-
checkLatestReleaseCandidate({
89+
checkIfVersionIsALatestRC({
7790
version: releasedVersion,
7891
latestVersion
7992
})
@@ -96,7 +109,22 @@ const getReleasedVersionsWithCandidates = ({
96109
}
97110

98111
const getReleasedVersions = ({ releasedVersions, minVersion, maxVersion }) => {
99-
return releasedVersions
112+
const latestMajorReleaseVersion = getLatestMajorReleaseVersion(
113+
releasedVersions
114+
)
115+
116+
const isVersionAReleaseAndOfLatest = version =>
117+
version.includes('rc') &&
118+
semver.valid(semver.coerce(version)) === latestMajorReleaseVersion
119+
120+
return releasedVersions.filter(
121+
releasedVersion =>
122+
releasedVersion.length > 0 &&
123+
((maxVersion && semver.lt(releasedVersion, maxVersion)) ||
124+
(minVersion &&
125+
semver.gt(releasedVersion, minVersion) &&
126+
!isVersionAReleaseAndOfLatest(releasedVersion)))
127+
)
100128
}
101129

102130
// Finds the first minor release (which in react-native is the major) when compared to another version
@@ -177,7 +205,7 @@ const VersionSelector = ({ showDiff, showReleaseCandidates }) => {
177205
showReleaseCandidates
178206
})
179207

180-
setAllVersions(allVersionsFromResponse)
208+
setAllVersions(sanitizedVersions)
181209

182210
const fromVersionToBeSet = hasFromVersionInURL
183211
? versionsInURL.fromVersion

0 commit comments

Comments
 (0)