Fix ServerDetailsCubit exception

pull/116/head
NaiJi ✨ 2022-09-16 11:06:27 +03:00
parent a7248a9b30
commit e3d7f2b3d7
4 changed files with 36 additions and 6 deletions

View File

@ -32,6 +32,7 @@ class BlocAndProviderConfig extends StatelessWidget {
final apiVolumesCubit = ApiProviderVolumeCubit(serverInstallationCubit); final apiVolumesCubit = ApiProviderVolumeCubit(serverInstallationCubit);
final apiServerVolumesCubit = ApiServerVolumeCubit(serverInstallationCubit); final apiServerVolumesCubit = ApiServerVolumeCubit(serverInstallationCubit);
final serverJobsCubit = ServerJobsCubit(serverInstallationCubit); final serverJobsCubit = ServerJobsCubit(serverInstallationCubit);
final serverDetailsCubit = ServerDetailsCubit(serverInstallationCubit);
return MultiProvider( return MultiProvider(
providers: [ providers: [
@ -78,6 +79,9 @@ class BlocAndProviderConfig extends StatelessWidget {
BlocProvider( BlocProvider(
create: (final _) => serverJobsCubit..load(), create: (final _) => serverJobsCubit..load(),
), ),
BlocProvider(
create: (final _) => serverDetailsCubit..load(),
),
BlocProvider( BlocProvider(
create: (final _) => JobsCubit( create: (final _) => JobsCubit(
usersCubit: usersCubit, usersCubit: usersCubit,

View File

@ -1,6 +1,5 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart';
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_repository.dart'; import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_repository.dart';
import 'package:selfprivacy/logic/models/auto_upgrade_settings.dart'; import 'package:selfprivacy/logic/models/auto_upgrade_settings.dart';
import 'package:selfprivacy/logic/models/json/hetzner_server_info.dart'; import 'package:selfprivacy/logic/models/json/hetzner_server_info.dart';
@ -8,8 +7,10 @@ import 'package:selfprivacy/logic/models/timezone_settings.dart';
part 'server_detailed_info_state.dart'; part 'server_detailed_info_state.dart';
class ServerDetailsCubit extends Cubit<ServerDetailsState> { class ServerDetailsCubit
ServerDetailsCubit() : super(ServerDetailsInitial()); extends ServerInstallationDependendCubit<ServerDetailsState> {
ServerDetailsCubit(final ServerInstallationCubit serverInstallationCubit)
: super(serverInstallationCubit, ServerDetailsInitial());
ServerDetailsRepository repository = ServerDetailsRepository(); ServerDetailsRepository repository = ServerDetailsRepository();
@ -34,4 +35,29 @@ class ServerDetailsCubit extends Cubit<ServerDetailsState> {
print('Tried to emit server info state when cubit is closed'); print('Tried to emit server info state when cubit is closed');
} }
} }
Future<void> setTimezone(
final String timezone,
) async {
final ServerDetailsRepositoryDto data = await repository.load();
await repository.setTimezone(timezone);
emit(
Loaded(
serverInfo: data.hetznerServerInfo,
autoUpgradeSettings: data.autoUpgradeSettings,
serverTimezone: TimeZoneSettings.fromString(timezone),
checkTime: DateTime.now(),
),
);
}
@override
void clear() {
emit(ServerDetailsNotReady());
}
@override
void load() async {
check();
}
} }

View File

@ -1,6 +1,6 @@
part of 'server_detailed_info_cubit.dart'; part of 'server_detailed_info_cubit.dart';
abstract class ServerDetailsState extends Equatable { abstract class ServerDetailsState extends ServerInstallationDependendState {
const ServerDetailsState(); const ServerDetailsState();
@override @override

View File

@ -76,7 +76,7 @@ class _ServerDetailsScreenState extends State<ServerDetailsScreen>
} }
return BlocProvider( return BlocProvider(
create: (final context) => ServerDetailsCubit()..check(), create: (final context) => context.read<ServerDetailsCubit>()..check(),
child: BrandHeroScreen( child: BrandHeroScreen(
heroIcon: BrandIcons.server, heroIcon: BrandIcons.server,
heroTitle: 'providers.server.card_title'.tr(), heroTitle: 'providers.server.card_title'.tr(),