48 lines
1.6 KiB
Dart
Executable File
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,
|
|
),
|
|
);
|
|
}
|
|
}
|