selfprivacy.org.app/lib/logic/cubit/forms/setup/recovering/recovery_device_form_cubit....

36 lines
1.1 KiB
Dart
Raw Normal View History

2022-05-18 02:18:26 +03:00
import 'dart:async';
import 'package:cubit_form/cubit_form.dart';
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
import 'package:selfprivacy/logic/cubit/forms/factories/field_cubit_factory.dart';
class RecoveryDeviceFormCubit extends FormCubit {
RecoveryDeviceFormCubit(
this.installationCubit,
final FieldCubitFactory fieldFactory,
this.recoveryMethod,
) {
tokenField = fieldFactory.createRequiredStringField();
2022-05-18 02:18:26 +03:00
super.addFields([tokenField]);
}
@override
FutureOr<void> onSubmit() async {
2022-05-31 02:06:08 +03:00
late final String token;
// Trim spaces and make lowercase
if (recoveryMethod == ServerRecoveryMethods.recoveryKey ||
recoveryMethod == ServerRecoveryMethods.newDeviceKey) {
token = tokenField.state.value.trim().toLowerCase();
} else {
token = tokenField.state.value.trim();
}
installationCubit.tryToRecover(token, recoveryMethod);
2022-05-18 02:18:26 +03:00
}
final ServerInstallationCubit installationCubit;
2022-05-18 02:18:26 +03:00
late final FieldCubit<String> tokenField;
final ServerRecoveryMethods recoveryMethod;
2022-05-18 02:18:26 +03:00
}