Skip to content
Snippets Groups Projects
Commit 88f5ae56 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Fix display while fetching data

parent 07a99c05
No related branches found
No related tags found
1 merge request!38Resolve "Display current data/chart while fetching new data"
Pipeline #4666 passed
......@@ -8,9 +8,8 @@ import 'package:scrobbles/ui/widgets/abstracts/custom_bar_chart.dart';
class ChartCountsByDay extends CustomBarChart {
final CountsByDayData chartData;
final bool isLoading;
ChartCountsByDay({super.key, required this.chartData, required this.isLoading});
const ChartCountsByDay({super.key, required this.chartData});
final double verticalTicksInterval = 5;
final String verticalAxisTitleSuffix = '%';
......@@ -25,19 +24,17 @@ class ChartCountsByDay extends CustomBarChart {
return Container(
height: this.chartHeight,
child: this.isLoading
? this.placeholder
: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
child: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
);
}
......
......@@ -8,9 +8,8 @@ import 'package:scrobbles/utils/color_extensions.dart';
class ChartCountsByHour extends CustomBarChart {
final CountsByHourData chartData;
final bool isLoading;
ChartCountsByHour({super.key, required this.chartData, required this.isLoading});
const ChartCountsByHour({super.key, required this.chartData});
final double verticalTicksInterval = 5;
final String verticalAxisTitleSuffix = '%';
......@@ -25,19 +24,17 @@ class ChartCountsByHour extends CustomBarChart {
return Container(
height: this.chartHeight,
child: this.isLoading
? this.placeholder
: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
child: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
);
}
......
......@@ -8,9 +8,8 @@ import 'package:scrobbles/utils/color_extensions.dart';
class ChartDiscoveriesArtists extends CustomBarChart {
final DiscoveriesData chartData;
final bool isLoading;
ChartDiscoveriesArtists({super.key, required this.chartData, required this.isLoading});
const ChartDiscoveriesArtists({super.key, required this.chartData});
@override
Widget build(BuildContext context) {
......@@ -22,19 +21,17 @@ class ChartDiscoveriesArtists extends CustomBarChart {
return Container(
height: this.chartHeight,
child: this.isLoading
? this.placeholder
: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
child: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
);
}
......
......@@ -8,9 +8,8 @@ import 'package:scrobbles/utils/color_extensions.dart';
class ChartDiscoveriesTracks extends CustomBarChart {
final DiscoveriesData chartData;
final bool isLoading;
ChartDiscoveriesTracks({super.key, required this.chartData, required this.isLoading});
const ChartDiscoveriesTracks({super.key, required this.chartData});
@override
Widget build(BuildContext context) {
......@@ -22,19 +21,17 @@ class ChartDiscoveriesTracks extends CustomBarChart {
return Container(
height: this.chartHeight,
child: this.isLoading
? this.placeholder
: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
child: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
);
}
......
......@@ -7,9 +7,8 @@ import 'package:scrobbles/ui/widgets/abstracts/custom_bar_chart.dart';
class ChartTimelineCounts extends CustomBarChart {
final TimelineData chartData;
final bool isLoading;
ChartTimelineCounts({super.key, required this.chartData, required this.isLoading});
const ChartTimelineCounts({super.key, required this.chartData});
final double verticalTicksInterval = 50;
......@@ -23,19 +22,17 @@ class ChartTimelineCounts extends CustomBarChart {
return Container(
height: this.chartHeight,
child: this.isLoading
? this.placeholder
: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
child: LayoutBuilder(
builder: (context, constraints) {
final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length;
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
return getBarChart(
barWidth: this.getBarWidth(maxWidth, barsCount),
backgroundColor: Theme.of(context).colorScheme.onSurface,
);
},
),
);
}
......
......@@ -8,9 +8,8 @@ import 'package:scrobbles/utils/color_extensions.dart';
class ChartTimelineEclecticism extends CustomLineChart {
final TimelineData chartData;
final bool isLoading;
ChartTimelineEclecticism({super.key, required this.chartData, required this.isLoading});
const ChartTimelineEclecticism({super.key, required this.chartData});
@override
Widget build(BuildContext context) {
......@@ -24,22 +23,20 @@ class ChartTimelineEclecticism extends CustomLineChart {
return Container(
height: this.chartHeight,
child: this.isLoading
? this.placeholder
: LineChart(
LineChartData(
lineBarsData: getDataEclecticism(),
borderData: getBorderData(),
gridData: getGridData(),
titlesData: getTitlesData(),
lineTouchData: const LineTouchData(enabled: false),
minX: horizontalScale['min'],
maxX: horizontalScale['max'],
maxY: 100,
minY: 0,
),
duration: const Duration(milliseconds: 250),
),
child: LineChart(
LineChartData(
lineBarsData: getDataEclecticism(),
borderData: getBorderData(),
gridData: getGridData(),
titlesData: getTitlesData(),
lineTouchData: const LineTouchData(enabled: false),
minX: horizontalScale['min'],
maxX: horizontalScale['max'],
maxY: 100,
minY: 0,
),
duration: const Duration(milliseconds: 250),
),
);
}
......
......@@ -7,38 +7,33 @@ import 'package:scrobbles/utils/color_extensions.dart';
class ChartTopArtists extends StatelessWidget {
final TopArtistsData chartData;
final bool isLoading;
ChartTopArtists({super.key, required this.chartData, required this.isLoading});
final Widget placeholder = Text('⏳');
const ChartTopArtists({super.key, required this.chartData});
@override
Widget build(BuildContext context) {
return AspectRatio(
aspectRatio: 2.1,
child: this.isLoading
? this.placeholder
: Row(
children: <Widget>[
Expanded(
child: AspectRatio(
aspectRatio: 1,
child: PieChart(
PieChartData(
sections: getPieChartData(),
sectionsSpace: 2,
centerSpaceRadius: 40,
startDegreeOffset: -45,
pieTouchData: PieTouchData(enabled: false),
borderData: FlBorderData(show: false),
),
),
),
child: Row(
children: <Widget>[
Expanded(
child: AspectRatio(
aspectRatio: 1,
child: PieChart(
PieChartData(
sections: getPieChartData(),
sectionsSpace: 2,
centerSpaceRadius: 40,
startDegreeOffset: -45,
pieTouchData: PieTouchData(enabled: false),
borderData: FlBorderData(show: false),
),
buildLegendWidget(),
],
),
),
),
buildLegendWidget(),
],
),
);
}
......
......@@ -5,10 +5,8 @@ import 'package:scrobbles/models/statistics_global.dart';
class ContentStatisticsGlobal extends StatelessWidget {
final StatisticsGlobalData statistics;
final bool isLoading;
const ContentStatisticsGlobal(
{super.key, required this.statistics, required this.isLoading});
const ContentStatisticsGlobal({super.key, required this.statistics});
@override
Widget build(BuildContext context) {
......@@ -24,11 +22,9 @@ class ContentStatisticsGlobal extends StatelessWidget {
style: textTheme.bodyMedium,
).tr(
namedArgs: {
'count': this.isLoading
? placeholder
: (this.statistics.totalCount != null
? this.statistics.totalCount.toString()
: ''),
'count': this.statistics.totalCount != null
? this.statistics.totalCount.toString()
: placeholder,
},
),
Text(
......@@ -36,11 +32,9 @@ class ContentStatisticsGlobal extends StatelessWidget {
style: textTheme.bodyMedium,
).tr(
namedArgs: {
'datetime': this.isLoading
? placeholder
: (this.statistics.lastScrobble != null
? DateFormat().format(this.statistics.lastScrobble ?? DateTime.now())
: ''),
'datetime': this.statistics.lastScrobble != null
? DateFormat().format(this.statistics.lastScrobble ?? DateTime.now())
: placeholder,
},
),
],
......
......@@ -5,15 +5,12 @@ import 'package:scrobbles/models/statistics_recent.dart';
class ContentStatisticsRecent extends StatelessWidget {
final StatisticsRecentData statistics;
final bool isLoading;
const ContentStatisticsRecent(
{super.key, required this.statistics, required this.isLoading});
const ContentStatisticsRecent({super.key, required this.statistics});
@override
Widget build(BuildContext context) {
final TextTheme textTheme = Theme.of(context).primaryTextTheme;
const String placeholder = '⏳';
return Column(
mainAxisSize: MainAxisSize.min,
......@@ -28,13 +25,9 @@ class ContentStatisticsRecent extends StatelessWidget {
style: textTheme.bodyMedium,
).tr(
namedArgs: {
'count': this.isLoading ? placeholder : this.statistics.recentCount.toString(),
'artistsCount': this.isLoading
? placeholder
: this.statistics.firstPlayedArtistsCount.toString(),
'tracksCount': this.isLoading
? placeholder
: this.statistics.firstPlayedTracksCount.toString(),
'count': this.statistics.recentCount.toString(),
'artistsCount': this.statistics.firstPlayedArtistsCount.toString(),
'tracksCount': this.statistics.firstPlayedTracksCount.toString(),
},
),
],
......
......@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
publish_to: 'none'
version: 0.0.36+36
version: 0.0.37+37
environment:
sdk: '^3.0.0'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment