update y componente drawer

This commit is contained in:
Juan Felipe Duarte
2023-04-11 15:59:11 -05:00
parent 33d7da756f
commit 716ad80f1d
5 changed files with 314 additions and 457 deletions
+42 -52
View File
@@ -78,6 +78,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
setState(() {
imagen_to_upload = File(imagen[0]!.path);
});
Navigator.of(context).pop();
},
),
Divider(color: Colors.black54),
@@ -92,6 +93,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
setState(() {
imagen_to_upload = File(imagen[0]!.path);
});
Navigator.of(context).pop();
},
),
],
@@ -121,6 +123,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
setState(() {
image_cedula = File(imagen[0]!.path);
});
Navigator.of(context).pop();
},
),
Divider(color: Colors.black54),
@@ -135,6 +138,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
setState(() {
image_cedula = File(imagen[0]!.path);
});
Navigator.of(context).pop();
},
),
],
@@ -164,6 +168,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
setState(() {
image_certificado = File(imagen[0]!.path);
});
Navigator.of(context).pop();
},
),
Divider(color: Colors.black54),
@@ -178,6 +183,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
setState(() {
image_certificado = File(imagen[0]!.path);
});
Navigator.of(context).pop();
},
),
],
@@ -307,65 +313,50 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
}
Future<void> sendInfo() async {
final currentUser = _auth.currentUser;
String cedula = _cedulaController.text.trim();
String especializacion = _especializacionController.text.trim();
List<String> especializaciones =
especializacion.split(',').map((element) => element.trim()).toList();
final String cedula = _cedulaController.text.trim();
final String especializacion = _especializacionController.text.trim();
final List<String> especializaciones =
especializacion.split(',').map((e) => e.trim()).toList();
if (cedula.isEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Ingrese una cedula válida')),
);
return;
} else {
try {
FirebaseFirestore.instance.collection('users').doc(uid).update({
'cedula': cedula,
'estado': 'revision',
});
print('cedula actualizado correctamente');
} catch (e) {
print('Error al actualizar la cedula: $e');
}
}
if (especializacion.isNotEmpty) {
try {
FirebaseFirestore.instance
.collection('users')
.doc(uid)
.update({'especializaciones': especializaciones});
FirebaseFirestore.instance.collection('users').doc(uid).update({
'estado': 'revision',
});
print('especializaciones agregadas correctamente');
} catch (e) {
print('Error al cargar las especializaciones: $e');
}
} else {
showSnackBar('Ingrese una cedula válida');
return;
}
try {
if (imagen_to_upload == null) {
return;
} else {
final uploaded = await uploadImage(imagen_to_upload!);
updateImage(photoTemp);
//image
}
} catch (e) {
print('Error al actualizar la imagen de perfil $e');
if (image_cedula == null) {
showSnackBar('Ingrese la imagen de la cedula');
return;
}
uploadEspecializaciones(images_especializacion);
if (image_certificado == null) {
showSnackBar('Ingrese la imagen de su certificado');
return;
}
// Actualiza los datos del usuario en Firestore
await FirebaseFirestore.instance.collection('users').doc(uid).update({
'cedula': cedula,
'estado': 'revision',
'especializaciones': especializaciones
});
// Sube las imágenes al storage de Firebase
uploadCedula(image_cedula!);
uploadCertificado(image_certificado!);
uploadEspecializaciones(images_especializacion);
// Actualiza la imagen de perfil si hay cambios
if (imagen_to_upload != null) {
updateImage(photoTemp);
}
// Navega a la siguiente pantalla
Navigator.pushReplacementNamed(context, '/solicitudEnviada');
}
void showSnackBar(String message) {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text(message)));
}
Future<Widget> downloadImage(Reference ref) async {
@@ -500,6 +491,7 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
: ReferencePhoto(
ref: storage.ref().child(_photo),
size: 100,
sizeCircle: 100,
),
),
),
@@ -661,8 +653,6 @@ class ProfessionalProfileScreenState extends State<ProfessionalProfileScreen> {
child: ElevatedButton(
onPressed: () {
sendInfo();
Navigator.pushReplacementNamed(
context, '/solicitudEnviada');
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,