import React, { useState, useCallback } from 'react'; import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Textarea } from "@/components/ui/textarea" import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "@/components/ui/card" import { Alert, AlertDescription } from "@/components/ui/alert" import { Loader2 } from "lucide-react" // This should be stored in an environment variable in a real application const API_KEY = 'sk-ant-api03-AyP...hgAA'; const generateAPIIdea = async (input) => { const response = await fetch('https://api.example.com/generate-idea', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${API_KEY}` }, body: JSON.stringify(input) }); if (!response.ok) { throw new Error('Failed to generate idea'); } const data = await response.json(); return data.idea; }; const SEOContentIdeaTool = () => { const [formData, setFormData] = useState({ industry: '', blogIdeas: '', targetAudience: '', contentType: '' }); const [results, setResults] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const handleInputChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const generateIdeas = useCallback(async (count = 3) => { setLoading(true); setError(''); if (Object.values(formData).some(value => !value.trim())) { setError('Please fill in all fields before generating ideas.'); setLoading(false); return; } try { const newIdeas = await Promise.all( Array(count).fill().map(() => generateAPIIdea(formData)) ); setResults(prev => [...prev, ...newIdeas]); } catch (err) { setError('Failed to generate ideas. Please try again.'); console.error('API Error:', err); } finally { setLoading(false); } }, [formData]); const handleSubmit = (e) => { e.preventDefault(); setResults([]); generateIdeas(); }; return ( AI-Powered SEO Content Idea Generator Generate content ideas using advanced language models
{['industry', 'blogIdeas', 'targetAudience', 'contentType'].map((field) => (
{field === 'blogIdeas' ? (