Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
app_view.dart
Go to the documentation of this file.
1import 'package:connect/core/localization/app_localizations.dart';
2import 'package:connect/core/localization/language_cubit.dart';
3import 'package:connect/features/settings/presentation/logic/theme_cubit/theme_cubit.dart';
4import 'package:flutter/material.dart';
5import 'package:flutter_bloc/flutter_bloc.dart';
6import 'package:flutter_screenutil/flutter_screenutil.dart';
7import 'package:flutter_localizations/flutter_localizations.dart'; // Add this import
8
9import 'core/constants/strings.dart';
10import 'core/ui/theme/dark_theme.dart';
11import 'core/ui/theme/light_theme.dart';
12
13class AppView extends StatelessWidget {
14 const AppView({super.key, required this.routerConfig});
15
16 final RouterConfig<Object> routerConfig;
17
18 @override
19 Widget build(BuildContext context) {
20 return BlocBuilder<ThemeModeBloc, ThemeModeState>(
21 builder: (context, themeState) =>
22 BlocBuilder<LanguageCubit, LanguageState>(
23 builder: (context, languageState) => _buildMaterialApp(
24 context,
25 themeState,
26 languageState,
27 ),
28 ),
29 );
30 }
31
33 BuildContext context, ThemeModeState state, LanguageState languageState) {
34 final locale = languageState is LanguageLoaded
35 ? languageState.locale
36 : const Locale('en');
37 return GestureDetector(
38 onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
39 child: ScreenUtilInit(
40 designSize: const Size(375, 812),
41 minTextAdapt: true,
42 splitScreenMode: true,
43 builder: (_, child) => Directionality(
44 textDirection: locale.languageCode == 'ar'
45 ? TextDirection.rtl
46 : TextDirection.ltr,
47 child: MaterialApp.router(
49 debugShowCheckedModeBanner: false,
50 themeMode: state.themeMode,
53 theme: lightTheme,
56 localizationsDelegates: const [
58 // Add these built-in delegates
59 GlobalMaterialLocalizations.delegate,
60 GlobalWidgetsLocalizations.delegate,
61 GlobalCupertinoLocalizations.delegate,
62 ],
63 ),
64 ),
65 ),
66 );
67 }
68}
static const List< Locale > supportedLocales
final Locale locale
static const LocalizationsDelegate< AppLocalizations > delegate
static const List< Locale > supportedLocales
final RouterConfig< Object > routerConfig
Definition app_view.dart:16
final VoidCallback onTap
final String title
final Widget child
override Widget build(BuildContext context)
Definition app_view.dart:19
const AppView({super.key, required this.routerConfig})
Widget _buildMaterialApp(BuildContext context, ThemeModeState state, LanguageState languageState)
Definition app_view.dart:32
static const appTitle
Definition strings.dart:3
final ThemeData darkTheme
final ThemeData lightTheme
final ThemeMode themeMode
const ThemeModeState({required this.themeMode})