import 'package:flutter/material.dart'; import '../home_screen.dart'; class CourierDeliveryScreen extends StatelessWidget { const CourierDeliveryScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, body: Stack( children: [ // Map background Positioned.fill( child: Image.asset( 'assets/images/map.png', fit: BoxFit.cover, ), ), // Back button SafeArea( child: Padding( padding: const EdgeInsets.all(12), child: Align( alignment: Alignment.topLeft, child: CircleAvatar( backgroundColor: Colors.white, child: IconButton( icon: const Icon(Icons.arrow_back, color: Colors.blue), onPressed: () => Navigator.of(context).pop(), ), ), ), ), ), // Dummy route (bisa diganti CustomPaint/Polyline jika ingin lebih dinamis) // Marker avatar (dummy posisi) Positioned( top: 110, left: 210, child: CircleAvatar( radius: 18, backgroundColor: Colors.white, child: const CircleAvatar( radius: 16, backgroundImage: AssetImage('assets/images/orang.jpg'), ), ), ), Positioned( top: 320, left: 80, child: CircleAvatar( radius: 18, backgroundColor: Colors.white, child: const CircleAvatar( radius: 16, backgroundImage: AssetImage('assets/images/courier.png'), ), ), ), // Bottom sheet info pesanan Align( alignment: Alignment.bottomCenter, child: Container( width: double.infinity, decoration: const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.only( topLeft: Radius.circular(24), topRight: Radius.circular(24), ), boxShadow: [ BoxShadow( color: Colors.black12, blurRadius: 10, offset: Offset(0, -2), ), ], ), padding: const EdgeInsets.fromLTRB(20, 18, 20, 24), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ CircleAvatar( backgroundColor: Colors.green[50], radius: 18, child: const Icon(Icons.person, color: Colors.green), ), const SizedBox(width: 10), const Text('Dipesan oleh', style: TextStyle(fontSize: 13, color: Colors.grey)), const SizedBox(width: 6), const Text('Dewi Sartika', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 15)), const Spacer(), IconButton( icon: const Icon(Icons.call, color: Colors.blue), onPressed: () {}, ), IconButton( icon: const Icon(Icons.chat, color: Colors.blue), onPressed: () {}, ), ], ), const SizedBox(height: 10), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Icon(Icons.location_on, color: Colors.red, size: 22), const SizedBox(width: 8), Expanded( child: const Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Alamat', style: TextStyle(fontSize: 13, color: Colors.grey)), Text('Gedung Teknologi Informasi', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 15)), SizedBox(height: 2), Text('Catatan', style: TextStyle(fontSize: 13, color: Colors.grey)), Text('Lantai 1 Ruang Baca JTI', style: TextStyle(fontSize: 14)), ], ), ), ], ), const SizedBox(height: 18), SizedBox( width: double.infinity, child: ElevatedButton( onPressed: () { Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (context) => const HomeScreen(), ), (route) => false, ); }, style: ElevatedButton.styleFrom( backgroundColor: Colors.blue, foregroundColor: Colors.white, padding: const EdgeInsets.symmetric(vertical: 14), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(14), ), textStyle: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), child: const Text('Selesai'), ), ), ], ), ), ), ], ), ); } }