import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../theme/theme_extension.dart'; import 'library_providers.dart'; import 'widgets/track_row.dart'; class AlbumDetailScreen extends ConsumerWidget { const AlbumDetailScreen({required this.id, super.key}); final String id; @override Widget build(BuildContext context, WidgetRef ref) { final fs = Theme.of(context).extension()!; return Scaffold( appBar: AppBar(), backgroundColor: fs.obsidian, body: ref.watch(albumProvider(id)).when( error: (e, _) => Center(child: Text('$e', style: TextStyle(color: fs.error))), loading: () => const Center(child: CircularProgressIndicator()), data: (r) => ListView(children: [ Padding( padding: const EdgeInsets.all(16), child: Row(children: [ Container(width: 96, height: 96, color: fs.slate), const SizedBox(width: 16), Expanded(child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(r.album.title, style: TextStyle( color: fs.parchment, fontFamily: fs.display.fontFamily, fontSize: 22, )), Text(r.album.artistName, style: TextStyle(color: fs.ash)), ], )), Container( width: 48, height: 48, decoration: BoxDecoration(color: fs.accent, shape: BoxShape.circle), child: IconButton( icon: Icon(Icons.play_arrow, color: fs.parchment), onPressed: () { /* play wired in Task 18 */ }, ), ), // LikeButton goes here in Task 16. ]), ), for (final t in r.tracks) TrackRow(track: t, onTap: () { /* play wired in Task 18 */ }), ]), ), ); } }