X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Futils%2FtimeControl.js;h=97d5ab6a1eff001115811a09a4fde0e678d6bc98;hb=e50a802531b99829c533f22ecd21e359e7e1e049;hp=9106b96c47370cb9dbde172c7cebe1cbdcf9229d;hpb=6808d7a16ec1e761c6a2dffec2281c96953e4d89;p=vchess.git diff --git a/client/src/utils/timeControl.js b/client/src/utils/timeControl.js index 9106b96c..97d5ab6a 100644 --- a/client/src/utils/timeControl.js +++ b/client/src/utils/timeControl.js @@ -14,9 +14,9 @@ function timeUnitToSeconds(value, unit) { return seconds; } +// Used only if increment, hence live game: no "day" unit function isLargerUnit(unit1, unit2) { return ( - (unit1 == "d" && unit2 != "d") || (unit1 == "h" && ["s", "m"].includes(unit2)) || (unit1 == "m" && unit2 == "s") ); @@ -24,19 +24,21 @@ function isLargerUnit(unit1, unit2) { export function extractTime(cadence) { let tcParts = cadence.replace(/ /g, "").split("+"); - // Concatenate usual time control suffixes, in case of none is provided + // Concatenate usual time control suffix, in case of none is provided tcParts[0] += "m"; - tcParts[1] += "s"; const mainTimeArray = tcParts[0].match(/^([0-9]+)([smhd]+)$/); if (!mainTimeArray) return null; - const mainTimeValue = parseInt(mainTimeArray[1]); + const mainTimeValue = parseInt(mainTimeArray[1], 10); const mainTimeUnit = mainTimeArray[2][0]; const mainTime = timeUnitToSeconds(mainTimeValue, mainTimeUnit); let increment = 0; if (tcParts.length >= 2) { + // Correspondance games don't use an increment: + if (mainTimeUnit == 'd') return null; + tcParts[1] += "s"; const incrementArray = tcParts[1].match(/^([0-9]+)([smhd]+)$/); if (!incrementArray) return null; - const incrementValue = parseInt(incrementArray[1]); + const incrementValue = parseInt(incrementArray[1], 10); const incrementUnit = incrementArray[2][0]; // Increment unit cannot be larger than main unit: if (isLargerUnit(incrementUnit, mainTimeUnit)) return null;