last 16-10-2025
This commit is contained in:
commit
5fdfdd9302
146 files changed
+10525
No files matched your search
@@ -0,0 +1,42 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class AppColors {
|
||||
bool darkTheme = false;
|
||||
|
||||
BaseController baseCtrl = Get.put(BaseController());
|
||||
|
||||
AppColors() {
|
||||
baseCtrl.isDarkModeEnabled.listen((value) {
|
||||
changeColors();
|
||||
});
|
||||
}
|
||||
|
||||
void changeColors() {
|
||||
if (darkTheme == true) {
|
||||
dark = Colors.white;
|
||||
} else {
|
||||
dark = Colors.black;
|
||||
}
|
||||
}
|
||||
|
||||
static Color dark = Colors.black;
|
||||
static const Color background = Color(0xFFffffff);
|
||||
|
||||
}
|
||||
|
||||
class BaseController extends GetxController {
|
||||
RxBool isDarkModeEnabled = false.obs;
|
||||
RxInt currentIndex = 0.obs;
|
||||
String? fbUserId;
|
||||
|
||||
RxMap<String, dynamic> filterData = <String, dynamic>{}.obs;
|
||||
|
||||
void updateFilterData(Map<String, dynamic> newData) {
|
||||
filterData.assignAll(newData);
|
||||
}
|
||||
|
||||
Map<String, dynamic> getFilterData() {
|
||||
return filterData;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class AppAssets {
|
||||
// SVG icons
|
||||
static const String logo = 'assets/images/wordpresslogo.jpeg';
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:wordpress/providers/api_controller.dart';
|
||||
import 'package:wordpress/viewmodel/cart_screen.dart';
|
||||
|
||||
class CartButtonHelper {
|
||||
static Future<void> addToCartAndNavigate({
|
||||
required BuildContext context,
|
||||
required WidgetRef ref,
|
||||
required product,
|
||||
required int quantity,
|
||||
String? selectedColor,
|
||||
String? selectedWeight,
|
||||
}) async {
|
||||
try {
|
||||
// Show loading indicator
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 20,
|
||||
height: 20,
|
||||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
SizedBox(width: 12),
|
||||
Text('Adding to cart...'),
|
||||
],
|
||||
),
|
||||
duration: Duration(seconds: 1),
|
||||
),
|
||||
);
|
||||
|
||||
final cartHelper = ref.read(cartHelperProvider);
|
||||
int? cartId = ref.read(cartIdProvider);
|
||||
|
||||
// Create cart if it doesn't exist
|
||||
if (cartId == null) {
|
||||
cartId = await cartHelper.createCart();
|
||||
ref.read(cartIdProvider.notifier).state = cartId;
|
||||
}
|
||||
|
||||
// Add item to cart with attributes
|
||||
await cartHelper.addToCart(
|
||||
productId: product.id ?? 0,
|
||||
quantity: quantity,
|
||||
// color: selectedColor,
|
||||
// size: selectedWeight,
|
||||
);
|
||||
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).hideCurrentSnackBar();
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Added $quantity x ${product.name} to cart"),
|
||||
backgroundColor: Colors.green[600],
|
||||
action: SnackBarAction(
|
||||
label: "View Cart",
|
||||
textColor: Colors.white,
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => const CartScreen()),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).hideCurrentSnackBar();
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text('Error adding to cart: $e'),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user