uaestats_fe/lib/presentation/components/lang_toggle.dart
2026-05-16 11:31:32 +05:30

48 lines
1.6 KiB
Dart
Executable File

import 'package:external_repos/external_repos.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/domain/use_cases/preferences_use_case.dart';
import 'package:uae_stat/infrastructure/services/packages/go_router.dart';
import 'package:uae_stat/presentation/components/my_toggle.dart';
class LangToggle extends ConsumerWidget {
const LangToggle({super.key});
@override
Widget build(BuildContext context, ref) {
final isOn = context.language == LanguageLocale.enUS;
return MyToggle(
isOn: isOn,
onTap: () {
final languageAfter = isOn ? LanguageLocale.arAE : LanguageLocale.enUS;
final grs = GoRouterState.of(context);
grs.pathParameters['locale'] = languageAfter.toString();
context.go(grs.pathWithParameters);
ref
.read(
preferencesUseCaseProvider.notifier,
)
.updatePreferences(
(prefs) => prefs.copyWith(
language: languageAfter,
),
);
},
knobTextWhenOn: 'ع',
paddingWhenOn: EdgeInsets.zero,
knobTextWhenOff: 'EN',
pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
);
}
}