refactor: Remove backblaze page from installation wizard

This commit is contained in:
NaiJi 2023-09-12 21:37:12 -03:00
parent eb92a8ee56
commit a6e6833efb
7 changed files with 69 additions and 112 deletions

View file

@ -237,13 +237,8 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
print(e); print(e);
} }
} }
finishRecoveryProcess(backblazeCredential);
return; return;
} }
emit(
(state as ServerInstallationNotFinished)
.copyWith(backblazeCredential: backblazeCredential),
);
} }
void setDomain(final ServerDomain serverDomain) async { void setDomain(final ServerDomain serverDomain) async {
@ -756,14 +751,12 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
provider: dnsProviderType, provider: dnsProviderType,
), ),
dnsApiToken: token, dnsApiToken: token,
currentStep: RecoveryStep.backblazeToken,
), ),
); );
finishRecoveryProcess();
} }
void finishRecoveryProcess( void finishRecoveryProcess() async {
final BackupsCredential backblazeCredential,
) async {
await repository.saveIsServerStarted(true); await repository.saveIsServerStarted(true);
await repository.saveIsServerResetedFirstTime(true); await repository.saveIsServerResetedFirstTime(true);
await repository.saveIsServerResetedSecondTime(true); await repository.saveIsServerResetedSecondTime(true);
@ -778,7 +771,6 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
await repository.saveRootUser(mainUser); await repository.saveRootUser(mainUser);
final ServerInstallationRecovery updatedState = final ServerInstallationRecovery updatedState =
(state as ServerInstallationRecovery).copyWith( (state as ServerInstallationRecovery).copyWith(
backblazeCredential: backblazeCredential,
rootUser: mainUser, rootUser: mainUser,
serverTypeIdentificator: serverType.data!.identifier, serverTypeIdentificator: serverType.data!.identifier,
); );
@ -845,7 +837,6 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
providerApiToken: state.providerApiToken, providerApiToken: state.providerApiToken,
serverDomain: state.serverDomain, serverDomain: state.serverDomain,
dnsApiToken: state.dnsApiToken, dnsApiToken: state.dnsApiToken,
backblazeCredential: state.backblazeCredential,
rootUser: state.rootUser, rootUser: state.rootUser,
serverDetails: null, serverDetails: null,
isServerStarted: false, isServerStarted: false,

View file

@ -45,8 +45,6 @@ class ServerInstallationRepository {
final DnsProviderType? dnsProvider = getIt<ApiConfigModel>().dnsProvider; final DnsProviderType? dnsProvider = getIt<ApiConfigModel>().dnsProvider;
final ServerProviderType? serverProvider = final ServerProviderType? serverProvider =
getIt<ApiConfigModel>().serverProvider; getIt<ApiConfigModel>().serverProvider;
final BackupsCredential? backblazeCredential =
getIt<ApiConfigModel>().backblazeCredential;
final ServerHostingDetails? serverDetails = final ServerHostingDetails? serverDetails =
getIt<ApiConfigModel>().serverDetails; getIt<ApiConfigModel>().serverDetails;
@ -87,7 +85,6 @@ class ServerInstallationRepository {
serverTypeIdentificator: finalServerType.data!.identifier, serverTypeIdentificator: finalServerType.data!.identifier,
dnsApiToken: dnsApiToken!, dnsApiToken: dnsApiToken!,
serverDomain: serverDomain!, serverDomain: serverDomain!,
backblazeCredential: backblazeCredential!,
serverDetails: serverDetails, serverDetails: serverDetails,
rootUser: box.get(BNames.rootUser), rootUser: box.get(BNames.rootUser),
isServerStarted: box.get(BNames.isServerStarted, defaultValue: false), isServerStarted: box.get(BNames.isServerStarted, defaultValue: false),
@ -103,7 +100,6 @@ class ServerInstallationRepository {
serverTypeIdentificator: serverTypeIdentificator!, serverTypeIdentificator: serverTypeIdentificator!,
dnsApiToken: dnsApiToken!, dnsApiToken: dnsApiToken!,
serverDomain: serverDomain!, serverDomain: serverDomain!,
backblazeCredential: backblazeCredential!,
serverDetails: serverDetails!, serverDetails: serverDetails!,
rootUser: box.get(BNames.rootUser), rootUser: box.get(BNames.rootUser),
isServerStarted: box.get(BNames.isServerStarted, defaultValue: false), isServerStarted: box.get(BNames.isServerStarted, defaultValue: false),
@ -122,7 +118,6 @@ class ServerInstallationRepository {
dnsApiToken: dnsApiToken, dnsApiToken: dnsApiToken,
serverDomain: serverDomain, serverDomain: serverDomain,
serverTypeIdentificator: serverTypeIdentificator, serverTypeIdentificator: serverTypeIdentificator,
backblazeCredential: backblazeCredential,
serverDetails: serverDetails, serverDetails: serverDetails,
rootUser: box.get(BNames.rootUser), rootUser: box.get(BNames.rootUser),
currentStep: _getCurrentRecoveryStep( currentStep: _getCurrentRecoveryStep(
@ -140,7 +135,6 @@ class ServerInstallationRepository {
dnsApiToken: dnsApiToken, dnsApiToken: dnsApiToken,
serverDomain: serverDomain, serverDomain: serverDomain,
serverTypeIdentificator: serverTypeIdentificator, serverTypeIdentificator: serverTypeIdentificator,
backblazeCredential: backblazeCredential,
serverDetails: serverDetails, serverDetails: serverDetails,
rootUser: box.get(BNames.rootUser), rootUser: box.get(BNames.rootUser),
isServerStarted: box.get(BNames.isServerStarted, defaultValue: false), isServerStarted: box.get(BNames.isServerStarted, defaultValue: false),
@ -162,9 +156,6 @@ class ServerInstallationRepository {
if (serverDetails != null) { if (serverDetails != null) {
if (serverProviderToken != null) { if (serverProviderToken != null) {
if (serverDetails.provider != ServerProviderType.unknown) { if (serverDetails.provider != ServerProviderType.unknown) {
if (serverDomain.provider != DnsProviderType.unknown) {
return RecoveryStep.backblazeToken;
}
return RecoveryStep.dnsProviderToken; return RecoveryStep.dnsProviderToken;
} }
return RecoveryStep.serverSelection; return RecoveryStep.serverSelection;

View file

@ -5,7 +5,6 @@ abstract class ServerInstallationState extends Equatable {
required this.providerApiToken, required this.providerApiToken,
required this.serverTypeIdentificator, required this.serverTypeIdentificator,
required this.dnsApiToken, required this.dnsApiToken,
required this.backblazeCredential,
required this.serverDomain, required this.serverDomain,
required this.rootUser, required this.rootUser,
required this.serverDetails, required this.serverDetails,
@ -20,7 +19,6 @@ abstract class ServerInstallationState extends Equatable {
providerApiToken, providerApiToken,
serverTypeIdentificator, serverTypeIdentificator,
dnsApiToken, dnsApiToken,
backblazeCredential,
serverDomain, serverDomain,
rootUser, rootUser,
serverDetails, serverDetails,
@ -32,7 +30,6 @@ abstract class ServerInstallationState extends Equatable {
final String? providerApiToken; final String? providerApiToken;
final String? dnsApiToken; final String? dnsApiToken;
final String? serverTypeIdentificator; final String? serverTypeIdentificator;
final BackupsCredential? backblazeCredential;
final ServerDomain? serverDomain; final ServerDomain? serverDomain;
final User? rootUser; final User? rootUser;
final ServerHostingDetails? serverDetails; final ServerHostingDetails? serverDetails;
@ -44,7 +41,6 @@ abstract class ServerInstallationState extends Equatable {
bool get isServerProviderApiKeyFilled => providerApiToken != null; bool get isServerProviderApiKeyFilled => providerApiToken != null;
bool get isServerTypeFilled => serverTypeIdentificator != null; bool get isServerTypeFilled => serverTypeIdentificator != null;
bool get isDnsProviderFilled => dnsApiToken != null; bool get isDnsProviderFilled => dnsApiToken != null;
bool get isBackupsProviderFilled => backblazeCredential != null;
bool get isDomainSelected => serverDomain != null; bool get isDomainSelected => serverDomain != null;
bool get isPrimaryUserFilled => rootUser != null; bool get isPrimaryUserFilled => rootUser != null;
bool get isServerCreated => serverDetails != null; bool get isServerCreated => serverDetails != null;
@ -68,7 +64,6 @@ abstract class ServerInstallationState extends Equatable {
isServerProviderApiKeyFilled, isServerProviderApiKeyFilled,
isServerTypeFilled, isServerTypeFilled,
isDnsProviderFilled, isDnsProviderFilled,
isBackupsProviderFilled,
isDomainSelected, isDomainSelected,
isPrimaryUserFilled, isPrimaryUserFilled,
isServerCreated, isServerCreated,
@ -91,7 +86,6 @@ class TimerState extends ServerInstallationNotFinished {
providerApiToken: dataState.providerApiToken, providerApiToken: dataState.providerApiToken,
serverTypeIdentificator: dataState.serverTypeIdentificator, serverTypeIdentificator: dataState.serverTypeIdentificator,
dnsApiToken: dataState.dnsApiToken, dnsApiToken: dataState.dnsApiToken,
backblazeCredential: dataState.backblazeCredential,
serverDomain: dataState.serverDomain, serverDomain: dataState.serverDomain,
rootUser: dataState.rootUser, rootUser: dataState.rootUser,
serverDetails: dataState.serverDetails, serverDetails: dataState.serverDetails,
@ -119,7 +113,6 @@ enum ServerSetupProgress {
serverProviderFilled, serverProviderFilled,
servertTypeFilled, servertTypeFilled,
dnsProviderFilled, dnsProviderFilled,
backblazeFilled,
domainFilled, domainFilled,
userFilled, userFilled,
serverCreated, serverCreated,
@ -138,7 +131,6 @@ class ServerInstallationNotFinished extends ServerInstallationState {
super.providerApiToken, super.providerApiToken,
super.serverTypeIdentificator, super.serverTypeIdentificator,
super.dnsApiToken, super.dnsApiToken,
super.backblazeCredential,
super.serverDomain, super.serverDomain,
super.rootUser, super.rootUser,
super.serverDetails, super.serverDetails,
@ -152,7 +144,6 @@ class ServerInstallationNotFinished extends ServerInstallationState {
providerApiToken, providerApiToken,
serverTypeIdentificator, serverTypeIdentificator,
dnsApiToken, dnsApiToken,
backblazeCredential,
serverDomain, serverDomain,
rootUser, rootUser,
serverDetails, serverDetails,
@ -167,7 +158,6 @@ class ServerInstallationNotFinished extends ServerInstallationState {
final String? providerApiToken, final String? providerApiToken,
final String? serverTypeIdentificator, final String? serverTypeIdentificator,
final String? dnsApiToken, final String? dnsApiToken,
final BackupsCredential? backblazeCredential,
final ServerDomain? serverDomain, final ServerDomain? serverDomain,
final User? rootUser, final User? rootUser,
final ServerHostingDetails? serverDetails, final ServerHostingDetails? serverDetails,
@ -183,7 +173,6 @@ class ServerInstallationNotFinished extends ServerInstallationState {
serverTypeIdentificator: serverTypeIdentificator:
serverTypeIdentificator ?? this.serverTypeIdentificator, serverTypeIdentificator ?? this.serverTypeIdentificator,
dnsApiToken: dnsApiToken ?? this.dnsApiToken, dnsApiToken: dnsApiToken ?? this.dnsApiToken,
backblazeCredential: backblazeCredential ?? this.backblazeCredential,
serverDomain: serverDomain ?? this.serverDomain, serverDomain: serverDomain ?? this.serverDomain,
rootUser: rootUser ?? this.rootUser, rootUser: rootUser ?? this.rootUser,
serverDetails: serverDetails ?? this.serverDetails, serverDetails: serverDetails ?? this.serverDetails,
@ -202,7 +191,6 @@ class ServerInstallationNotFinished extends ServerInstallationState {
providerApiToken: providerApiToken!, providerApiToken: providerApiToken!,
serverTypeIdentificator: serverTypeIdentificator!, serverTypeIdentificator: serverTypeIdentificator!,
dnsApiToken: dnsApiToken!, dnsApiToken: dnsApiToken!,
backblazeCredential: backblazeCredential!,
serverDomain: serverDomain!, serverDomain: serverDomain!,
rootUser: rootUser!, rootUser: rootUser!,
serverDetails: serverDetails!, serverDetails: serverDetails!,
@ -219,7 +207,6 @@ class ServerInstallationEmpty extends ServerInstallationNotFinished {
providerApiToken: null, providerApiToken: null,
serverTypeIdentificator: null, serverTypeIdentificator: null,
dnsApiToken: null, dnsApiToken: null,
backblazeCredential: null,
serverDomain: null, serverDomain: null,
rootUser: null, rootUser: null,
serverDetails: null, serverDetails: null,
@ -237,7 +224,6 @@ class ServerInstallationFinished extends ServerInstallationState {
required String super.providerApiToken, required String super.providerApiToken,
required String super.serverTypeIdentificator, required String super.serverTypeIdentificator,
required String super.dnsApiToken, required String super.dnsApiToken,
required BackupsCredential super.backblazeCredential,
required ServerDomain super.serverDomain, required ServerDomain super.serverDomain,
required User super.rootUser, required User super.rootUser,
required ServerHostingDetails super.serverDetails, required ServerHostingDetails super.serverDetails,
@ -252,7 +238,6 @@ class ServerInstallationFinished extends ServerInstallationState {
providerApiToken, providerApiToken,
serverTypeIdentificator, serverTypeIdentificator,
dnsApiToken, dnsApiToken,
backblazeCredential,
serverDomain, serverDomain,
rootUser, rootUser,
serverDetails, serverDetails,
@ -270,7 +255,6 @@ enum RecoveryStep {
serverProviderToken, serverProviderToken,
serverSelection, serverSelection,
dnsProviderToken, dnsProviderToken,
backblazeToken,
} }
enum ServerRecoveryCapabilities { enum ServerRecoveryCapabilities {
@ -292,7 +276,6 @@ class ServerInstallationRecovery extends ServerInstallationState {
super.providerApiToken, super.providerApiToken,
super.serverTypeIdentificator, super.serverTypeIdentificator,
super.dnsApiToken, super.dnsApiToken,
super.backblazeCredential,
super.serverDomain, super.serverDomain,
super.rootUser, super.rootUser,
super.serverDetails, super.serverDetails,
@ -310,7 +293,6 @@ class ServerInstallationRecovery extends ServerInstallationState {
providerApiToken, providerApiToken,
serverTypeIdentificator, serverTypeIdentificator,
dnsApiToken, dnsApiToken,
backblazeCredential,
serverDomain, serverDomain,
rootUser, rootUser,
serverDetails, serverDetails,
@ -324,7 +306,6 @@ class ServerInstallationRecovery extends ServerInstallationState {
final String? providerApiToken, final String? providerApiToken,
final String? serverTypeIdentificator, final String? serverTypeIdentificator,
final String? dnsApiToken, final String? dnsApiToken,
final BackupsCredential? backblazeCredential,
final ServerDomain? serverDomain, final ServerDomain? serverDomain,
final User? rootUser, final User? rootUser,
final ServerHostingDetails? serverDetails, final ServerHostingDetails? serverDetails,
@ -336,7 +317,6 @@ class ServerInstallationRecovery extends ServerInstallationState {
serverTypeIdentificator: serverTypeIdentificator:
serverTypeIdentificator ?? this.serverTypeIdentificator, serverTypeIdentificator ?? this.serverTypeIdentificator,
dnsApiToken: dnsApiToken ?? this.dnsApiToken, dnsApiToken: dnsApiToken ?? this.dnsApiToken,
backblazeCredential: backblazeCredential ?? this.backblazeCredential,
serverDomain: serverDomain ?? this.serverDomain, serverDomain: serverDomain ?? this.serverDomain,
rootUser: rootUser ?? this.rootUser, rootUser: rootUser ?? this.rootUser,
serverDetails: serverDetails ?? this.serverDetails, serverDetails: serverDetails ?? this.serverDetails,
@ -348,7 +328,6 @@ class ServerInstallationRecovery extends ServerInstallationState {
providerApiToken: providerApiToken!, providerApiToken: providerApiToken!,
serverTypeIdentificator: serverTypeIdentificator!, serverTypeIdentificator: serverTypeIdentificator!,
dnsApiToken: dnsApiToken!, dnsApiToken: dnsApiToken!,
backblazeCredential: backblazeCredential!,
serverDomain: serverDomain!, serverDomain: serverDomain!,
rootUser: rootUser!, rootUser: rootUser!,
serverDetails: serverDetails!, serverDetails: serverDetails!,

View file

@ -15,6 +15,7 @@ import 'package:selfprivacy/ui/components/jobs_content/server_job_card.dart';
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart'; import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart'; import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
import 'package:selfprivacy/ui/helpers/modals.dart'; import 'package:selfprivacy/ui/helpers/modals.dart';
import 'package:selfprivacy/ui/pages/backups/backup_provider_picker.dart';
import 'package:selfprivacy/ui/pages/backups/change_period_modal.dart'; import 'package:selfprivacy/ui/pages/backups/change_period_modal.dart';
import 'package:selfprivacy/ui/pages/backups/change_rotation_quotas_modal.dart'; import 'package:selfprivacy/ui/pages/backups/change_rotation_quotas_modal.dart';
import 'package:selfprivacy/ui/pages/backups/copy_encryption_key_modal.dart'; import 'package:selfprivacy/ui/pages/backups/copy_encryption_key_modal.dart';
@ -75,9 +76,7 @@ class BackupDetailsPage extends StatelessWidget {
BrandButton.rised( BrandButton.rised(
onPressed: preventActions onPressed: preventActions
? null ? null
: () async { : () => context.pushRoute(BackupProviderPicker()),
await context.read<BackupsCubit>().initializeBackups();
},
text: 'backup.initialize'.tr(), text: 'backup.initialize'.tr(),
), ),
], ],

View file

@ -0,0 +1,65 @@
import 'package:cubit_form/cubit_form.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:selfprivacy/logic/cubit/forms/setup/initializing/backblaze_form_cubit.dart';
import 'package:selfprivacy/logic/cubit/support_system/support_system_cubit.dart';
import 'package:selfprivacy/ui/components/buttons/brand_button.dart';
import 'package:selfprivacy/ui/layouts/responsive_layout_with_infobox.dart';
class BackupProviderPicker extends StatelessWidget {
const BackupProviderPicker({
super.key,
});
@override
Widget build(final BuildContext context) => ResponsiveLayoutWithInfobox(
topChild: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'${'initializing.connect_to_server_provider'.tr()}Backblaze',
style: Theme.of(context).textTheme.headlineSmall,
),
],
),
primaryColumn: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CubitFormTextField(
autofocus: true,
formFieldCubit: context.read<BackblazeFormCubit>().keyId,
textAlign: TextAlign.center,
scrollPadding: const EdgeInsets.only(bottom: 70),
decoration: const InputDecoration(
hintText: 'KeyID',
),
),
const SizedBox(height: 16),
CubitFormTextField(
formFieldCubit: context.read<BackblazeFormCubit>().applicationKey,
textAlign: TextAlign.center,
scrollPadding: const EdgeInsets.only(bottom: 70),
decoration: const InputDecoration(
hintText: 'Master Application Key',
),
),
const SizedBox(height: 32),
BrandButton.rised(
onPressed: () => context.read<BackblazeFormCubit>().trySubmit(),
text: 'basis.connect'.tr(),
),
const SizedBox(height: 10),
BrandButton.text(
onPressed: () {
context.read<SupportSystemCubit>().showArticle(
article: 'how_backblaze',
context: context,
);
Scaffold.of(context).openEndDrawer();
},
title: 'initializing.how'.tr(),
),
],
),
);
}

View file

@ -42,7 +42,6 @@ class InitializingPage extends StatelessWidget {
() => _stepServerProviderToken(cubit), () => _stepServerProviderToken(cubit),
() => _stepServerType(cubit), () => _stepServerType(cubit),
() => _stepDnsProviderToken(cubit), () => _stepDnsProviderToken(cubit),
() => _stepBackblaze(cubit),
() => _stepDomain(cubit), () => _stepDomain(cubit),
() => _stepUser(cubit), () => _stepUser(cubit),
() => _stepServer(cubit), () => _stepServer(cubit),
@ -254,69 +253,6 @@ class InitializingPage extends StatelessWidget {
), ),
); );
Widget _stepBackblaze(final ServerInstallationCubit initializingCubit) =>
BlocProvider(
create: (final context) => BackblazeFormCubit(initializingCubit),
child: Builder(
builder: (final context) {
final formCubitState = context.watch<BackblazeFormCubit>().state;
return ResponsiveLayoutWithInfobox(
topChild: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'${'initializing.connect_to_server_provider'.tr()}Backblaze',
style: Theme.of(context).textTheme.headlineSmall,
),
],
),
primaryColumn: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CubitFormTextField(
autofocus: true,
formFieldCubit: context.read<BackblazeFormCubit>().keyId,
textAlign: TextAlign.center,
scrollPadding: const EdgeInsets.only(bottom: 70),
decoration: const InputDecoration(
hintText: 'KeyID',
),
),
const SizedBox(height: 16),
CubitFormTextField(
formFieldCubit:
context.read<BackblazeFormCubit>().applicationKey,
textAlign: TextAlign.center,
scrollPadding: const EdgeInsets.only(bottom: 70),
decoration: const InputDecoration(
hintText: 'Master Application Key',
),
),
const SizedBox(height: 32),
BrandButton.rised(
onPressed: formCubitState.isSubmitting
? null
: () => context.read<BackblazeFormCubit>().trySubmit(),
text: 'basis.connect'.tr(),
),
const SizedBox(height: 10),
BrandButton.text(
onPressed: () {
context.read<SupportSystemCubit>().showArticle(
article: 'how_backblaze',
context: context,
);
Scaffold.of(context).openEndDrawer();
},
title: 'initializing.how'.tr(),
),
],
),
);
},
),
);
Widget _stepDomain(final ServerInstallationCubit initializingCubit) => Widget _stepDomain(final ServerInstallationCubit initializingCubit) =>
BlocProvider( BlocProvider(
create: (final context) => DomainSetupCubit(initializingCubit)..load(), create: (final context) => DomainSetupCubit(initializingCubit)..load(),

View file

@ -11,7 +11,6 @@ import 'package:selfprivacy/ui/pages/root_route.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_old_token.dart'; import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_old_token.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_recovery_key.dart'; import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_recovery_key.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_new_device_key.dart'; import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_new_device_key.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recovery_confirm_backblaze.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recovery_confirm_dns.dart'; import 'package:selfprivacy/ui/pages/setup/recovering/recovery_confirm_dns.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recovery_confirm_server.dart'; import 'package:selfprivacy/ui/pages/setup/recovering/recovery_confirm_server.dart';
import 'package:selfprivacy/ui/pages/setup/recovering/recovery_server_provider_connected.dart'; import 'package:selfprivacy/ui/pages/setup/recovering/recovery_server_provider_connected.dart';
@ -58,9 +57,6 @@ class RecoveryRouting extends StatelessWidget {
case RecoveryStep.dnsProviderToken: case RecoveryStep.dnsProviderToken:
currentPage = const RecoveryConfirmDns(); currentPage = const RecoveryConfirmDns();
break; break;
case RecoveryStep.backblazeToken:
currentPage = const RecoveryConfirmBackblaze();
break;
} }
} }