import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:hadi_hoda_flutter/core/constants/my_constants.dart'; import 'package:hadi_hoda_flutter/core/utils/local_storage.dart'; import 'package:hadi_hoda_flutter/features/app/presentation/bloc/app_event.dart'; import 'package:hadi_hoda_flutter/features/app/presentation/bloc/app_state.dart'; import 'package:hadi_hoda_flutter/features/language/domain/entity/language_entity.dart'; class AppBloc extends Bloc { /// ------------constructor------------ AppBloc() : super(const AppState()) { on(_initLocaleEvent); on(_changeLocaleEvent); } /// ------------UseCases------------ /// ------------Variables------------ /// ------------Controllers------------ /// ------------Functions------------ /// ------------Event Calls------------ FutureOr _initLocaleEvent(InitLocaleEvent event, Emitter emit) { final String selectLanguage = LocalStorage.readData(key: MyConstants.selectLanguage) ?? MyConstants.defaultLanguage; final LanguageEntity findLanguage = MyConstants.languages.singleWhere( (e) => e.code == selectLanguage, ); emit(state.copyWith(locale: findLanguage.locale)); } FutureOr _changeLocaleEvent(ChangeLocaleEvent event, Emitter emit) { emit(state.copyWith(locale: event.locale)); } }