fix(scan): confidence percentage display × 100 bug
ConfidenceTile multipliait par 100 une valeur déjà 0-100 (résultat 7000%). Aligne le composant sur la convention 0-100 utilisée partout dans le projet (useGameProgress, ScanCard, ScanDetail, ResultScreen, model.ts). Corrige aussi mockSeed (0.94 → 94, etc.) pour matcher la convention. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6232068208
commit
036bc83618
|
|
@ -3,6 +3,7 @@ import { View, StyleSheet, Text } from 'react-native';
|
||||||
import { ProgressCircle } from '@/components/ui/ProgressCircle';
|
import { ProgressCircle } from '@/components/ui/ProgressCircle';
|
||||||
|
|
||||||
interface ConfidenceTileProps {
|
interface ConfidenceTileProps {
|
||||||
|
/** Confidence as a 0–100 percentage (matches Detection.confidence convention). */
|
||||||
confidence: number;
|
confidence: number;
|
||||||
fillColor: string;
|
fillColor: string;
|
||||||
arcColor?: string;
|
arcColor?: string;
|
||||||
|
|
@ -17,7 +18,8 @@ export function ConfidenceTile({
|
||||||
size = 64,
|
size = 64,
|
||||||
scoreSize = 18,
|
scoreSize = 18,
|
||||||
}: ConfidenceTileProps) {
|
}: ConfidenceTileProps) {
|
||||||
const score = Math.round(confidence * 100);
|
const score = Math.round(confidence);
|
||||||
|
const progress = Math.min(1, Math.max(0, confidence / 100));
|
||||||
const stroke = arcColor ?? darken(fillColor, 0.32);
|
const stroke = arcColor ?? darken(fillColor, 0.32);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -31,7 +33,7 @@ export function ConfidenceTile({
|
||||||
<ProgressCircle
|
<ProgressCircle
|
||||||
size={size}
|
size={size}
|
||||||
strokeWidth={Math.max(4, Math.round(size * 0.09))}
|
strokeWidth={Math.max(4, Math.round(size * 0.09))}
|
||||||
progress={confidence}
|
progress={progress}
|
||||||
color={stroke}
|
color={stroke}
|
||||||
trackColor="rgba(255,255,255,0.35)"
|
trackColor="rgba(255,255,255,0.35)"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ export function buildMockScans(): ScanRecord[] {
|
||||||
customName: 'Vigne du potager',
|
customName: 'Vigne du potager',
|
||||||
detection: {
|
detection: {
|
||||||
result: 'vine',
|
result: 'vine',
|
||||||
confidence: 0.94,
|
confidence: 94,
|
||||||
diseaseClass: 'healthy',
|
diseaseClass: 'healthy',
|
||||||
cepageId: 'cabernet_sauvignon',
|
cepageId: 'cabernet_sauvignon',
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
|
|
@ -41,7 +41,7 @@ export function buildMockScans(): ScanRecord[] {
|
||||||
locationCapturedAt: isoMinusDays(1),
|
locationCapturedAt: isoMinusDays(1),
|
||||||
detection: {
|
detection: {
|
||||||
result: 'vine',
|
result: 'vine',
|
||||||
confidence: 0.81,
|
confidence: 81,
|
||||||
diseaseClass: 'esca',
|
diseaseClass: 'esca',
|
||||||
diseaseSlug: 'esca',
|
diseaseSlug: 'esca',
|
||||||
cepageId: 'merlot',
|
cepageId: 'merlot',
|
||||||
|
|
@ -64,7 +64,7 @@ export function buildMockScans(): ScanRecord[] {
|
||||||
customName: 'Pinot du grand-père',
|
customName: 'Pinot du grand-père',
|
||||||
detection: {
|
detection: {
|
||||||
result: 'vine',
|
result: 'vine',
|
||||||
confidence: 0.88,
|
confidence: 88,
|
||||||
diseaseClass: 'healthy',
|
diseaseClass: 'healthy',
|
||||||
cepageId: 'pinot_noir',
|
cepageId: 'pinot_noir',
|
||||||
timestamp: Date.now() - 2 * 86_400_000,
|
timestamp: Date.now() - 2 * 86_400_000,
|
||||||
|
|
@ -85,7 +85,7 @@ export function buildMockScans(): ScanRecord[] {
|
||||||
locationCapturedAt: isoMinusDays(3),
|
locationCapturedAt: isoMinusDays(3),
|
||||||
detection: {
|
detection: {
|
||||||
result: 'uncertain',
|
result: 'uncertain',
|
||||||
confidence: 0.55,
|
confidence: 55,
|
||||||
diseaseClass: 'leaf_blight',
|
diseaseClass: 'leaf_blight',
|
||||||
diseaseSlug: 'leaf-blight',
|
diseaseSlug: 'leaf-blight',
|
||||||
cepageId: 'chardonnay',
|
cepageId: 'chardonnay',
|
||||||
|
|
@ -107,7 +107,7 @@ export function buildMockScans(): ScanRecord[] {
|
||||||
locationCapturedAt: isoMinusDays(4),
|
locationCapturedAt: isoMinusDays(4),
|
||||||
detection: {
|
detection: {
|
||||||
result: 'vine',
|
result: 'vine',
|
||||||
confidence: 0.76,
|
confidence: 76,
|
||||||
diseaseClass: 'black_rot',
|
diseaseClass: 'black_rot',
|
||||||
diseaseSlug: 'black-rot',
|
diseaseSlug: 'black-rot',
|
||||||
cepageId: 'cabernet_sauvignon',
|
cepageId: 'cabernet_sauvignon',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue