TIF_E41211491/lib/app/modules/keranjang/controllers/keranjang_controller.dart

86 lines
2.0 KiB
Dart

// ignore_for_file: invalid_use_of_protected_member
import 'package:dikantin/app/data/models/keranjang_model.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class KeranjangController extends GetxController {
//TODO: Implement KeranjangController
late AnimationController _controller;
late DataKeranjang dataKeranjang;
final isLoading = false.obs;
final cartItems = <DataKeranjang>[].obs;
List<DataKeranjang> get cartItem => cartItems;
// Fungsi untuk menghapus produk dari keranjang
void removeFromCart(String productName) {
cartItems.removeWhere((item) => item.nama == productName);
}
// Menghitung total jumlah item dalam keranjang
int get totalItemsInCart {
return cartItems.fold(0, (sum, item) => sum + item.qty!);
}
// Menghitung total harga dalam keranjang
double get totalCartPrice {
return cartItems.fold(0, (sum, item) => sum + (item.qty! * item.harga!));
}
// void removeFromCart(DataKeranjang product) {
// cartItems.remove(product);
// }
double get totalAmount {
return cartItems.fold(0, (sum, item) => sum + item.harga!);
}
final count = 0.obs;
@override
void onInit() {
super.onInit();
// search('');
}
@override
void onReady() {
super.onReady();
}
@override
void onClose() {
super.onClose();
}
void increment() => count.value++;
void startAnimation() {
_controller.forward();
}
void setLoading(bool value) {
isLoading.value = value; // Metode untuk mengatur status isLoading
}
Future<void> refreshData() async {
await search('');
}
Future<void> search(String keyword) async {
try {
setLoading(
true); // Set isLoading menjadi true saat pemanggilan API dimulai
cartItems.assignAll(cartItems);
print(cartItems);
} catch (e) {
print('Error during search: $e');
cartItems.clear();
} finally {
setLoading(
false); // Set isLoading menjadi false saat pemanggilan API selesai
}
}
}