2024-08-03 07:58:07 +00:00
|
|
|
import 'package:cargo/configs/configs.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
|
|
|
|
|
|
|
|
import '../../application/application.dart';
|
2024-08-19 06:54:43 +00:00
|
|
|
import '../../core/constants/colors.dart';
|
2024-08-03 07:58:07 +00:00
|
|
|
import '../../data/data_sources/local/languages_data_source.dart';
|
|
|
|
|
|
|
|
|
|
class BottomSheetContent extends StatelessWidget {
|
|
|
|
|
const BottomSheetContent({super.key});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return SizedBox(
|
|
|
|
|
height: AppDimensions.normalize(65),
|
|
|
|
|
child: BlocBuilder<LanguageBloc, LanguageState>(
|
|
|
|
|
builder: (context, state) {
|
|
|
|
|
return Container(
|
|
|
|
|
padding: Space.vf(),
|
|
|
|
|
child: ListView.separated(
|
|
|
|
|
itemCount: languages.length,
|
|
|
|
|
separatorBuilder: (context, index) => Padding(
|
|
|
|
|
padding: Space.hf(1),
|
|
|
|
|
child: const Divider(),
|
|
|
|
|
),
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
final lang = languages[index];
|
|
|
|
|
return ListTile(
|
|
|
|
|
title: Text(
|
|
|
|
|
lang.language,
|
|
|
|
|
style: AppText.b1,
|
|
|
|
|
),
|
2024-08-19 06:54:43 +00:00
|
|
|
trailing: Icon(
|
|
|
|
|
state.locale.languageCode == lang.code ? Icons.radio_button_checked : Icons.radio_button_off,
|
|
|
|
|
color: AppColors.primary,
|
|
|
|
|
),
|
2024-08-03 07:58:07 +00:00
|
|
|
onTap: () {
|
|
|
|
|
debugPrint('lang_selection');
|
|
|
|
|
context.read<LanguageBloc>().add(
|
|
|
|
|
LanguageChanged(
|
|
|
|
|
lang: lang,
|
|
|
|
|
context: context,
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
Navigator.of(context).pop();
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onSelectLang(BuildContext context) async {
|
|
|
|
|
await showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
builder: (context) {
|
|
|
|
|
return const BottomSheetContent();
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}
|