Initial commit of Flutter project

This commit is contained in:
2025-09-19 11:30:38 +05:30
parent 1f0ec17edc
commit 4a9ae0a3b3
28 changed files with 2033 additions and 594 deletions

View File

@@ -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]);
},
),
);
},
),
),
);
}
}