Fixed i18n wont update to AverageSelector

This commit is contained in:
Tihanyi Marcell 2023-06-09 14:22:15 +02:00
parent cc40fb9c0f
commit d39cdaef10

View File

@ -9,27 +9,31 @@ import 'package:flutter_feather_icons/flutter_feather_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
final Map<int, String> avgDropItems = { final Map<int, String> avgDropItems = {
0: "annual_average".i18n, 0: "annual_average",
90: "3_months_average".i18n, 90: "3_months_average",
30: "30_days_average".i18n, 30: "30_days_average",
14: "14_days_average".i18n, 14: "14_days_average",
7: "7_days_average".i18n, 7: "7_days_average",
}; };
class PremiumAverageSelector extends StatelessWidget { class PremiumAverageSelector extends StatefulWidget {
const PremiumAverageSelector({Key? key, this.onChanged, required this.value}) : super(key: key); const PremiumAverageSelector({Key? key, this.onChanged, required this.value}) : super(key: key);
final Function(int?)? onChanged; final Function(int?)? onChanged;
final int value; final int value;
@override
_PremiumAverageSelectorState createState() => _PremiumAverageSelectorState();
}
class _PremiumAverageSelectorState extends State<PremiumAverageSelector> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return DropdownButton2<int>( List<DropdownMenuItem<int>> dropdownItems = avgDropItems.keys.map((item) {
items: avgDropItems.keys return DropdownMenuItem<int>(
.map((item) => DropdownMenuItem<int>(
value: item, value: item,
child: Text( child: Text(
avgDropItems[item] ?? "", avgDropItems[item]!.i18n,
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@ -37,16 +41,23 @@ class PremiumAverageSelector extends StatelessWidget {
), ),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
)) );
.toList(), }).toList();
return DropdownButton2<int>(
items: dropdownItems,
onChanged: (int? value) { onChanged: (int? value) {
if (Provider.of<PremiumProvider>(context, listen: false).hasScope(PremiumScopes.gradeStats)) { if (Provider.of<PremiumProvider>(context, listen: false).hasScope(PremiumScopes.gradeStats)) {
if (onChanged != null) onChanged!(value); if (widget.onChanged != null) {
setState(() {
widget.onChanged!(value);
});
}
} else { } else {
PremiumLockedFeatureUpsell.show(context: context, feature: PremiumFeature.gradestats); PremiumLockedFeatureUpsell.show(context: context, feature: PremiumFeature.gradestats);
} }
}, },
value: value, value: widget.value,
iconSize: 14, iconSize: 14,
iconEnabledColor: AppColors.of(context).text, iconEnabledColor: AppColors.of(context).text,
iconDisabledColor: AppColors.of(context).text, iconDisabledColor: AppColors.of(context).text,
@ -71,11 +82,13 @@ class PremiumAverageSelector extends StatelessWidget {
height: 30, height: 30,
child: Row( child: Row(
children: [ children: [
Text(avgDropItems[value] ?? "", Text(
avgDropItems[widget.value]!.i18n,
style: Theme.of(context) style: Theme.of(context)
.textTheme .textTheme
.titleSmall! .titleSmall!
.copyWith(fontWeight: FontWeight.w600, color: AppColors.of(context).text.withOpacity(0.65))), .copyWith(fontWeight: FontWeight.w600, color: AppColors.of(context).text.withOpacity(0.65)),
),
const SizedBox( const SizedBox(
width: 4, width: 4,
), ),