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

83 lines
2.9 KiB
Dart

library login_view;
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/material.dart';
import 'package:stacked/stacked.dart';
import 'login_view_model.dart';
class LoginView extends StatelessWidget {
final emailController = TextEditingController();
final passwordController = TextEditingController();
final FocusNode passwordNode = new FocusNode();
@override
Widget build(BuildContext context) {
//LoginViewModel viewModel = LoginViewModel();
return ViewModelBuilder<LoginViewModel>.reactive(
viewModelBuilder: () => LoginViewModel(),
onModelReady: (viewModel) {
// Do something once your viewModel is initialized
},
builder: (context, viewModel, child) {
return Scaffold(
//backgroundColor: Colors.white,
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,
),
verticalSpaceSmall,
InputField(
placeholder: 'Пароль',
password: true,
controller: passwordController,
fieldFocusNode: passwordNode,
),
verticalSpaceMedium,
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
BusyButton(
title: 'Войти',
busy: viewModel.busy,
onPressed: () {
viewModel.login(
email: emailController.text.trim(),
password: passwordController.text,
);
},
)
],
),
verticalSpaceLarge,
TextLink(
'Регистрация',
onPressed: () {
//viewModel.navigateToSignUp();
},
)
],
),
));
});
}
}