Skip to content

Commit 532170e

Browse files
refactor
1 parent d57eb2a commit 532170e

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

lib/Presentation/Screens/HomePage/UI/home_page.dart

+31-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import '../../../../Data/Models/home_page_model.dart';
2+
13
import '../../../../Data/Repository/home_page_repo.dart';
2-
import '../../../Components/future_builder.dart';
34
import 'package:flutter/material.dart';
45

56
class MyHomePage extends StatefulWidget {
@@ -12,15 +13,43 @@ class MyHomePage extends StatefulWidget {
1213
}
1314

1415
class _MyHomePageState extends State<MyHomePage> {
16+
late Future<DemoModel> futureDemoModel;
17+
18+
@override
19+
void initState() {
20+
futureDemoModel = DemoRepo().fetchData();
21+
super.initState();
22+
}
23+
1524
@override
1625
Widget build(BuildContext context) {
1726
return Scaffold(
1827
appBar: AppBar(
1928
title: Text(widget.title),
2029
),
2130
body: Center(
22-
child: FutureBuilderWidget(futureCall: DemoRepo().fetchData()),
31+
child: FutureBuilder(
32+
future: futureDemoModel,
33+
builder: (BuildContext context, snapshot) {
34+
if (snapshot.hasData) {
35+
return buildDataLayout(snapshot.data as DemoModel);
36+
} else if (snapshot.hasError) {
37+
return Text(snapshot.error.toString());
38+
} else if (snapshot.connectionState == ConnectionState.waiting) {
39+
return const Text('Waiting....');
40+
} else if (snapshot.connectionState == ConnectionState.none) {
41+
return const Text('Cannot establish connection with the server.');
42+
}
43+
return const Center(child: CircularProgressIndicator());
44+
},
45+
),
2346
),
2447
);
2548
}
49+
50+
Widget buildDataLayout(DemoModel data) => ListTile(
51+
title: Text(data.userId.toString()),
52+
subtitle: Text(data.title),
53+
trailing: Text(data.completed.toString()),
54+
);
2655
}

0 commit comments

Comments
 (0)