// ignore_for_file: avoid_print import 'package:fluentui_system_icons/fluentui_system_icons.dart'; import 'package:flutter/material.dart'; import 'package:music_web_player/api.dart'; import 'package:music_web_player/config.dart'; void main() { loadConfig(); runApp(const PlayerApp()); } class PlayerApp extends StatelessWidget { const PlayerApp({Key? key}) : super(key: key); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Music player', debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.green, brightness: Brightness.dark, ), home: const AppHome(), ); } } class AppHome extends StatefulWidget { const AppHome({Key? key}) : super(key: key); @override State createState() => _AppHomeState(); } class _AppHomeState extends State { var error = false; List? musics; Future load() async { try { setState(() => error = false); musics = await API.getList(); setState(() {}); } catch (e, s) { print("$e $s"); setState(() => error = true); } } @override void initState() { super.initState(); load(); } @override Widget build(BuildContext context) { return Scaffold(body: buildBody(context)); } Widget buildBody(BuildContext context) { if (error) { return Center( child: IntrinsicHeight( child: Column( children: [ const Icon(FluentIcons.warning_24_regular, size: 50), const SizedBox(height: 50), const Text("Failed to load musics list!"), const SizedBox(height: 50), ElevatedButton( onPressed: load, child: Text("Try again".toUpperCase()), ), ], ), )); } if (musics == null) { return const Center(child: CircularProgressIndicator()); } if (musics!.isEmpty) { return const Center(child: Text("Musics list is empty!")); } // TODO : go on return Text(musics![0].artist); } }