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