elCaribe app - customization and branding

This commit is contained in:
2025-12-12 19:09:42 -04:00
parent 9e5d0d8ebf
commit ba7deac9f3
402 changed files with 31833 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:news/data/repositories/LanguageJson/languageJsonRepository.dart';
import 'package:news/utils/appLanguages.dart';
abstract class LanguageJsonState {}
class LanguageJsonInitial extends LanguageJsonState {}
class LanguageJsonFetchInProgress extends LanguageJsonState {}
class LanguageJsonFetchSuccess extends LanguageJsonState {
Map<dynamic, dynamic> languageJson;
LanguageJsonFetchSuccess({required this.languageJson});
}
class LanguageJsonFetchFailure extends LanguageJsonState {
final String errorMessage;
LanguageJsonFetchFailure(this.errorMessage);
}
class LanguageJsonCubit extends Cubit<LanguageJsonState> {
final LanguageJsonRepository _languageJsonRepository;
LanguageJsonCubit(this._languageJsonRepository) : super(LanguageJsonInitial());
void fetchCurrentLanguageAndLabels(String currentLanguage) async {
try {
emit(LanguageJsonFetchInProgress());
await _languageJsonRepository.fetchLanguageLabels(currentLanguage).then((value) {
emit(LanguageJsonFetchSuccess(languageJson: value));
});
} catch (e) {
emit(LanguageJsonFetchSuccess(languageJson: appLanguageLabelKeys));
}
}
void getLanguageJson({required String lanCode}) async {
try {
emit(LanguageJsonFetchInProgress());
final result = await _languageJsonRepository.getLanguageJson(lanCode: lanCode);
emit(LanguageJsonFetchSuccess(languageJson: result));
} catch (e) {
emit(LanguageJsonFetchSuccess(languageJson: appLanguageLabelKeys));
}
}
String getTranslatedLabels(String label) {
if (state is LanguageJsonFetchSuccess) {
return (state as LanguageJsonFetchSuccess).languageJson[label] ?? appLanguageLabelKeys[label] ?? label;
} else {
return appLanguageLabelKeys[label] ?? label;
}
}
}