Add: getting products from API
This commit is contained in:
@@ -3,8 +3,10 @@ import 'package:flutter_markdown/flutter_markdown.dart';
|
||||
import 'package:gymlink_module_web/components/app_bar.dart';
|
||||
import 'package:gymlink_module_web/components/heading.dart';
|
||||
import 'package:gymlink_module_web/components/order_confirm_item_card.dart';
|
||||
import 'package:gymlink_module_web/interfaces/items.dart';
|
||||
import 'package:gymlink_module_web/pages/order_history.dart';
|
||||
import 'package:gymlink_module_web/providers/cart.dart';
|
||||
import 'package:gymlink_module_web/tools/items.dart';
|
||||
import 'package:gymlink_module_web/tools/prefs.dart';
|
||||
import 'package:gymlink_module_web/tools/routes.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -56,24 +58,26 @@ class OrderConfirmationPage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _OrderConfirmationPageState extends State<OrderConfirmationPage> {
|
||||
List<Map<String, dynamic>> cartItems = [];
|
||||
int totalPrice = 0;
|
||||
List<GymItem> cartItems = [];
|
||||
double totalPrice = 0;
|
||||
List<GymItem> gymCart = [];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
getCart().then((value) {
|
||||
setState(() {
|
||||
cartItems = value.map((element) {
|
||||
final item = cart.firstWhere((e) => e['id'] == element['id']);
|
||||
return {...item, 'count': element['count'] as int};
|
||||
}).toList();
|
||||
totalPrice = cartItems.fold(
|
||||
0,
|
||||
(sum, item) =>
|
||||
sum + int.parse(item['price']) * item['count'] as int);
|
||||
});
|
||||
});
|
||||
Future.microtask(() => getCart().then((value) async {
|
||||
final items = await getItems(context);
|
||||
setState(() {
|
||||
gymCart = items;
|
||||
cartItems = value.map((element) {
|
||||
final item = gymCart.firstWhere((e) => e.id == element['id']);
|
||||
item.localCount = element['count'] as int;
|
||||
return item;
|
||||
}).toList();
|
||||
totalPrice = cartItems.fold(
|
||||
0, (sum, item) => sum + item.price * item.localCount);
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
Future<void> _goToPage() async {
|
||||
@@ -101,13 +105,13 @@ class _OrderConfirmationPageState extends State<OrderConfirmationPage> {
|
||||
itemBuilder: (context, index) {
|
||||
final item = cartItems[index];
|
||||
return OrderConfirmItemCard(
|
||||
name: item['name'],
|
||||
name: item.title,
|
||||
image: Image(
|
||||
image: AssetImage('assets/${item['image']}'),
|
||||
image: NetworkImage(item.images[0].url),
|
||||
width: 50,
|
||||
height: 50),
|
||||
price: double.parse(item['price']),
|
||||
count: item['count'],
|
||||
price: item.price,
|
||||
count: item.localCount,
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user