mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-05-01 16:36:10 +00:00
68 lines
2.5 KiB
Dart
68 lines
2.5 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:simplex_chat/app_routes.dart';
|
|
import 'package:simplex_chat/constants.dart';
|
|
import 'package:simplex_chat/custom_scroll_behavior.dart';
|
|
import 'package:simplex_chat/providers/drawer_providers.dart';
|
|
import 'package:simplex_chat/views/contacts/add_contact_view.dart';
|
|
import 'package:simplex_chat/views/contacts/add_contact_web.dart';
|
|
import 'package:simplex_chat/views/group/add_group_view.dart';
|
|
import 'package:simplex_chat/views/home/home_view.dart';
|
|
import 'package:simplex_chat/views/onboarding/intro_view.dart';
|
|
import 'package:simplex_chat/views/scan_invitation/scan_invitation_view.dart';
|
|
import 'package:simplex_chat/views/setup_profile_view.dart';
|
|
import 'package:simplex_chat/views/splash_screen.dart';
|
|
import 'package:url_strategy/url_strategy.dart';
|
|
|
|
/// Basic Structure is setup on [Providers]
|
|
/// Navigations are [namedRoutes]
|
|
|
|
void main() {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
setPathUrlStrategy();
|
|
runApp(const MyApp());
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
const MyApp({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final theme = ThemeData(
|
|
primarySwatch: Colors.teal,
|
|
primaryColor: kPrimaryColor,
|
|
);
|
|
return MultiProvider(
|
|
providers: [
|
|
ChangeNotifierProvider(create: (_) => DrawerProvider()),
|
|
],
|
|
child: Consumer<DrawerProvider>(
|
|
builder: (context, drawerProvider, chidl) => MaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
title: 'SimpleX Chat',
|
|
theme: theme.copyWith(
|
|
colorScheme: theme.colorScheme.copyWith(secondary: kPrimaryColor),
|
|
primaryColorLight: Colors.white,
|
|
),
|
|
builder: (context, widget) {
|
|
return ScrollConfiguration(
|
|
behavior: const ScrollBehaviorModified(), child: widget!);
|
|
},
|
|
initialRoute: AppRoutes.splash,
|
|
routes: <String, WidgetBuilder>{
|
|
AppRoutes.splash: (_) => const SplashScreen(),
|
|
AppRoutes.intro: (_) => const IntroView(),
|
|
AppRoutes.setupProfile: (_) => const SetupProfileView(),
|
|
AppRoutes.home: (_) => const HomeView(),
|
|
AppRoutes.addContact: (_) => const AddContactView(),
|
|
AppRoutes.addContactWeb: (_) => const AddContactWeb(),
|
|
AppRoutes.scanInvitation: (_) => const ScanInvitationView(),
|
|
AppRoutes.addGroup: (_) => const AddGroupView(),
|
|
},
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|