import React from 'react'; import { fmtWon } from '../lottoUtils'; const PurchasePanel = ({ records, stats, loading, formOpen, form, formSaving, formError, editId, onFormOpen, onFormClose, onFormChange, onFormSubmit, onEditStart, onDelete, }) => { const winRate = stats?.total_records > 0 ? ((stats.prize_count / stats.total_records) * 100).toFixed(1) : '0.0'; const netColor = (stats?.net ?? 0) >= 0 ? 'is-pos' : 'is-neg'; return (

Purchase Tracker

구매 기록

구매 내역 기록 및 수익률 추적

{loading && 로딩 중}
{/* 통계 바 */} {stats && stats.total_records > 0 && (
{fmtWon(stats.total_invested)} 총 투자
{fmtWon(stats.total_prize)} 총 당첨금
{(stats.net ?? 0) >= 0 ? '+' : ''}{fmtWon(stats.net)} 순손익
{stats.return_rate?.toFixed(1)}% 회수율
{winRate}% 당첨률
{stats.max_prize > 0 && (
{fmtWon(stats.max_prize)} 최대 당첨금
)}
)} {/* 입력 폼 */} {formOpen && (

{editId != null ? '기록 수정' : '구매 기록 추가'}

{formError && (

{formError}

)}
)} {/* 기록 목록 */} {records.length === 0 ? (

구매 기록이 없습니다.

) : (
회차 투자금 당첨금 손익 채점 메모
{records.map((rec) => { const net = (rec.prize ?? 0) - (rec.amount ?? 0); return (
{rec.draw_no}회 {fmtWon(rec.amount)} 0 ? 'is-prize' : ''}> {fmtWon(rec.prize)} = 0 ? 'is-pos' : 'is-neg'}> {net >= 0 ? '+' : ''}{fmtWon(net)} {(rec.results || []).map((r, i) => ( {r.correct} ))} {(rec.results || []).some((r) => r.correct >= 4) && ( 🚨 4등↑ 확인 필요 )} {rec.note || '-'}
); })}
)}
); }; export default PurchasePanel;