import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart'; export 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart'; part 'authentication_dependend_state.dart'; abstract class ServerInstallationDependendCubit< T extends ServerInstallationDependendState> extends Cubit { ServerInstallationDependendCubit( this.appConfigCubit, T initState, ) : super(initState) { authCubitSubscription = appConfigCubit.stream.listen(checkAuthStatus); checkAuthStatus(appConfigCubit.state); } void checkAuthStatus(ServerInstallationState state) { if (state is ServerInstallationFinished) { load(); } else if (state is ServerInstallationEmpty) { clear(); } } late StreamSubscription authCubitSubscription; final ServerInstallationCubit appConfigCubit; void load(); void clear(); @override Future close() { authCubitSubscription.cancel(); return super.close(); } }