add city
This commit is contained in:
@@ -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);
|
||||
},
|
||||
);
|
||||
},
|
||||
|
||||
@@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user