after
This commit is contained in:
@@ -10,7 +10,7 @@ import 'package:prosappco/screens/authentication/sign_up_screen.dart';
|
||||
class SignScreen extends StatefulWidget {
|
||||
final int initialIndex;
|
||||
|
||||
SignScreen({super.key, required this.initialIndex});
|
||||
const SignScreen({super.key, required this.initialIndex});
|
||||
|
||||
@override
|
||||
State<SignScreen> createState() => _SignScreenState();
|
||||
@@ -48,19 +48,22 @@ class _SignScreenState extends State<SignScreen> with TickerProviderStateMixin {
|
||||
color: Theme.of(context).colorScheme.tertiary,
|
||||
child: Column(
|
||||
children: [
|
||||
Center(
|
||||
child: Image(
|
||||
width: width * 0.7,
|
||||
image: AssetImage('images/logo_prosapp.png'),
|
||||
Container(
|
||||
color: Theme.of(context).colorScheme.tertiary,
|
||||
padding: const EdgeInsets.only(bottom: 20.0),
|
||||
child: Center(
|
||||
child: Image(
|
||||
width: width * 0.7,
|
||||
image: const AssetImage('images/logo_prosapp.png'),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
TabBar(
|
||||
controller: tabController,
|
||||
unselectedLabelColor:
|
||||
Theme.of(context).colorScheme.onBackground,
|
||||
labelColor: Theme.of(context).colorScheme.onBackground,
|
||||
tabs: [
|
||||
tabs: const [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(12.0),
|
||||
child: Text(
|
||||
@@ -102,20 +105,6 @@ class _SignScreenState extends State<SignScreen> with TickerProviderStateMixin {
|
||||
Injector.appInstance.get<SignUpBloc>(),
|
||||
child: SignUpScreen(),
|
||||
),
|
||||
// BlocProvider<SignInBloc>(
|
||||
// create: (context) => SignInBloc(
|
||||
// userRepository: context
|
||||
// .read<AuthenticationBloc>()
|
||||
// .userRepository),
|
||||
// child: SignInScreen(),
|
||||
// ),
|
||||
// BlocProvider<SignUpBloc>(
|
||||
// create: (context) => SignUpBloc(
|
||||
// userRepository: context
|
||||
// .read<AuthenticationBloc>()
|
||||
// .userRepository),
|
||||
// child: SignUpScreen(),
|
||||
// ),
|
||||
]),
|
||||
)
|
||||
],
|
||||
|
||||
@@ -6,124 +6,312 @@ import 'package:intl_phone_field/intl_phone_field.dart';
|
||||
import 'package:prosappco/screens/authentication/sign_screen.dart';
|
||||
|
||||
class WelcomeScreen extends StatelessWidget {
|
||||
const WelcomeScreen({super.key});
|
||||
const WelcomeScreen({Key? key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
|
||||
return Scaffold(
|
||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
backgroundColor: Theme.of(context).colorScheme.tertiary,
|
||||
body: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
color: Theme.of(context).colorScheme.tertiary,
|
||||
child: Column(
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
Center(
|
||||
child: Image(
|
||||
width: width * 0.7,
|
||||
image: const AssetImage('images/logo_prosapp.png'),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
child: Text(
|
||||
'Iniciar sesión',
|
||||
style: TextStyle(
|
||||
// fontSize: 30,
|
||||
fontSize: width * 0.08,
|
||||
fontWeight: FontWeight.bold,
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 20),
|
||||
child: Center(
|
||||
child: Image(
|
||||
width: width * 0.7,
|
||||
image: const AssetImage('images/logo_prosapp.png'),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
const SizedBox(height: 10),
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
child: Text(
|
||||
'Numero de celular',
|
||||
style: TextStyle(
|
||||
fontSize: width * 0.045,
|
||||
color: Theme.of(context).colorScheme.onBackground,
|
||||
),
|
||||
),
|
||||
),
|
||||
Form(
|
||||
child: IntlPhoneField(
|
||||
initialCountryCode: 'CO',
|
||||
keyboardType: TextInputType.number,
|
||||
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Un código será enviado a este numero de celular.',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 13.0,
|
||||
color: Theme.of(context).colorScheme.onBackground,
|
||||
),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) => SignScreen(initialIndex: 0),
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(60),
|
||||
topRight: Radius.circular(60),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 30, vertical: 15),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
child: Text(
|
||||
'Iniciar sesión',
|
||||
style: TextStyle(
|
||||
// fontSize: 30,
|
||||
fontSize: width * 0.08,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
'Inicia sesión con tu correo electrónico',
|
||||
style: TextStyle(
|
||||
fontSize: width * 0.04,
|
||||
),
|
||||
),
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
style: const TextStyle(
|
||||
fontSize: 16.0,
|
||||
color: Color(0xFF65676B),
|
||||
fontFamily: 'Poppins',
|
||||
const SizedBox(height: 10),
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
child: Text(
|
||||
'Numero de celular',
|
||||
style: TextStyle(
|
||||
fontSize: width * 0.045,
|
||||
color: Theme.of(context).colorScheme.onBackground,
|
||||
),
|
||||
),
|
||||
),
|
||||
children: [
|
||||
const TextSpan(text: '¿No estás registrado? '),
|
||||
TextSpan(
|
||||
text: 'Regístrate',
|
||||
Form(
|
||||
child: IntlPhoneField(
|
||||
initialCountryCode: 'CO',
|
||||
keyboardType: TextInputType.number,
|
||||
inputFormatters: [
|
||||
FilteringTextInputFormatter.digitsOnly
|
||||
],
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Un código será enviado a este numero de celular.',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 13.0,
|
||||
color: Theme.of(context).colorScheme.onBackground,
|
||||
),
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) =>
|
||||
const SignScreen(initialIndex: 1),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: const Text('Iniciar Sesión'),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) =>
|
||||
const SignScreen(initialIndex: 0),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
'Inicia sesión con tu correo electrónico',
|
||||
style: TextStyle(
|
||||
fontSize: width * 0.04,
|
||||
color: Colors.blue,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () {
|
||||
Navigator.push(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) =>
|
||||
SignScreen(initialIndex: 1),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
style: const TextStyle(
|
||||
fontSize: 16.0,
|
||||
color: Color(0xFF65676B),
|
||||
fontFamily: 'Poppins',
|
||||
),
|
||||
children: [
|
||||
const TextSpan(text: '¿No estás registrado? '),
|
||||
TextSpan(
|
||||
text: 'Regístrate',
|
||||
style: TextStyle(
|
||||
fontSize: width * 0.04,
|
||||
color: Colors.blue,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () {
|
||||
Navigator.push(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) =>
|
||||
SignScreen(initialIndex: 1),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
// Scaffold(
|
||||
// backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
// body: Column(
|
||||
// children: [
|
||||
// Container(
|
||||
// color: Theme.of(context).colorScheme.tertiary,
|
||||
// child: Column(
|
||||
// children: [
|
||||
// const SizedBox(height: 20),
|
||||
// Center(
|
||||
// child: Image(
|
||||
// width: width * 0.7,
|
||||
// image: const AssetImage('images/logo_prosapp.png'),
|
||||
// ),
|
||||
// ),
|
||||
// const SizedBox(height: 20),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(
|
||||
// width: double.infinity,
|
||||
// child: Text(
|
||||
// 'Iniciar sesión',
|
||||
// style: TextStyle(
|
||||
// // fontSize: 30,
|
||||
// fontSize: width * 0.08,
|
||||
// fontWeight: FontWeight.bold,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// Expanded(
|
||||
// child: SingleChildScrollView(
|
||||
// child: Column(
|
||||
// children: [
|
||||
// const SizedBox(height: 10),
|
||||
// SizedBox(
|
||||
// width: double.infinity,
|
||||
// child: Text(
|
||||
// 'Numero de celular',
|
||||
// style: TextStyle(
|
||||
// fontSize: width * 0.045,
|
||||
// color: Theme.of(context).colorScheme.onBackground,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// Form(
|
||||
// child: IntlPhoneField(
|
||||
// initialCountryCode: 'CO',
|
||||
// keyboardType: TextInputType.number,
|
||||
// inputFormatters: [FilteringTextInputFormatter.digitsOnly],
|
||||
// ),
|
||||
// ),
|
||||
// Text(
|
||||
// 'Un código será enviado a este numero de celular.',
|
||||
// textAlign: TextAlign.center,
|
||||
// style: TextStyle(
|
||||
// fontSize: 13.0,
|
||||
// color: Theme.of(context).colorScheme.onBackground,
|
||||
// ),
|
||||
// ),
|
||||
// TextButton(
|
||||
// onPressed: () {
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// CupertinoPageRoute(
|
||||
// builder: (context) => SignScreen(initialIndex: 0),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// child: Text(
|
||||
// 'Inicia sesión con tu correo electrónico',
|
||||
// style: TextStyle(
|
||||
// fontSize: width * 0.04,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// RichText(
|
||||
// text: TextSpan(
|
||||
// style: const TextStyle(
|
||||
// fontSize: 16.0,
|
||||
// color: Color(0xFF65676B),
|
||||
// fontFamily: 'Poppins',
|
||||
// ),
|
||||
// children: [
|
||||
// const TextSpan(text: '¿No estás registrado? '),
|
||||
// TextSpan(
|
||||
// text: 'Regístrate',
|
||||
// style: TextStyle(
|
||||
// fontSize: width * 0.04,
|
||||
// color: Colors.blue,
|
||||
// fontWeight: FontWeight.w600,
|
||||
// ),
|
||||
// recognizer: TapGestureRecognizer()
|
||||
// ..onTap = () {
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// CupertinoPageRoute(
|
||||
// builder: (context) =>
|
||||
// SignScreen(initialIndex: 1),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// );
|
||||
|
||||
// Scaffold(
|
||||
// backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
// body: ListView(
|
||||
// children: [
|
||||
// Container(
|
||||
// color: Theme.of(context).colorScheme.tertiary,
|
||||
// padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
// child: Center(
|
||||
// child: Image(
|
||||
// width: width * 0.7,
|
||||
// image: const AssetImage('images/logo_prosapp.png'),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// Container(
|
||||
// decoration: const BoxDecoration(
|
||||
// color: Colors.white,
|
||||
// borderRadius: BorderRadius.only(
|
||||
// topLeft: Radius.circular(60),
|
||||
// topRight: Radius.circular(60),
|
||||
// ),
|
||||
// ),
|
||||
// child: Padding(
|
||||
// padding: const EdgeInsets.all(20.0),
|
||||
// child: Column(
|
||||
// mainAxisAlignment: MainAxisAlignment.center,
|
||||
// children: [
|
||||
// const TextField(
|
||||
// decoration: InputDecoration(
|
||||
// labelText: 'Usuario',
|
||||
// border: OutlineInputBorder(),
|
||||
// ),
|
||||
// ),
|
||||
// const SizedBox(height: 20.0),
|
||||
// const TextField(
|
||||
// decoration: InputDecoration(
|
||||
// labelText: 'Contraseña',
|
||||
// border: OutlineInputBorder(),
|
||||
// ),
|
||||
// obscureText: true,
|
||||
// ),
|
||||
// const SizedBox(height: 20.0),
|
||||
//
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,9 +125,12 @@
|
||||
// }
|
||||
// }
|
||||
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:prosappco/blocs/authentication_bloc/authentication_bloc.dart';
|
||||
import 'package:injector/injector.dart';
|
||||
import 'package:prosappco/blocs/setting_bloc/setting_bloc.dart';
|
||||
import 'package:prosappco/components/general_drawer_item.dart';
|
||||
|
||||
class ConfigurationScreen extends StatelessWidget {
|
||||
@@ -135,36 +138,45 @@ class ConfigurationScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocListener<AuthenticationBloc, AuthenticationState>(
|
||||
listener: (context, state) {
|
||||
if (state.status == AuthenticationStatus.unauthenticated) {
|
||||
Navigator.pop(context);
|
||||
}
|
||||
},
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Configuración'),
|
||||
final settingBloc = Injector.appInstance.get<SettingBloc>();
|
||||
|
||||
return BlocProvider<SettingBloc>(
|
||||
create: (context) => settingBloc,
|
||||
child: BlocListener<SettingBloc, SettingState>(
|
||||
listener: (context, state) {
|
||||
if (state is SettingLogoutSuccess) {
|
||||
Navigator.pop(context);
|
||||
}
|
||||
},
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Configuración'),
|
||||
),
|
||||
body: ListView(
|
||||
children: [
|
||||
GeneralDrawerItem(
|
||||
label: 'Acerca de la aplicación',
|
||||
onTap: () {},
|
||||
trailing: true,
|
||||
),
|
||||
GeneralDrawerItem(
|
||||
label: 'Cerrar sesión',
|
||||
onTap: () {
|
||||
try {
|
||||
settingBloc.add(SettingLogoutRequest());
|
||||
} catch (e) {
|
||||
log('xd conigura ${e.toString()}');
|
||||
}
|
||||
},
|
||||
),
|
||||
GeneralDrawerItem(
|
||||
label: 'Eliminar cuenta',
|
||||
onTap: () {},
|
||||
color: Theme.of(context).colorScheme.error,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
body: ListView(children: [
|
||||
GeneralDrawerItem(
|
||||
label: 'Acerca de la aplicación',
|
||||
onTap: () {},
|
||||
trailing: true,
|
||||
),
|
||||
GeneralDrawerItem(
|
||||
label: 'Cerrar sesión',
|
||||
onTap: () {
|
||||
context
|
||||
.read<AuthenticationBloc>()
|
||||
.add(AuthenticationLogoutRequested());
|
||||
},
|
||||
),
|
||||
GeneralDrawerItem(
|
||||
label: 'Eliminar cuenta',
|
||||
onTap: () {},
|
||||
color: Theme.of(context).colorScheme.error,
|
||||
)
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:prosappco/blocs/my_user_bloc/my_user_bloc.dart';
|
||||
import 'package:prosappco/blocs/update_user_info_bloc/update_user_info_bloc.dart';
|
||||
import 'package:prosappco/blocs/profile_bloc/profile_bloc.dart';
|
||||
import 'package:prosappco/src/components/pop_appbar.dart';
|
||||
|
||||
class ProfileScreen extends StatefulWidget {
|
||||
@@ -24,7 +24,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocListener<UpdateUserInfoBloc, UpdateUserInfoState>(
|
||||
return BlocListener<ProfileBloc, ProfileState>(
|
||||
listener: (context, state) {
|
||||
if (state is UploadPictureSuccess) {
|
||||
setState(() {});
|
||||
@@ -57,7 +57,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
||||
);
|
||||
|
||||
if (image != null) {
|
||||
context.read<UpdateUserInfoBloc>().add(
|
||||
context.read<ProfileBloc>().add(
|
||||
UploadPicture(image.path, state.user!.id),
|
||||
);
|
||||
}
|
||||
@@ -146,7 +146,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
context.read<UpdateUserInfoBloc>().add(
|
||||
context.read<ProfileBloc>().add(
|
||||
UpdateUserInfo(state.user!.id, _nameController.text));
|
||||
},
|
||||
child: const Text('Guardar'),
|
||||
|
||||
Reference in New Issue
Block a user