You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

40 lines
1.4 KiB

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<AppEvent, AppState> {
/// ------------constructor------------
AppBloc() : super(const AppState()) {
on<InitLocaleEvent>(_initLocaleEvent);
on<ChangeLocaleEvent>(_changeLocaleEvent);
}
/// ------------UseCases------------
/// ------------Variables------------
/// ------------Controllers------------
/// ------------Functions------------
/// ------------Event Calls------------
FutureOr<void> _initLocaleEvent(InitLocaleEvent event,
Emitter<AppState> 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<void> _changeLocaleEvent(ChangeLocaleEvent event,
Emitter<AppState> emit) {
emit(state.copyWith(locale: event.locale));
}
}