Experimental multi-tabs support (TODO: prevent multi-connect)
[vchess.git] / client / src / utils / timeControl.js
index 89f7f31..6d47aac 100644 (file)
@@ -20,23 +20,26 @@ function isLargerUnit(unit1, unit2)
     || (unit1 == 'm' && unit2 == 's');
 }
 
-export function extractTime(timeControl)
+export function extractTime(cadence)
 {
-  const tcParts = timeControl.replace(/ /g,"").split('+');
-       const mainTimeArray = tcParts[0].match(/([0-9]+)([smhd])/);
+  let tcParts = cadence.replace(/ /g,"").split('+');
+  // Concatenate usual time control suffixes, 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 mainTimeUnit = mainTimeArray[2];
+  const mainTimeUnit = mainTimeArray[2][0];
   const mainTime = timeUnitToSeconds(mainTimeValue, mainTimeUnit);
   let increment = 0;
   if (tcParts.length >= 2)
   {
-    const incrementArray = tcParts[1].match(/([0-9]+)([smhd])/);
+    const incrementArray = tcParts[1].match(/([0-9]+)([smhd]+)/);
     if (!incrementArray)
       return null;
     const incrementValue = parseInt(incrementArray[1]);
-    const incrementUnit = incrementArray[2];
+    const incrementUnit = incrementArray[2][0];
     // Increment unit cannot be larger than main unit:
     if (isLargerUnit(incrementUnit, mainTimeUnit))
       return null;