imagenes falta especializaciones

This commit is contained in:
Juan Felipe Duarte
2023-06-07 17:29:43 -05:00
parent ebcc95d06a
commit 583d99b3bb
11 changed files with 1630 additions and 305 deletions
+51 -17
View File
@@ -1,5 +1,6 @@
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart';
@@ -8,7 +9,9 @@ import 'package:prosappco/src/models/scores_model.dart';
import 'package:prosappco/src/models/user_model.dart';
import 'package:prosappco/src/screens/configuracion.dart';
import 'package:prosappco/src/screens/messages_user.dart';
import 'package:prosappco/src/screens/professional_profile_web.dart';
import 'package:prosappco/src/screens/profile.dart';
import 'package:prosappco/src/screens/profile_web.dart';
import 'package:prosappco/src/screens/reputation.dart';
import 'package:prosappco/src/screens/support.dart';
import 'package:get/get.dart';
@@ -53,14 +56,25 @@ class _DrawerMenuState extends State<DrawerMenu> {
children: [
ListTile(
onTap: () {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileScreen();
},
),
);
if (kIsWeb) {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileWebScreen();
},
),
);
} else {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileScreen();
},
),
);
}
},
title: Text(user?.name ?? '',
style: const TextStyle(fontWeight: FontWeight.bold)),
@@ -129,14 +143,25 @@ class _DrawerMenuState extends State<DrawerMenu> {
),
ListTile(
onTap: () {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileScreen();
},
),
);
if (kIsWeb) {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileWebScreen();
},
),
);
} else {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileScreen();
},
),
);
}
},
leading: const Icon(
Icons.person_outline,
@@ -347,7 +372,16 @@ class _DrawerMenuState extends State<DrawerMenu> {
);
} else {
if (user?.state == 'pendiente' || user?.state == null) {
Navigator.pushNamed(context, '/profesionalProfile');
if (kIsWeb) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const ProfessionalProfileWebScreen()),
);
} else {
Navigator.pushNamed(context, '/profesionalProfile');
}
} else if (user?.state == 'revision') {
Navigator.pushNamed(context, '/profesionalRevision');
} else if (user?.state == 'activo') {
+118
View File
@@ -0,0 +1,118 @@
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
const double photoSize = 100;
const double iconSize = 55;
class ReferencePhotoWeb extends StatelessWidget {
Reference? ref;
double size;
double sizeIcon;
double sizeCircle;
ReferencePhotoWeb({
super.key,
required this.ref,
this.sizeIcon = iconSize,
this.size = photoSize,
this.sizeCircle = photoSize,
});
Future<Widget> downloadImage() async {
try {
if (ref != null) {
final imageData = await ref!.getData();
if (imageData != null) {
return ClipOval(
child: Image.memory(
imageData,
width: size,
height: size,
fit: BoxFit.cover,
),
);
}
}
// ignore: empty_catches
} catch (e) {}
return DefaultPhotoWeb(
sizeDefault: sizeCircle,
iconDefault: sizeIcon,
);
}
@override
Widget build(BuildContext context) {
return FutureBuilder<Widget>(
future: downloadImage(),
builder: (BuildContext context, AsyncSnapshot<Widget> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
// mientras la llamada asíncrona está en proceso, muestra un mensaje de carga
return SizedBox(
width: size,
height: size,
child: const Center(
child: CircularProgressIndicator(),
),
);
} else if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
return snapshot.data!;
} else {
return DefaultPhotoWeb();
}
});
}
}
class DefaultPhotoWeb extends StatelessWidget {
double sizeDefault;
double iconDefault;
DefaultPhotoWeb({
super.key,
this.sizeDefault = photoSize,
this.iconDefault = iconSize,
});
@override
Widget build(BuildContext context) {
return Container(
width: sizeDefault,
height: sizeDefault,
decoration: BoxDecoration(
color: const Color(0xFF2BA4EC),
borderRadius: BorderRadius.circular(50),
),
child: Icon(
Icons.person,
color: const Color.fromARGB(255, 255, 255, 255),
size: iconDefault,
),
).animate().shake();
}
}
class LocalPhotoWeb extends StatelessWidget {
Uint8List? file;
LocalPhotoWeb({super.key, required this.file});
@override
Widget build(BuildContext context) {
if (file == null) {
return DefaultPhotoWeb();
} else {
return ClipOval(
child: Image.memory(
file!,
width: photoSize,
height: photoSize,
fit: BoxFit.cover,
),
);
}
}
}