PMU/lib/presentation/locale_bloc/locale_bloc.dart

20 lines
790 B
Dart
Raw Normal View History

2024-09-22 20:35:55 +04:00
import 'package:flutter/material.dart';
import 'package:flutter_app/components/locale/l10n/app_locale.dart';
import 'package:flutter_app/presentation/locale_bloc/locale_events.dart';
import 'package:flutter_app/presentation/locale_bloc/locale_state.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class LocaleBloc extends Bloc<LocaleEvent, LocaleState> {
2024-09-25 12:55:28 +04:00
LocaleBloc(Locale defaultLocale)
: super(LocaleState(currentLocale: defaultLocale)) {
2024-09-22 20:35:55 +04:00
on<ChangeLocaleEvent>(_onChangeLocale);
}
2024-09-25 12:55:28 +04:00
Future<void> _onChangeLocale(
ChangeLocaleEvent event, Emitter<LocaleState> emit) async {
2024-09-22 20:35:55 +04:00
final toChange = AppLocale.supportedLocales
.firstWhere((e) => e.languageCode != state.currentLocale.languageCode);
emit(state.copyWith(currentLocale: toChange));
}
2024-09-25 12:55:28 +04:00
}