import { useState } from 'react'
import { useSpotify } from '../../contexts/SpotifyContext.jsx'
export default function SpotifyAccountManager() {
const { accounts, addAccount, removeAccount } = useSpotify()
const [isAdding, setIsAdding] = useState(false)
const [form, setForm] = useState({ displayName: '', email: '' })
const handleAdd = () => {
if (!form.email) return
addAccount({
id: `spotify-${Date.now()}`,
email: form.email,
displayName: form.displayName || form.email.split('@')[0],
addedAt: new Date().toISOString(),
})
setForm({ displayName: '', email: '' })
setIsAdding(false)
}
return (
🎵 Spotify Accounts
{isAdding && (
)}
{accounts.length === 0 ? (
No Spotify accounts
) : (
accounts.map(account => (
{account.displayName}
{account.email}
))
)}
)
}
const styles = {
container: {
background: 'var(--glass-bg)',
backdropFilter: 'blur(var(--glass-blur))',
WebkitBackdropFilter: 'blur(var(--glass-blur))',
border: '1px solid rgba(255, 255, 255, 0.1)',
borderRadius: 'var(--radius-lg)',
padding: 14,
display: 'flex',
flexDirection: 'column',
gap: 10,
},
header: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
paddingBottom: 8,
borderBottom: '1px solid rgba(255, 255, 255, 0.1)',
},
title: {
fontSize: 12,
fontWeight: 700,
color: 'var(--text)',
},
form: {
display: 'flex',
flexDirection: 'column',
gap: 8,
padding: 10,
background: 'rgba(29, 185, 84, 0.08)',
borderRadius: 'var(--radius)',
border: '1px solid rgba(29, 185, 84, 0.2)',
},
input: {
padding: '8px 10px',
background: 'rgba(255, 255, 255, 0.05)',
border: '1px solid rgba(255, 255, 255, 0.1)',
borderRadius: 'var(--radius)',
color: 'var(--text)',
fontSize: 12,
fontFamily: 'var(--font-ui)',
},
formButtons: {
display: 'flex',
gap: 8,
},
list: {
display: 'flex',
flexDirection: 'column',
gap: 6,
maxHeight: 300,
overflowY: 'auto',
},
empty: {
fontSize: 11,
color: 'var(--muted)',
textAlign: 'center',
padding: 12,
},
item: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
padding: 8,
background: 'rgba(29, 185, 84, 0.08)',
border: '1px solid rgba(29, 185, 84, 0.15)',
borderRadius: 'var(--radius)',
},
itemInfo: {
flex: 1,
minWidth: 0,
},
itemName: {
fontSize: 12,
fontWeight: 600,
color: 'var(--text)',
},
itemEmail: {
fontSize: 10,
color: 'var(--muted)',
marginTop: 2,
},
}