ui: Set account data after 'login'
This commit is contained in:
parent
2338648afb
commit
e090b34158
@ -49,8 +49,8 @@ class _ListViewWrapperState extends State<ListViewWrapper> {
|
|||||||
Widget build(BuildContext build) {
|
Widget build(BuildContext build) {
|
||||||
return StoreConnector<MoxxyState, _ListViewWrapperViewModel>(
|
return StoreConnector<MoxxyState, _ListViewWrapperViewModel>(
|
||||||
converter: (store) => _ListViewWrapperViewModel(
|
converter: (store) => _ListViewWrapperViewModel(
|
||||||
conversations: store.state.conversations
|
// TODO: Sort conversations by timestamp
|
||||||
),
|
conversations: store.state.conversations,
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
double maxTextWidth = MediaQuery.of(context).size.width * 0.6;
|
double maxTextWidth = MediaQuery.of(context).size.width * 0.6;
|
||||||
|
|
||||||
|
@ -4,6 +4,9 @@ import 'package:moxxyv2/ui/widgets/textfield.dart';
|
|||||||
import 'package:moxxyv2/ui/constants.dart';
|
import 'package:moxxyv2/ui/constants.dart';
|
||||||
import "package:moxxyv2/redux/state.dart";
|
import "package:moxxyv2/redux/state.dart";
|
||||||
import "package:moxxyv2/redux/login/actions.dart";
|
import "package:moxxyv2/redux/login/actions.dart";
|
||||||
|
// TODO: REMOVE
|
||||||
|
import "package:moxxyv2/redux/account/actions.dart";
|
||||||
|
// TODO END
|
||||||
import "package:moxxyv2/helpers.dart";
|
import "package:moxxyv2/helpers.dart";
|
||||||
|
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
@ -19,8 +22,13 @@ class _LoginPageViewModel {
|
|||||||
final bool showPassword;
|
final bool showPassword;
|
||||||
final String? passwordError;
|
final String? passwordError;
|
||||||
final String? jidError;
|
final String? jidError;
|
||||||
|
// --- START ---
|
||||||
|
// TODO: REMOVE
|
||||||
|
final void Function(String jid) setAccountJid;
|
||||||
|
final void Function(String displayName) setAccountDisplayName;
|
||||||
|
// --- END ---
|
||||||
|
|
||||||
_LoginPageViewModel({ required this.togglePasswordVisibility, required this.performLogin, required this.doingWork, required this.showPassword, required this.setJidError, required this.setPasswordError, this.passwordError, this.jidError, required this.resetErrors });
|
_LoginPageViewModel({ required this.togglePasswordVisibility, required this.performLogin, required this.doingWork, required this.showPassword, required this.setJidError, required this.setPasswordError, this.passwordError, this.jidError, required this.resetErrors, required this.setAccountJid, required this.setAccountDisplayName });
|
||||||
}
|
}
|
||||||
|
|
||||||
class LoginPage extends StatelessWidget {
|
class LoginPage extends StatelessWidget {
|
||||||
@ -38,8 +46,11 @@ class LoginPage extends StatelessWidget {
|
|||||||
void _performLogin(BuildContext context, _LoginPageViewModel viewModel) {
|
void _performLogin(BuildContext context, _LoginPageViewModel viewModel) {
|
||||||
viewModel.resetErrors();
|
viewModel.resetErrors();
|
||||||
|
|
||||||
|
String jid = this.jidController.text;
|
||||||
|
String password = this.passwordController.text;
|
||||||
|
|
||||||
// Validate first
|
// Validate first
|
||||||
switch (validateJid(this.jidController.text)) {
|
switch (validateJid(jid)) {
|
||||||
case JidFormatError.EMPTY: {
|
case JidFormatError.EMPTY: {
|
||||||
viewModel.setJidError("XMPP-Address cannot be empty");
|
viewModel.setJidError("XMPP-Address cannot be empty");
|
||||||
return;
|
return;
|
||||||
@ -64,13 +75,17 @@ class LoginPage extends StatelessWidget {
|
|||||||
case JidFormatError.NONE: break;
|
case JidFormatError.NONE: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.passwordController.text.isEmpty) {
|
if (password.isEmpty) {
|
||||||
viewModel.setPasswordError("Password cannot be empty");
|
viewModel.setPasswordError("Password cannot be empty");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Remove
|
// TODO: Remove
|
||||||
Future.delayed(Duration(seconds: 3), () => this._navigateToConversations(context));
|
Future.delayed(Duration(seconds: 3), () {
|
||||||
|
viewModel.setAccountJid(jid);
|
||||||
|
viewModel.setAccountDisplayName(jid.split("@")[0]);
|
||||||
|
this._navigateToConversations(context);
|
||||||
|
});
|
||||||
|
|
||||||
viewModel.performLogin();
|
viewModel.performLogin();
|
||||||
}
|
}
|
||||||
@ -87,8 +102,9 @@ class LoginPage extends StatelessWidget {
|
|||||||
jidError: store.state.loginPageState.jidError,
|
jidError: store.state.loginPageState.jidError,
|
||||||
setJidError: (text) => store.dispatch(LoginSetJidErrorAction(text: text)),
|
setJidError: (text) => store.dispatch(LoginSetJidErrorAction(text: text)),
|
||||||
setPasswordError: (text) => store.dispatch(LoginSetPasswordErrorAction(text: text)),
|
setPasswordError: (text) => store.dispatch(LoginSetPasswordErrorAction(text: text)),
|
||||||
resetErrors: () => store.dispatch(LoginResetErrorsAction())
|
resetErrors: () => store.dispatch(LoginResetErrorsAction()),
|
||||||
|
setAccountJid: (jid) => store.dispatch(SetJidAction(jid: jid)),
|
||||||
|
setAccountDisplayName: (displayName) => store.dispatch(SetDisplayNameAction(displayName: displayName))
|
||||||
),
|
),
|
||||||
builder: (context, viewModel) => WillPopScope(
|
builder: (context, viewModel) => WillPopScope(
|
||||||
onWillPop: () async => !viewModel.doingWork,
|
onWillPop: () async => !viewModel.doingWork,
|
||||||
|
Loading…
Reference in New Issue
Block a user