@@ -910,28 +910,30 @@ module Settings = {
910910 {switch experimentalVersions {
911911 | [] => React .null
912912 | experimentalVersions =>
913- let versionByOrder = experimentalVersions -> Belt .SortArray .stableSortBy ((a , b ) => {
914- let cmp = ({Semver .major : major , minor , patch , preRelease }) => {
915- let preRelease = switch preRelease {
916- | Some (preRelease ) =>
917- switch preRelease {
918- | Dev (id ) => 0 + id
919- | Alpha (id ) => 10 + id
920- | Beta (id ) => 20 + id
921- | Rc (id ) => 30 + id
913+ let versionByOrder = experimentalVersions -> Array .toSorted ((b , a ) => {
914+ if a .major != b .major {
915+ a .major - b .major
916+ } else if a .minor != b .minor {
917+ a .minor - b .minor
918+ } else if a .patch != b .patch {
919+ a .patch - b .patch
920+ } else {
921+ switch (a .preRelease , b .preRelease )-> Option .all2 {
922+ | Some ((prereleaseA , prereleaseB )) =>
923+ switch (prereleaseA , prereleaseB ) {
924+ | (Rc (rcA ), Rc (rcB )) => rcA - rcB
925+ | (Rc (rcA ), _ ) => rcA
926+ | (Beta (betaA ), Beta (betaB )) => betaA - betaB
927+ | (Beta (betaA ), _ ) => betaA
928+ | (Alpha (alphaA ), Alpha (alphaB )) => alphaA - alphaB
929+ | (Alpha (alphaA ), _ ) => alphaA
930+ | (Dev (devA ), Dev (devB )) => devA - devB
931+ | (Dev (devA ), _ ) => devA
922932 }
933+
923934 | None => 0
924935 }
925- let number =
926- [major , minor , patch ]
927- -> Array .map (v => v -> Int .toString )
928- -> Array .join ("" )
929- -> Int .fromString
930- -> Option .getOr (0 )
931-
932- number + preRelease
933- }
934- cmp (b ) - cmp (a )
936+ }-> Float .fromInt
935937 })
936938 <>
937939 <VersionSelect .SectionHeader value = Constants .dropdownLabelNext />
0 commit comments