import 'package:flutter/material.dart'; import 'package:space_traders/models/agent_model.dart'; import 'package:space_traders/providers/agent_provider.dart'; import 'package:space_traders/models/ship_model.dart'; import 'package:space_traders/providers/ship_provider.dart'; class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State { final agent = AgentProvider(); ShipProvider shipProvider = ShipProvider(); Future> getShips() async { List ships = await shipProvider.getShips(); return ships; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text('SpaceTraders API'), ), body: Container( decoration: BoxDecoration( color: Colors.grey[300], ), child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Card( color: Colors.white, child: FutureBuilder( future: agent.getAgent(), builder: (context, snapshot) { if (snapshot.hasData) { final agent = snapshot.data!; return Text('Username : ${agent.symbol} -- Credits : ${agent.credits}'); } else if (snapshot.hasError) { return Text('Error: ${snapshot.error}'); } else { return CircularProgressIndicator(); } }, ), ), Card( color: Colors.white, child: Align( alignment: Alignment.center, child: Text( 'Ships', style: TextStyle( fontSize: 24, fontWeight: FontWeight.bold, ), ), ) ), Card( color: Colors.white, child: FutureBuilder>( future: getShips(), builder: (BuildContext context, AsyncSnapshot> snapshot) { if (snapshot.hasData) { List ships = snapshot.data!; return Column( children: ships.map((ship) { return Card( child: ListTile( title: Text(ship.symbol ?? 'N/A'), ), ); }).toList(), ); }else if (snapshot.hasError) { return Text('Error: ${snapshot.error}'); }else { return CircularProgressIndicator(); } }, ), ), ], ), ), ), ); } }