Skip to content

Commit c6c08de

Browse files
author
Lucas Bento
committed
Fix rc versions showing even if it's not on the latest release candidate
1 parent 0834cc8 commit c6c08de

File tree

1 file changed

+9
-21
lines changed

1 file changed

+9
-21
lines changed

src/components/common/VersionSelector.js

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,8 @@ const getVersionsInURL = () => {
4747
}
4848
}
4949

50-
// Compare versions by removing the `rc` from them, e.g. `0.60.0-rc.1` becomes `0.60.0`
5150
const compareReleaseCandidateVersions = ({ version, versionToCompare }) =>
52-
semver.compare(
53-
semver.valid(semver.coerce(version)),
54-
semver.valid(semver.coerce(versionToCompare))
55-
) === 0
51+
['prepatch', null].includes(semver.diff(version, versionToCompare))
5652

5753
const getLatestMajorReleaseVersion = releasedVersions =>
5854
semver.valid(
@@ -66,14 +62,11 @@ const getLatestMajorReleaseVersion = releasedVersions =>
6662
)
6763

6864
// Check if `from` rc version is one of the latest major release (ie. 0.60.0)
69-
const isFromAValidReleaseCandidate = ({
70-
fromVersion,
71-
latestMajorReleaseVersion
72-
}) =>
73-
semver.prerelease(fromVersion) &&
65+
const checkLatestReleaseCandidate = ({ version, latestVersion }) =>
66+
semver.prerelease(version) &&
7467
compareReleaseCandidateVersions({
75-
version: latestMajorReleaseVersion,
76-
versionToCompare: fromVersion
68+
version: latestVersion,
69+
versionToCompare: version
7770
})
7871

7972
// Filters out release candidates from `releasedVersion` with the
@@ -86,17 +79,14 @@ const getReleasedVersionsWithCandidates = ({
8679
}) => {
8780
const isToVersionAReleaseCandidate = semver.prerelease(toVersion) !== null
8881
const isLatestAReleaseCandidate = semver.prerelease(latestVersion) !== null
89-
const latestMajorReleaseVersion = getLatestMajorReleaseVersion(
90-
releasedVersions
91-
)
9282

9383
return releasedVersions.filter(releasedVersion => {
9484
// Show the release candidates of the latest version
9585
const isLatestReleaseCandidate =
9686
showReleaseCandidates &&
97-
isFromAValidReleaseCandidate({
98-
fromVersion: releasedVersion,
99-
latestMajorReleaseVersion
87+
checkLatestReleaseCandidate({
88+
version: releasedVersion,
89+
latestVersion
10090
})
10191

10292
return (
@@ -125,16 +115,14 @@ const getReleasedVersions = ({ releasedVersions, minVersion, maxVersion }) => {
125115
version.includes('rc') &&
126116
semver.valid(semver.coerce(version)) === latestMajorReleaseVersion
127117

128-
let result = releasedVersions.filter(
118+
return releasedVersions.filter(
129119
releasedVersion =>
130120
releasedVersion.length > 0 &&
131121
((maxVersion && semver.lt(releasedVersion, maxVersion)) ||
132122
(minVersion &&
133123
semver.gt(releasedVersion, minVersion) &&
134124
!isVersionAReleaseAndOfLatest(releasedVersion)))
135125
)
136-
137-
return result
138126
}
139127

140128
// Finds the first minor release (which in react-native is the major) when compared to another version

0 commit comments

Comments
 (0)