65 lines
1.6 KiB
Dart
65 lines
1.6 KiB
Dart
|
|
import 'package:flutter/material.dart';
|
||
|
|
import '../services/dio_client.dart';
|
||
|
|
import '../services/order_service.dart';
|
||
|
|
|
||
|
|
|
||
|
|
class OrderTrackScreen extends StatefulWidget {
|
||
|
|
final String orderId;
|
||
|
|
const OrderTrackScreen({super.key, required this.orderId});
|
||
|
|
|
||
|
|
@override
|
||
|
|
State<OrderTrackScreen> createState() => _OrderTrackScreenState();
|
||
|
|
}
|
||
|
|
|
||
|
|
class _OrderTrackScreenState extends State<OrderTrackScreen> {
|
||
|
|
bool loading = true;
|
||
|
|
Map data = {};
|
||
|
|
|
||
|
|
@override
|
||
|
|
void initState() {
|
||
|
|
super.initState();
|
||
|
|
load();
|
||
|
|
}
|
||
|
|
|
||
|
|
Future<void> load() async {
|
||
|
|
final service = OrderService(DioClient.getInstance(context));
|
||
|
|
final res = await service.trackOrder(widget.orderId);
|
||
|
|
|
||
|
|
if (res['success'] == true) {
|
||
|
|
data = res['track'];
|
||
|
|
}
|
||
|
|
|
||
|
|
loading = false;
|
||
|
|
setState(() {});
|
||
|
|
}
|
||
|
|
|
||
|
|
@override
|
||
|
|
Widget build(BuildContext context) {
|
||
|
|
return Scaffold(
|
||
|
|
appBar: AppBar(title: const Text("Track Order")),
|
||
|
|
body: loading
|
||
|
|
? const Center(child: CircularProgressIndicator())
|
||
|
|
: Padding(
|
||
|
|
padding: const EdgeInsets.all(16),
|
||
|
|
child: Column(
|
||
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||
|
|
children: [
|
||
|
|
Text("Order ID: ${data['order_id']}"),
|
||
|
|
Text("Shipment Status: ${data['shipment_status']}"),
|
||
|
|
Text("Shipment Date: ${data['shipment_date']}"),
|
||
|
|
|
||
|
|
const SizedBox(height: 20),
|
||
|
|
Center(
|
||
|
|
child: Icon(
|
||
|
|
Icons.local_shipping,
|
||
|
|
size: 100,
|
||
|
|
color: Colors.indigo.shade300,
|
||
|
|
),
|
||
|
|
),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
),
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|