This commit is contained in:
Felipe
2024-03-13 14:38:47 -05:00
parent a25bc6a987
commit 6806703360
4 changed files with 68 additions and 16 deletions
+4 -2
View File
@@ -64,7 +64,8 @@ class _CityScreenState extends State<CityScreen> {
_isLoading
? _buildShimmerEffect()
: Expanded(
child: _filteredCities != null && _filteredCities!.isNotEmpty
child: _filteredCities != null &&
_filteredCities!.isNotEmpty
? ListView.builder(
itemCount: _filteredCities!.length,
itemBuilder: (BuildContext context, int index) {
@@ -81,7 +82,8 @@ class _CityScreenState extends State<CityScreen> {
style: const TextStyle(color: Colors.black54),
),
onTap: () {
// Handle city selection
Navigator.pop(context,
_filteredCities![index].cityName);
},
);
},
+40 -11
View File
@@ -25,6 +25,7 @@ class ProfileScreen extends StatefulWidget {
class _ProfileScreenState extends State<ProfileScreen> {
final TextEditingController _nameController = TextEditingController();
final TextEditingController _cityController = TextEditingController();
final TextEditingController _emailController = TextEditingController();
final TextEditingController _newEmailController = TextEditingController();
final TextEditingController _phoneController = TextEditingController();
@@ -46,12 +47,13 @@ class _ProfileScreenState extends State<ProfileScreen> {
@override
void dispose() {
_nameController.dispose();
_cityController.dispose();
_emailController.dispose();
_newEmailController.dispose();
_phoneController.dispose();
_birthdayController.dispose();
_genderController.dispose();
_passwordController.dispose();
_newEmailController.dispose();
super.dispose();
}
@@ -131,10 +133,10 @@ class _ProfileScreenState extends State<ProfileScreen> {
),
const SizedBox(height: 20.0),
TextFormField(
// controller: _nameController,
controller: _cityController,
readOnly: true,
onTap: () {
Navigator.push(
onTap: () async {
final cityName = await Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
@@ -142,6 +144,10 @@ class _ProfileScreenState extends State<ProfileScreen> {
},
),
);
if (cityName != null) {
_cityController.text = cityName;
}
},
decoration: const InputDecoration(
labelText: 'Ciudad',
@@ -194,6 +200,17 @@ class _ProfileScreenState extends State<ProfileScreen> {
onTap: () {
if (state.user!.name == null ||
state.user!.name == '') {
ScaffoldMessenger.of(context).clearSnackBars();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'Por favor, ingrese su nombre')));
return;
}
if (state.user!.city == null ||
state.user!.city == '') {
ScaffoldMessenger.of(context).clearSnackBars();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
@@ -220,6 +237,17 @@ class _ProfileScreenState extends State<ProfileScreen> {
onTap: () {
if (state.user!.name == null ||
state.user!.name == '') {
ScaffoldMessenger.of(context).clearSnackBars();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'Por favor, ingrese su nombre')));
return;
}
if (state.user!.city == null ||
state.user!.city == '') {
ScaffoldMessenger.of(context).clearSnackBars();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
@@ -263,16 +291,19 @@ class _ProfileScreenState extends State<ProfileScreen> {
if (_nameController.text.isEmpty) {
ScaffoldMessenger.of(context).clearSnackBars();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Por favor, ingrese su nombre')),
);
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Por favor, ingrese su nombre')));
return;
}
if (_cityController.text.isEmpty) {
ScaffoldMessenger.of(context).clearSnackBars();
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Por favor, ingrese su ciudad')));
}
final myUser = state.user!.copyWith(
name: _nameController.text,
city: _cityController.text,
nickname: _nameController.text.trim().toLowerCase(),
email: _emailController.text,
phone: _phoneController.text,
@@ -280,9 +311,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
gender: _genderController.text,
);
context
.read<ProfileBloc>()
.add(UpdateUserInfo(myUser: myUser, filePicture: _imageFile?.path));
context.read<ProfileBloc>().add(UpdateUserInfo(myUser: myUser, filePicture: _imageFile?.path));
Navigator.pop(context);
},
@@ -6,6 +6,7 @@ class MyUserEntity extends Equatable {
final String? phone;
final String? name;
final String? nickname;
final String? city;
final String? picture;
final String? birthday;
final String? gender;
@@ -16,6 +17,7 @@ class MyUserEntity extends Equatable {
required this.phone,
required this.name,
required this.nickname,
required this.city,
required this.picture,
required this.birthday,
required this.gender,
@@ -28,6 +30,7 @@ class MyUserEntity extends Equatable {
'phone': phone,
'name': name,
'nickname': name?.trim().toLowerCase(),
'city': city,
'picture': picture,
'birthday': birthday,
'gender': gender,
@@ -41,6 +44,7 @@ class MyUserEntity extends Equatable {
phone: doc['phone'] as String?,
name: doc['name'] as String?,
nickname: doc['nickname'] as String?,
city: doc['city'] as String?,
picture: doc['picture'] as String?,
birthday: doc['birthday'] as String?,
gender: doc['gender'] as String?,
@@ -49,7 +53,7 @@ class MyUserEntity extends Equatable {
@override
List<Object?> get props =>
[id, email, phone, name, nickname, picture, birthday, gender];
[id, email, phone, name, nickname, city, picture, birthday, gender];
@override
String toString() {
@@ -59,6 +63,7 @@ class MyUserEntity extends Equatable {
phone: $phone
name: $name
nickname: $nickname
city: $city
picture: $picture
birthday: $birthday
gender: $gender
@@ -8,6 +8,7 @@ class MyUser extends Equatable {
final String? phone;
final String? name;
final String? nickname;
final String? city;
final String? picture;
final String? birthday;
final String? gender;
@@ -18,6 +19,7 @@ class MyUser extends Equatable {
this.phone,
this.name,
this.nickname,
this.city,
this.picture,
this.birthday,
this.gender,
@@ -36,6 +38,7 @@ class MyUser extends Equatable {
phone: '',
name: '',
nickname: '',
city: '',
picture: '',
birthday: '',
gender: '',
@@ -48,6 +51,7 @@ class MyUser extends Equatable {
String? phone,
String? name,
String? nickname,
String? city,
String? picture,
String? birthday,
String? gender,
@@ -58,6 +62,7 @@ class MyUser extends Equatable {
phone: phone ?? this.phone,
name: name ?? this.name,
nickname: nickname ?? this.nickname,
city: city ?? this.city,
picture: picture ?? this.picture,
birthday: birthday ?? this.birthday,
gender: gender ?? this.gender,
@@ -77,6 +82,7 @@ class MyUser extends Equatable {
phone: phone,
name: name,
nickname: nickname,
city: city,
picture: picture,
birthday: birthday,
gender: gender,
@@ -90,6 +96,7 @@ class MyUser extends Equatable {
phone: entity.phone,
name: entity.name,
nickname: entity.nickname,
city: entity.city,
picture: entity.picture,
birthday: entity.birthday,
gender: entity.gender,
@@ -97,6 +104,15 @@ class MyUser extends Equatable {
}
@override
List<Object?> get props =>
[id, email, phone, name, nickname, picture, birthday, gender];
List<Object?> get props => [
id,
email,
phone,
name,
nickname,
city,
picture,
birthday,
gender,
];
}