cargo66/lib/presentation/widgets/lang_selection.dart

65 lines
2.0 KiB
Dart
Raw Normal View History

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