From 945f6ab34739e0dce6275d6580ea8766e68e4429 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sun, 16 Jun 2019 16:19:22 +0200 Subject: [PATCH] :bug: Fixed some issues in utils package --- packages/utils/src/formatImperial.js | 7 ++++--- packages/utils/src/formatMm.js | 12 ++++++------ packages/utils/src/measurementAsMm.js | 8 ++++++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/packages/utils/src/formatImperial.js b/packages/utils/src/formatImperial.js index 0412ad02639..033f4d46982 100644 --- a/packages/utils/src/formatImperial.js +++ b/packages/utils/src/formatImperial.js @@ -5,13 +5,14 @@ const formatImperial = ( deno = false, format = "html" ) => { + console.log("in format imperial, format is", format, inch, numo, deno); if (format === "html") { if (numo) - return `${neg}${inch}${numo}/${deno}`; + return `${neg}${inch} ${numo}/${deno}`; else return `${neg}${inch}`; } else { - if (numo) return `${neg}${inch}`; - else return `${neg}${inch} ${numo}/${deno}`; + if (numo) return `${neg}${inch} ${numo}/${deno}`; + else return `${neg}${inch}`; } }; diff --git a/packages/utils/src/formatMm.js b/packages/utils/src/formatMm.js index 158d86a0b87..e82aee99fd5 100644 --- a/packages/utils/src/formatMm.js +++ b/packages/utils/src/formatMm.js @@ -21,17 +21,17 @@ const formatMm = (val, units, format = "html") => { let fraction128 = Math.round(rest * 128); if (fraction128 == 0) return formatImperial(negative, inches); if (fraction128 % 64 == 0) - return formatImperial(negative, inches, fraction128 / 64, 2); + return formatImperial(negative, inches, fraction128 / 64, 2, format); if (fraction128 % 32 == 0) - return formatImperial(negative, inches, fraction128 / 32, 4); + return formatImperial(negative, inches, fraction128 / 32, 4, format); if (fraction128 % 16 == 0) - return formatImperial(negative, inches, fraction128 / 16, 8); + return formatImperial(negative, inches, fraction128 / 16, 8, format); if (fraction128 % 8 == 0) - return formatImperial(negative, inches, fraction128 / 8, 16); + return formatImperial(negative, inches, fraction128 / 8, 16, format); if (fraction128 % 4 == 0) - return formatImperial(negative, inches, fraction128 / 4, 32); + return formatImperial(negative, inches, fraction128 / 4, 32, format); if (fraction128 % 2 == 0) - return formatImperial(negative, inches, fraction128 / 2, 64); + return formatImperial(negative, inches, fraction128 / 2, 64, format); return negative + fraction; } else { if (format === "html") return roundMm(val / 10) + "cm"; diff --git a/packages/utils/src/measurementAsMm.js b/packages/utils/src/measurementAsMm.js index f0157d1615e..17f090ec7d6 100644 --- a/packages/utils/src/measurementAsMm.js +++ b/packages/utils/src/measurementAsMm.js @@ -6,6 +6,14 @@ const measurementAsMm = (value, units = "metric") => { if (isNaN(value)) return false; return value * 10; } else { + const imperialFractionToMm = value => { + let chunks = value.trim().split("/"); + if (chunks.length !== 2 || chunks[1] === "") return false; + let num = Number(chunks[0]); + let denom = Number(chunks[1]); + if (isNaN(num) || isNaN(denom)) return false; + else return (num * 25.4) / denom; + }; let chunks = value.split(" "); if (chunks.length === 1) { let val = chunks[0];