| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | import 'package:appflowy/user/application/user_service.dart';import 'package:appflowy_backend/log.dart';import 'package:appflowy_backend/protobuf/flowy-user/auth.pb.dart';import 'package:appflowy_backend/protobuf/flowy-user/user_profile.pb.dart';import 'package:flutter_bloc/flutter_bloc.dart';import 'package:freezed_annotation/freezed_annotation.dart';part 'historical_user_bloc.freezed.dart';class HistoricalUserBloc    extends Bloc<HistoricalUserEvent, HistoricalUserState> {  HistoricalUserBloc() : super(HistoricalUserState.initial()) {    on<HistoricalUserEvent>((event, emit) async {      await event.when(        initial: () async {          await _loadHistoricalUsers();        },        didLoadHistoricalUsers: (List<HistoricalUserPB> historicalUsers) {          emit(state.copyWith(historicalUsers: historicalUsers));        },        openHistoricalUser: (HistoricalUserPB historicalUser) async {          await UserBackendService.openHistoricalUser(historicalUser);          emit(state.copyWith(openedHistoricalUser: historicalUser));        },      );    });  }  Future<void> _loadHistoricalUsers() async {    final result = await UserBackendService.loadHistoricalUsers();    result.fold(      (historicalUsers) {        historicalUsers            .retainWhere((element) => element.authType == AuthTypePB.Local);        add(HistoricalUserEvent.didLoadHistoricalUsers(historicalUsers));      },      (error) => Log.error(error),    );  }}@freezedclass HistoricalUserEvent with _$HistoricalUserEvent {  const factory HistoricalUserEvent.initial() = _Initial;  const factory HistoricalUserEvent.didLoadHistoricalUsers(    List<HistoricalUserPB> historicalUsers,  ) = _DidLoadHistoricalUsers;  const factory HistoricalUserEvent.openHistoricalUser(    HistoricalUserPB historicalUser,  ) = _OpenHistoricalUser;}@freezedclass HistoricalUserState with _$HistoricalUserState {  const factory HistoricalUserState({    required List<HistoricalUserPB> historicalUsers,    required HistoricalUserPB? openedHistoricalUser,  }) = _HistoricalUserState;  factory HistoricalUserState.initial() => const HistoricalUserState(        historicalUsers: [],        openedHistoricalUser: null,      );}
 |