Initial commit of Flutter project
This commit is contained in:
@@ -1,43 +1,34 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:glowwheels/helpers/shopid_helper.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../models/order_model.dart';
|
||||
|
||||
import 'package:glowwheels/models/order_model.dart';
|
||||
import '../provider/order_provider.dart';
|
||||
import '../widgets/order_card.dart';
|
||||
|
||||
class OrdersScreen extends StatelessWidget {
|
||||
final TextStyle labelStyle = TextStyle(fontWeight: FontWeight.w500);
|
||||
final TextStyle valueStyle = TextStyle(fontWeight: FontWeight.normal);
|
||||
List<Order> orders = [
|
||||
Order(
|
||||
customerName: "Ankit Ghosh",
|
||||
mobileNumber: "8617015476",
|
||||
serviceType: "Doorstep Service",
|
||||
service: "Foam Wash",
|
||||
price: "₹ 104",
|
||||
time: "10:00 - 11:00 AM",
|
||||
date: "2025-05-28",
|
||||
carName: "Mahindra XUV 700",
|
||||
status: "Confirmed",
|
||||
imagePath: "assets/images/car.jpg",
|
||||
),
|
||||
Order(
|
||||
customerName: "Ravi Kumar",
|
||||
mobileNumber: "9876543210",
|
||||
serviceType: "Workshop",
|
||||
service: "Interior Cleaning",
|
||||
price: "₹ 150",
|
||||
time: "12:00 - 1:00 PM",
|
||||
date: "2025-05-29",
|
||||
carName: "Hyundai Creta",
|
||||
status: "Pending",
|
||||
imagePath: "assets/images/bike.png",
|
||||
),
|
||||
// Add more orders...
|
||||
];
|
||||
class OrdersScreen extends StatefulWidget {
|
||||
@override
|
||||
_OrdersScreenState createState() => _OrdersScreenState();
|
||||
}
|
||||
|
||||
class _OrdersScreenState extends State<OrdersScreen> {
|
||||
late String shopId;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
shopId = getShopId(context)!;
|
||||
Provider.of<OrdersProvider>(context, listen: false)
|
||||
.fetchOrders(shopId, refresh: false);
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _refreshOrders() async {
|
||||
shopId = getShopId(context)!;
|
||||
await Provider.of<OrdersProvider>(context, listen: false)
|
||||
.fetchOrders(shopId, refresh: true);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -67,30 +58,52 @@ class OrdersScreen extends StatelessWidget {
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0),
|
||||
child: Consumer<OrderProvider>(
|
||||
child: Consumer<OrdersProvider>(
|
||||
builder: (context, orderProvider, _) {
|
||||
final orders = orderProvider.orders;
|
||||
|
||||
if (orderProvider.isLoading && !orderProvider.isRefreshing) {
|
||||
return Center(child: CircularProgressIndicator());
|
||||
}
|
||||
|
||||
if (orders.isEmpty) {
|
||||
return Center(
|
||||
child: Image.asset(
|
||||
'assets/images/noorder.png',
|
||||
width: 200,
|
||||
height: 200,
|
||||
return RefreshIndicator(
|
||||
onRefresh: _refreshOrders,
|
||||
child: ListView(
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
children: [
|
||||
SizedBox(height: 100),
|
||||
Center(
|
||||
child: Image.asset(
|
||||
'assets/images/noorder.png',
|
||||
width: 200,
|
||||
height: 200,
|
||||
),
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Center(
|
||||
child: Text(
|
||||
'No orders found',
|
||||
style: GoogleFonts.poppins(fontSize: 16),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return ListView.builder(
|
||||
itemCount: orders.length,
|
||||
itemBuilder: (context, index) {
|
||||
return OrderCard(order: orders[index],);
|
||||
},
|
||||
return RefreshIndicator(
|
||||
onRefresh: _refreshOrders,
|
||||
child: ListView.builder(
|
||||
itemCount: orders.length,
|
||||
itemBuilder: (context, index) {
|
||||
return OrderCard(order: orders[index]);
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user