ring-sizer / web_demo /static /shared /session-evidence.js
feng-x's picture
Upload folder using huggingface_hub
2307298 verified
Raw
History Blame Contribute Delete
1.38 kB
// Shared result-footer copy for multi-shot recommendations.
// Kept separate from the renderers so desktop and mobile always make the
// same claim about how many measurements support the recommendation.
(function attachSessionEvidence(global) {
"use strict";
function measurementCount(payload) {
const successfulShots = Number(payload && payload.successful_shots);
if (Number.isInteger(successfulShots) && successfulShots > 0) {
return successfulShots;
}
const perFinger = payload && payload.per_finger;
if (!perFinger || typeof perFinger !== "object") return 0;
const counts = Object.values(perFinger)
.map((finger) => Number(finger && finger.sample_count))
.filter((count) => Number.isInteger(count) && count > 0);
return counts.length ? Math.max(...counts) : 0;
}
function text(payload) {
const count = measurementCount(payload);
if (!count) return "";
const noun = count === 1 ? "measurement" : "measurements";
const handedness = String(payload && payload.handedness || "").toLowerCase();
const hand = handedness === "left" || handedness === "right"
? ` of your ${handedness} hand`
: "";
return `Based on ${count} ${noun}${hand}. (For best reliability, take at least 3 measurements using the same hand.)`;
}
global.SessionEvidence = { measurementCount, text };
})(window);