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
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));
|
|
}
|
|
}
|