import { useState, useEffect } from 'react'; import { X, Settings, Save } from 'lucide-react'; export default function ConfigModal({ isOpen, onClose, onSave, initialConfig }) { const [spotifyId, setSpotifyId] = useState(''); const [spotifySecret, setSpotifySecret] = useState(''); const [aiProvider, setAiProvider] = useState('openai'); const [aiApiKey, setAiApiKey] = useState(''); const [aiModel, setAiModel] = useState('gpt-3.5-turbo'); useEffect(() => { if (initialConfig) { setSpotifyId(initialConfig.spotifyId || ''); setSpotifySecret(initialConfig.spotifySecret || ''); setAiProvider(initialConfig.aiProvider || 'openai'); setAiApiKey(initialConfig.aiApiKey || ''); setAiModel(initialConfig.aiModel || 'gpt-3.5-turbo'); } }, [initialConfig, isOpen]); if (!isOpen) return null; const handleSave = () => { onSave({ spotifyId, spotifySecret, aiProvider, aiApiKey, aiModel }); onClose(); }; return (

Configuration

Spotify Credentials

Create an app at Spotify Dashboard to get these.

setSpotifyId(e.target.value)} placeholder="Enter Spotify Client ID" className="w-full bg-black/40 border border-white/20 rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-spotify-green transition-colors" />
setSpotifySecret(e.target.value)} placeholder="Enter Spotify Client Secret" className="w-full bg-black/40 border border-white/20 rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-spotify-green transition-colors" />

AI Configuration

setAiApiKey(e.target.value)} placeholder="sk-..." className="w-full bg-black/40 border border-white/20 rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-purple-400 transition-colors" />
setAiModel(e.target.value)} placeholder="e.g. gpt-4, claude-3-opus" className="w-full bg-black/40 border border-white/20 rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-purple-400 transition-colors" />
); }