// Tracks.jsx — debut LP: cover (left) + tracklist (right) + streaming links
const DK_ALBUM_ID = '2113073239';
function Tracks() {
// [num, title, dur, bandcampTrackId]
const tracks = [
['01', 'El Despertar de los Antiguos', '3:24', '1421693746'],
['02', 'La Profecía del Cuervo', '5:49', '3874884184'],
['03', 'Sangre del Norte', '5:52', '3488101813'],
['04', 'Lanza del Alba', '4:42', '1645518300'],
['05', 'Brumas de Khaal', '5:24', '467347542'],
['06', 'El Dragón de Hierro', '4:28', '1218038611'],
['07', 'La Batalla del Yermo', '6:43', '890275537'],
['08', 'El Lamento del Traidor', '6:34', '1434923620'],
['09', 'Hijos del Yermo', '5:13', '459408355'],
['10', 'El Último Drakhar', '7:07', '338401151'],
];
const [openId, setOpenId] = React.useState(null);
return (
{tracks.map(([num, title, dur, tid], i) => (
setOpenId(o => o === i ? null : i)} />
))}
);
}
// Album cover — real artwork
function AlbumCover() {
return (
);
}
function TrackRow({ num, title, dur, trackId, open, onToggle }) {
const [h, setH] = React.useState(false);
const active = h || open;
const src = 'https://bandcamp.com/EmbeddedPlayer/album=' + DK_ALBUM_ID +
'/size=small/bgcol=111111/linkcol=c8a84b/track=' + trackId + '/transparent=true/';
return (
setH(true)} onMouseLeave={() => setH(false)}
role="button" aria-expanded={open} title={open ? 'Cerrar' : 'Reproducir'}
style={{
display: 'flex', alignItems: 'center', gap: 20, padding: '16px 22px', cursor: 'pointer',
background: active ? 'rgba(200,168,75,0.06)' : 'var(--surface)',
transition: 'background var(--dur) var(--ease)',
}}>
{open ? '‖' : (h ? '▸' : num)}
{title}
{dur}
);
}
function PlatformLinks() {
const platforms = [
{ label: 'YouTube', href: 'https://youtube.com/@drakharon', ready: true },
{ label: 'Bandcamp', href: 'https://drakharon.bandcamp.com', ready: true },
];
return (
);
}
function PlatformBtn({ label, href, ready }) {
const [h, setH] = React.useState(false);
if (!ready) {
return (
{label}
Próximamente
);
}
return (
setH(true)} onMouseLeave={() => setH(false)} style={{
display: 'flex', alignItems: 'center', justifyContent: 'center',
fontFamily: 'var(--font-display)', fontWeight: 600, textTransform: 'uppercase',
letterSpacing: '0.18em', fontSize: 12, padding: '15px 12px', cursor: 'pointer',
border: '1px solid var(--gold)', borderRadius: 0,
background: h ? 'var(--gold)' : 'transparent',
color: h ? 'var(--on-gold)' : 'var(--gold)',
transition: 'background var(--dur) var(--ease), color var(--dur) var(--ease)',
}}>{label}
);
}
Object.assign(window, { Tracks, AlbumCover, TrackRow, PlatformLinks, PlatformBtn });