switch pro mode

This commit is contained in:
Felipe
2024-03-18 12:09:03 -05:00
parent e5a8221edf
commit b7b66c389f
6 changed files with 141 additions and 33 deletions
+39 -20
View File
@@ -2,6 +2,8 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:prosappco/blocs/my_user_bloc/my_user_bloc.dart';
import 'package:prosappco/blocs/professional_bloc/professional_bloc.dart';
import 'package:prosappco/screens/professional/professional_profile_screen.dart';
import 'package:prosappco/screens/profile/profile_screen.dart';
class GeneralDrawerHeader extends StatelessWidget {
@@ -13,28 +15,41 @@ class GeneralDrawerHeader extends StatelessWidget {
builder: (context, state) {
if (state.status == MyUserStatus.success) {
final user = state.user!;
return ListTile(
onTap: () {
Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileScreen();
},
),
return BlocBuilder<ProfessionalBloc, ProfessionalState>(
builder: (context, state) {
return ListTile(
onTap: () {
shouldProModeActive(context, state)
? Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfessionalProfileScreen();
},
),
)
: Navigator.push(
context,
CupertinoPageRoute(
builder: (BuildContext context) {
return const ProfileScreen();
},
),
);
},
title: Text(user.name ?? '',
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text(user.drawerLabel,
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 12)),
leading: pictureWidget(user.picture, context),
trailing:
const Icon(Icons.keyboard_arrow_right, color: Colors.black),
contentPadding:
const EdgeInsets.symmetric(vertical: 10, horizontal: 15),
);
},
title: Text(user.name ?? '',
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text(user.drawerLabel,
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 12)),
leading: pictureWidget(user.picture, context),
trailing:
const Icon(Icons.keyboard_arrow_right, color: Colors.black),
contentPadding:
const EdgeInsets.symmetric(vertical: 10, horizontal: 15),
);
} else if (state.status == MyUserStatus.failure) {
return const Text('Error obteniendo datos del usuario');
@@ -45,6 +60,10 @@ class GeneralDrawerHeader extends StatelessWidget {
);
}
shouldProModeActive(BuildContext context, ProfessionalState state) {
return (state is LoadedModeProState) ? state.isProModeActive : false;
}
Widget pictureWidget(String? pictureUrl, BuildContext context) {
ImageProvider<Object>? imageProvider;