import 'dart:convert'; import 'package:flutter/material.dart'; import '../../../models/timeline.dart'; import '../../../network/scrobbles_api.dart'; import '../../../ui/widgets/error.dart'; import '../../../ui/widgets/main_screen/timeline_content.dart'; class ChartTimelineCard extends StatelessWidget { const ChartTimelineCard({super.key}); @override Widget build(BuildContext context) { final int daysCount = 14; late Future<TimelineData> futureTimeline = ScrobblesApi.fetchTimeline(daysCount); return FutureBuilder<TimelineData>( future: futureTimeline, builder: (context, snapshot) { if (snapshot.hasError) { return ShowErrorWidget(message: '${snapshot.error}'); } return Card( elevation: 2, shadowColor: Theme.of(context).colorScheme.shadow, color: Theme.of(context).colorScheme.surface, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all( Radius.circular(8), ), ), child: Padding( padding: const EdgeInsets.all(8.0), child: ChartTimelineCardContent( daysCount: daysCount, chartData: snapshot.hasData ? TimelineData.fromJson(jsonDecode(snapshot.data.toString())) : TimelineData.createEmpty(), isLoading: !snapshot.hasData, ), ), ); }, ); } }