import 'package:flutter/material.dart'; class CourierProfileScreen extends StatefulWidget { const CourierProfileScreen({super.key}); @override State createState() => _CourierProfileScreenState(); } class _CourierProfileScreenState extends State { final TextEditingController _nameController = TextEditingController(text: 'Kurir 1'); final TextEditingController _emailController = TextEditingController(text: 'kurirpolije1@gmail.com'); final TextEditingController _phoneController = TextEditingController(text: '0888855552222'); bool _isEditingName = false; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: AppBar( backgroundColor: Colors.white, elevation: 0, automaticallyImplyLeading: false, title: const Align( alignment: Alignment.centerLeft, child: Text('Edit Profil', style: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20)), ), actions: [ Padding( padding: const EdgeInsets.only(right: 16), child: Container( decoration: BoxDecoration( color: Colors.blue[50], borderRadius: BorderRadius.circular(12), ), child: IconButton( icon: const Icon(Icons.logout, color: Colors.blue), onPressed: () { Navigator.of(context).pushNamedAndRemoveUntil('/login', (route) => false); }, ), ), ), ], ), body: SingleChildScrollView( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 28, vertical: 16), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ const SizedBox(height: 12), Center( child: Stack( children: [ Container( width: 120, height: 120, decoration: BoxDecoration( color: const Color.fromARGB(255, 108, 171, 222), shape: BoxShape.circle, ), child: Center( child: Image.asset('assets/images/profile.png', width: 80, height: 80), ), ), Positioned( bottom: 10, right: 10, child: Container( decoration: BoxDecoration( color: Colors.yellow[700], shape: BoxShape.circle, border: Border.all(color: Colors.white, width: 2), ), padding: const EdgeInsets.all(4), child: const Icon(Icons.edit, size: 18, color: Colors.white), ), ), ], ), ), const SizedBox(height: 28), // Nama Kurir Align( alignment: Alignment.centerLeft, child: Text('Nama Kurir', style: TextStyle(fontSize: 14, color: Colors.grey[700])), ), const SizedBox(height: 6), Row( children: [ Expanded( child: TextField( controller: _nameController, enabled: _isEditingName, decoration: InputDecoration( contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), filled: true, fillColor: Colors.white, border: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), disabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), isDense: true, ), style: const TextStyle(fontSize: 15), ), ), const SizedBox(width: 8), InkWell( onTap: () { setState(() { _isEditingName = !_isEditingName; }); }, child: Container( padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: Colors.blue[50], borderRadius: BorderRadius.circular(8), ), child: Icon(Icons.edit, color: Colors.blue[700], size: 18), ), ), ], ), const SizedBox(height: 18), // Email Align( alignment: Alignment.centerLeft, child: Text('Email', style: TextStyle(fontSize: 14, color: Colors.grey[700])), ), const SizedBox(height: 6), TextField( controller: _emailController, enabled: false, decoration: InputDecoration( contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), filled: true, fillColor: Colors.white, border: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), disabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), isDense: true, ), style: const TextStyle(fontSize: 15), ), const SizedBox(height: 18), // Nomor Telepon Align( alignment: Alignment.centerLeft, child: Text('Nomor Telepon', style: TextStyle(fontSize: 14, color: Colors.grey[700])), ), const SizedBox(height: 6), TextField( controller: _phoneController, enabled: false, decoration: InputDecoration( contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), filled: true, fillColor: Colors.white, border: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), disabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(18), borderSide: BorderSide(color: Colors.grey[300]!), ), isDense: true, ), style: const TextStyle(fontSize: 15), ), const SizedBox(height: 28), SizedBox( width: double.infinity, child: ElevatedButton( onPressed: () {}, 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('Simpan Perubahan'), ), ), ], ), ), ), ); } }