99 lines
2.7 KiB
Dart
99 lines
2.7 KiB
Dart
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<EditProfileScreen> createState() => _EditProfileScreenState();
|
|
}
|
|
|
|
class _EditProfileScreenState extends State<EditProfileScreen> {
|
|
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<UserProfileProvider>(
|
|
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<void> _submit() async {
|
|
final provider =
|
|
Provider.of<UserProfileProvider>(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(),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|