diff --git a/src/pages/lotto/evolver/WinnerCard.jsx b/src/pages/lotto/evolver/WinnerCard.jsx new file mode 100644 index 0000000..60c6a0a --- /dev/null +++ b/src/pages/lotto/evolver/WinnerCard.jsx @@ -0,0 +1,56 @@ +import React from 'react'; +import { + RadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, + Radar, ResponsiveContainer, Legend, +} from 'recharts'; + +const DAY_NAMES = ['월', '화', '수', '목', '금', '토']; +const METRIC_NAMES = ['freq', 'finger', 'gap', 'cooccur', 'divers']; + +export default function WinnerCard({ winner, previousBase, updateReason, drawNo }) { + if (!winner) { + return ( +
+

🏆 Winner

+

아직 회고 결과가 없습니다.

+
+ ); + } + + const dayName = DAY_NAMES[winner.day_of_week] || '?'; + const W = winner.weight || []; + const prev = previousBase || [0.2, 0.2, 0.2, 0.2, 0.2]; + + const data = METRIC_NAMES.map((name, i) => ({ + metric: name, + winner: W[i] || 0, + previous: prev[i] || 0, + })); + + return ( +
+
+

🏆 Winner: {dayName}요일

+ {updateReason && {updateReason}} +
+
+ 최고 적중 {winner.max_correct}개 + 평균 점수 {(winner.avg_score || 0).toFixed(2)} + {winner.n_picks}/5 picks + {drawNo && {drawNo}회차} +
+
+ + + + + + + + + + +
+
+ ); +}