selfprivacy.org.app/lib/logic/cubit/forms/initializing/root_user_form_cubit.dart
NaiJi 4c7cf05578 Refactor FieldCubit creation for user forms
Move all cubit fields to a special factory which encapsulates all logic related to their default properties, which leaves possibility for future dependency inversion on that factory or future factories of other cubit fields (in case we will have to replace it with other implementations).
2022-05-04 19:58:47 +03:00

34 lines
995 B
Dart

import 'dart:async';
import 'package:cubit_form/cubit_form.dart';
import 'package:selfprivacy/logic/cubit/app_config/app_config_cubit.dart';
import 'package:selfprivacy/logic/cubit/forms/factories/field_cubit_factory.dart';
import 'package:selfprivacy/logic/models/user.dart';
class RootUserFormCubit extends FormCubit {
RootUserFormCubit(
this.initializingCubit, final FieldCubitFactory fieldFactory) {
userName = fieldFactory.createUserLoginField();
password = fieldFactory.createUserPasswordField();
isVisible = FieldCubit(initalValue: false);
super.addFields([userName, password, isVisible]);
}
@override
FutureOr<void> onSubmit() async {
var user = User(
login: userName.state.value,
password: password.state.value,
);
initializingCubit.setRootUser(user);
}
final AppConfigCubit initializingCubit;
late final FieldCubit<String> userName;
late final FieldCubit<String> password;
late final FieldCubit<bool> isVisible;
}