|
@@ -4,10 +4,17 @@ import 'package:flutter/material.dart';
|
|
|
import 'package:http/http.dart' as http;
|
|
import 'package:http/http.dart' as http;
|
|
|
|
|
|
|
|
import '../config.dart';
|
|
import '../config.dart';
|
|
|
|
|
+import './spinner.dart';
|
|
|
|
|
|
|
|
class Artists extends StatefulWidget {
|
|
class Artists extends StatefulWidget {
|
|
|
|
|
+ final void Function(String) onSelect;
|
|
|
|
|
+
|
|
|
|
|
+ Artists({
|
|
|
|
|
+ @required this.onSelect,
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
@override
|
|
@override
|
|
|
- _ArtistsWidgetState createState() => _ArtistsWidgetState();
|
|
|
|
|
|
|
+ _ArtistsWidgetState createState() => _ArtistsWidgetState(onSelect: this.onSelect);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Future<List<String>> fetchArtists() async {
|
|
Future<List<String>> fetchArtists() async {
|
|
@@ -23,6 +30,12 @@ Future<List<String>> fetchArtists() async {
|
|
|
class _ArtistsWidgetState extends State<Artists> {
|
|
class _ArtistsWidgetState extends State<Artists> {
|
|
|
Future<List<String>> artists;
|
|
Future<List<String>> artists;
|
|
|
|
|
|
|
|
|
|
+ final void Function(String) onSelect;
|
|
|
|
|
+
|
|
|
|
|
+ _ArtistsWidgetState({
|
|
|
|
|
+ @required this.onSelect,
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
@override
|
|
@override
|
|
|
void initState() {
|
|
void initState() {
|
|
|
super.initState();
|
|
super.initState();
|
|
@@ -37,12 +50,24 @@ class _ArtistsWidgetState extends State<Artists> {
|
|
|
if (snapshot.hasData) {
|
|
if (snapshot.hasData) {
|
|
|
return ListView(
|
|
return ListView(
|
|
|
padding: EdgeInsets.only(left: 8, right: 8),
|
|
padding: EdgeInsets.only(left: 8, right: 8),
|
|
|
- children: snapshot.data.map((artist) => Container(
|
|
|
|
|
- height: 32,
|
|
|
|
|
- color: Colors.white,
|
|
|
|
|
- child: Align(
|
|
|
|
|
- alignment: Alignment.centerLeft,
|
|
|
|
|
- child: Text(artist.length == 0 ? 'Unknown artist' : artist),
|
|
|
|
|
|
|
+ children: snapshot.data.map((artist) => InkWell(
|
|
|
|
|
+ onTap: () {
|
|
|
|
|
+ onSelect(artist);
|
|
|
|
|
+ },
|
|
|
|
|
+ child: SizedBox(
|
|
|
|
|
+ height: 40,
|
|
|
|
|
+ width: MediaQuery.of(context).size.width,
|
|
|
|
|
+ child: Container(
|
|
|
|
|
+ child: Align(
|
|
|
|
|
+ alignment: Alignment.centerLeft,
|
|
|
|
|
+ child: Text(
|
|
|
|
|
+ artist.length == 0 ? 'Unknown artist' : artist,
|
|
|
|
|
+ style: TextStyle(
|
|
|
|
|
+ fontSize: 18,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
),
|
|
),
|
|
|
)).toList(),
|
|
)).toList(),
|
|
|
);
|
|
);
|
|
@@ -51,7 +76,7 @@ class _ArtistsWidgetState extends State<Artists> {
|
|
|
return Text("${snapshot.error}");
|
|
return Text("${snapshot.error}");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return CircularProgressIndicator();
|
|
|
|
|
|
|
+ return CenterSpinner();
|
|
|
},
|
|
},
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|