Line data Source code
1 : import 'package:amadeus_proto/constants.dart';
2 : import 'package:amadeus_proto/exercises/widget/pressable_button.dart';
3 : import 'package:amadeus_proto/pages/language/language_provider.dart';
4 : import 'package:flag/flag_widget.dart';
5 : import 'package:flutter/material.dart';
6 : import 'package:provider/provider.dart';
7 :
8 : class LanguageButton extends StatelessWidget {
9 0 : const LanguageButton(
10 : {super.key,
11 : required this.flag,
12 : required this.language,
13 : required this.languageCode,
14 : required this.countryCode});
15 :
16 : final Flag flag;
17 : final String language;
18 : final String languageCode;
19 : final String countryCode;
20 :
21 0 : @override
22 : Widget build(BuildContext context) {
23 0 : final LanguageProvider provider = context.watch<LanguageProvider>();
24 0 : final Locale selectedLanguage = provider.locale!;
25 :
26 0 : return PressableButton(
27 0 : body: Padding(
28 : padding: const EdgeInsets.symmetric(horizontal: smallPadding),
29 0 : child: Row(
30 0 : children: [
31 0 : Padding(
32 : padding: const EdgeInsets.only(left: 8.0),
33 0 : child: flag,
34 : ),
35 : // need to change 'Language' in the specified language
36 : // LanguageLocalization.context(giezigjze).language,
37 0 : Expanded(
38 0 : child: Text(
39 0 : language,
40 : textAlign: TextAlign.center,
41 : style:
42 : const TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
43 : ),
44 : ),
45 : ],
46 : ),
47 : ),
48 0 : isEnable: selectedLanguage.languageCode != languageCode ||
49 0 : selectedLanguage.countryCode != countryCode,
50 : // isEnable: true,
51 : height: 50,
52 0 : width: MediaQuery.of(context).size.width,
53 0 : shadowColor: Theme.of(context).colorScheme.secondary.withAlpha(150),
54 0 : buttonColor: Theme.of(context).colorScheme.secondary,
55 0 : onPressed: () {
56 0 : provider.setLocale(Locale(languageCode, countryCode));
57 0 : Navigator.of(context).pop();
58 0 : Navigator.of(context).pop();
59 : },
60 : );
61 : }
62 : }
|