import React, { useState, useEffect } from 'react'; import { aiCardApi } from '../services/api'; import '../styles/CollectionAnalysis.css'; interface AnalysisData { total_cards: number; unique_cards: number; rarity_distribution: Record; collection_score: number; recommendations: string[]; } interface CollectionAnalysisProps { userDid: string; } export const CollectionAnalysis: React.FC = ({ userDid }) => { const [analysis, setAnalysis] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const loadAnalysis = async () => { if (!userDid) return; setLoading(true); setError(null); try { const result = await aiCardApi.analyzeCollection(userDid); setAnalysis(result); } catch (err) { // Collection analysis failed setError('AI分析機能を利用するにはai.gptサーバーが必要です。基本機能はai.cardサーバーのみで利用できます。'); } finally { setLoading(false); } }; useEffect(() => { loadAnalysis(); }, [userDid]); if (loading) { return (

AI分析中...

); } if (error) { return (

{error}

); } if (!analysis) { return (

分析データがありません

); } return (

🧠 AI コレクション分析

{analysis.total_cards}
総カード数
{analysis.unique_cards}
ユニークカード
{analysis.collection_score}
コレクションスコア

レアリティ分布

{Object.entries(analysis.rarity_distribution).map(([rarity, count]) => (
{rarity}
{count}
))}
{analysis.recommendations && analysis.recommendations.length > 0 && (

🎯 AI推奨

    {analysis.recommendations.map((rec, index) => (
  • {rec}
  • ))}
)}
); };