import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../providers/user_profile_provider.dart'; class EditProfileScreen extends StatefulWidget { const EditProfileScreen({super.key}); @override State createState() => _EditProfileScreenState(); } class _EditProfileScreenState extends State { final nameCtrl = TextEditingController(); final companyCtrl = TextEditingController(); final emailCtrl = TextEditingController(); final mobileCtrl = TextEditingController(); final addressCtrl = TextEditingController(); final pincodeCtrl = TextEditingController(); @override void initState() { super.initState(); final profile = Provider.of( context, listen: false).profile; nameCtrl.text = profile?.customerName ?? ''; companyCtrl.text = profile?.companyName ?? ''; emailCtrl.text = profile?.email ?? ''; mobileCtrl.text = profile?.mobile ?? ''; addressCtrl.text = profile?.address ?? ''; pincodeCtrl.text = profile?.pincode ?? ''; } Future _submit() async { final provider = Provider.of(context, listen: false); final data = { "customer_name": nameCtrl.text, "company_name": companyCtrl.text, "email": emailCtrl.text, "mobile_no": mobileCtrl.text, "address": addressCtrl.text, "pincode": pincodeCtrl.text, }; final success = await provider.sendProfileUpdateRequest(context, data); ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(success ? "Request submitted. Wait for admin approval." : "Failed to submit request")), ); if (success) Navigator.pop(context); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text("Edit Profile")), body: Padding( padding: const EdgeInsets.all(18), child: Column( children: [ _field("Name", nameCtrl), _field("Company", companyCtrl), _field("Email", emailCtrl), _field("Mobile", mobileCtrl), _field("Address", addressCtrl), _field("Pincode", pincodeCtrl), const SizedBox(height: 20), ElevatedButton( onPressed: _submit, child: const Text("Submit Update Request"), ) ], ), ), ); } Widget _field(String title, TextEditingController ctrl) { return Padding( padding: const EdgeInsets.only(bottom: 14), child: TextField( controller: ctrl, decoration: InputDecoration( labelText: title, border: OutlineInputBorder(), ), ), ); } }