aman-kassa-flutter/lib/views/login/login_view.dart

84 lines
3.3 KiB
Dart

import 'package:aman_kassa_flutter/redux/actions/user_actions.dart';
import 'package:aman_kassa_flutter/redux/state/user_state.dart';
import 'package:aman_kassa_flutter/redux/store.dart';
import 'package:aman_kassa_flutter/shared/app_colors.dart';
import 'package:aman_kassa_flutter/shared/ui_helpers.dart';
import 'package:aman_kassa_flutter/widgets/fields/busy_button.dart';
import 'package:aman_kassa_flutter/widgets/fields/input_field.dart';
import 'package:aman_kassa_flutter/widgets/fields/text_link.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:flutter/material.dart';
class LoginView extends StatelessWidget {
final emailController = TextEditingController(text: 'test@kkm-kassa.kz');
final passwordController = TextEditingController(text: 'qwe123');
final FocusNode passwordNode = new FocusNode();
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
_pressBtnEnter() async {
Redux.store.dispatch(authenticate(emailController.text, passwordController.text));
}
@override
Widget build(BuildContext context) {
return StoreConnector<AppState, UserState>(
converter: (store) => store.state.userState,
builder: (context, vm) {
print('build');
return Scaffold(
key: _scaffoldKey,
backgroundColor: fillColor,
body: Padding(
padding: const EdgeInsets.symmetric(horizontal: 50),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SizedBox(
height: 150,
child: Image.asset('assets/images/logo.png'),
//child: FlutterLogo(size: 120,),
),
InputField(
placeholder: 'Электронная почта',
controller: emailController,
textInputType: TextInputType.emailAddress,
nextFocusNode: passwordNode,
additionalNote: vm.loginFormMessage.email,
),
verticalSpaceSmall,
InputField(
placeholder: 'Пароль',
password: true,
controller: passwordController,
fieldFocusNode: passwordNode,
additionalNote: vm.loginFormMessage.password,
enterPressed: _pressBtnEnter),
verticalSpaceMedium,
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
BusyButton(
title: 'Войти',
busy: vm.isLoading,
onPressed: _pressBtnEnter,
)
],
),
verticalSpaceLarge,
TextLink(
'Регистрация',
onPressed: () {},
)
],
),
));
});
}
}