se añadio un modelo y el menu de modo profesional

This commit is contained in:
Juan Felipe Duarte
2023-04-18 16:03:01 -05:00
parent 85c927918e
commit 6b09ce2f3a
10 changed files with 777 additions and 294 deletions
+1 -1
View File
@@ -84,7 +84,7 @@ Future<List<Professional>> getProfessionals() async {
professionalRef: storage.ref().child(_photo),
professionalEspecializado: especializaciones,
ubicacion: data['ubicacion'],
puntuacion: await ScoreModel.fromJson(data['puntuacion']),
puntuacion: await ScoreModel.fromJson(data['puntuacion'], true),
);
professionals.add(professional);
}
+8 -30
View File
@@ -3,11 +3,11 @@ import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:get/get.dart';
import 'dart:io';
import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/drawer_menu.dart';
import 'package:prosappco/src/components/pop_appbar.dart';
import 'package:prosappco/src/controllers/add_name_email_city.dart';
import 'package:prosappco/src/screens/city.dart';
import 'package:prosappco/src/screens/new_number.dart';
@@ -17,7 +17,7 @@ import 'package:prosappco/src/services/select_image_profile.dart';
import '../components/photo_view.dart';
class ProfileScreen extends StatefulWidget {
ProfileScreen({Key? key}) : super(key: key);
const ProfileScreen({Key? key}) : super(key: key);
@override
State<ProfileScreen> createState() => _ProfileScreenState();
@@ -39,7 +39,6 @@ class _ProfileScreenState extends State<ProfileScreen> {
var photoTemp = '';
var _ciudad = '...';
var _photo = '...';
var _estado = '...';
String? _email = '';
@override
@@ -79,13 +78,6 @@ class _ProfileScreenState extends State<ProfileScreen> {
_photo = s;
}));
}
if (_estado == '...') {
AuthenticationRepository.instance
.getState(uid.toString())
.then((String s) => setState(() {
_estado = s;
}));
}
}
Future<void> updateImage(image) async {
@@ -349,30 +341,16 @@ class _ProfileScreenState extends State<ProfileScreen> {
@override
Widget build(BuildContext context) {
final User? user = FirebaseAuth.instance.currentUser;
String city = _ciudad.toString();
String state = _estado.toString();
return SafeArea(
child: Scaffold(
appBar: AppBar(
backgroundColor: Colors.white,
iconTheme: const IconThemeData(
color: Colors.black,
),
title: const Text(
'Perfil',
style: TextStyle(
color: Colors.black,
),
),
),
drawer: DrawerMenu(
ref: storage.ref().child(_photo),
userName: user?.displayName ?? '',
userPhoneNumber: user?.phoneNumber ?? '',
userCity: city,
userState: state),
appBar: PopAppbar(
onPressed: () {
Navigator.pop(context);
},
label: 'Perfil'),
drawer: DrawerMenu(),
body: SingleChildScrollView(
reverse: true,
child: Center(
+89
View File
@@ -0,0 +1,89 @@
import 'dart:io';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/drawer_professional.dart';
class PruebaScreen extends StatefulWidget {
const PruebaScreen({super.key});
@override
State<PruebaScreen> createState() => _PruebaScreenState();
}
class _PruebaScreenState extends State<PruebaScreen> {
File? imagen_to_upload;
final uid = AuthenticationRepository.instance.getCurrentUserUid();
late final FirebaseAuth _auth;
final FirebaseStorage storage = FirebaseStorage.instance;
var photoTemp = '';
var _ciudad = '...';
var _photo = '...';
var _estado = '...';
@override
void initState() {
super.initState();
final uid = AuthenticationRepository.instance.getCurrentUserUid();
_auth = FirebaseAuth.instance;
final currentUser = _auth.currentUser;
if (_ciudad == '...') {
AuthenticationRepository.instance
.getCity(uid.toString())
.then((String s) => setState(() {
_ciudad = s;
}));
}
if (_photo == '...') {
AuthenticationRepository.instance
.getPhoto(uid.toString())
.then((String s) => setState(() {
_photo = s;
}));
}
if (_estado == '...') {
AuthenticationRepository.instance
.getState(uid.toString())
.then((String s) => setState(() {
_estado = s;
}));
}
}
@override
Widget build(BuildContext context) {
final User? user = FirebaseAuth.instance.currentUser;
String city = _ciudad.toString();
String state = _estado.toString();
return SafeArea(
child: Scaffold(
appBar: AppBar(
backgroundColor: Colors.white,
iconTheme: const IconThemeData(
color: Colors.black,
),
title: const Text(
'Perfil',
style: TextStyle(
color: Colors.black,
),
),
),
drawer: DrawerProfessional(
ref: storage.ref().child(_photo),
userName: user?.displayName ?? '',
userPhoneNumber: user?.phoneNumber ?? '',
userCity: city,
userState: state),
));
}
}
+11 -14
View File
@@ -4,6 +4,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/drawer_menu.dart';
import 'package:prosappco/src/models/score_model.dart';
import 'package:prosappco/src/screens/professional.dart';
import 'package:intl/intl.dart';
@@ -16,6 +17,7 @@ class ServiceScreen extends StatefulWidget {
class _ServiceScreenState extends State<ServiceScreen> {
final DateFormat formatter = DateFormat('dd/MM/yyyy');
final DateTime now = DateTime.now();
DateTime? _selectedDate;
TimeOfDay? _selectedTime;
@@ -23,9 +25,9 @@ class _ServiceScreenState extends State<ServiceScreen> {
Future<void> _selectDate(BuildContext context) async {
final DateTime? picked = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2022),
lastDate: DateTime(2025),
initialDate: now,
firstDate: DateTime(now.year),
lastDate: DateTime(now.year + 1),
// builder: (context, child) {
// return Theme(data: ThemeData.dark(), child: child!);
// },
@@ -95,18 +97,10 @@ class _ServiceScreenState extends State<ServiceScreen> {
List<String> opc = ["Servicio", "Opción 1", "Opción 2", "Opción 3"];
String defaultValue = opc[0];
String city = _ciudad.toString();
String state = _estado.toString();
return SafeArea(
child: Scaffold(
backgroundColor: Color(0xFFD6F4FF),
drawer: DrawerMenu(
ref: storage.ref().child(_photo),
userName: user?.displayName ?? '',
userPhoneNumber: user?.phoneNumber ?? '',
userCity: city,
userState: state),
drawer: DrawerMenu(),
body: SingleChildScrollView(
reverse: true,
child: Stack(
@@ -243,8 +237,11 @@ class _ServiceScreenState extends State<ServiceScreen> {
_selectDate(context);
},
readOnly: true,
decoration: const InputDecoration(
prefixIcon: Icon(Icons.calendar_month),
decoration: InputDecoration(
prefixIcon: const Icon(Icons.calendar_month),
suffixIcon: _selectedDate == null
? const Icon(Icons.arrow_drop_down)
: null,
hintText: 'Fecha',
),
controller: TextEditingController(
+3 -39
View File
@@ -7,6 +7,8 @@ import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/drawer_menu.dart';
import 'package:prosappco/src/components/primary_btn.dart';
import 'package:prosappco/src/controllers/add_name_email_city.dart';
import 'package:prosappco/src/models/score_model.dart';
import 'package:prosappco/src/models/user_model.dart';
import '../components/photo_view.dart';
@@ -21,55 +23,17 @@ class _WelcomeScreenState extends State<WelcomeScreen> {
final FirebaseStorage storage = FirebaseStorage.instance;
final uid = AuthenticationRepository.instance.getCurrentUserUid();
final controller = Get.put(NameEmailCityController());
var _ciudad = '';
var _photo = '...';
var _estado = '...';
@override
void initState() {
super.initState();
if (_estado == '...') {
AuthenticationRepository.instance
.getState(uid.toString())
.then((String s) => setState(() {
_estado = s;
}));
}
if (_ciudad == '') {
AuthenticationRepository.instance
.getCity(uid.toString())
.then((String s) => setState(() {
_ciudad = s;
}));
}
if (_photo == '...') {
AuthenticationRepository.instance
.getPhoto(uid.toString())
.then((String s) => setState(() {
_photo = s;
}));
}
}
@override
Widget build(BuildContext context) {
final User? user = FirebaseAuth.instance.currentUser;
// String name = _nombre.toString();
String city = _ciudad.toString();
String state = _estado.toString();
return SafeArea(
child: Scaffold(
drawer: DrawerMenu(
ref: storage.ref().child(_photo),
userName: user?.displayName ?? '',
userPhoneNumber: user?.phoneNumber ?? '',
userCity: city,
userState: state),
drawer: DrawerMenu(),
resizeToAvoidBottomInset: false,
backgroundColor: const Color(0xFFD6F4FF),
body: Stack(