import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import '/database/models/my_profile.dart'; import '/views/main/home.dart'; import '/views/authentication/unauthenticated_landing.dart'; import '/views/authentication/login.dart'; import '/views/authentication/signup.dart'; void main() async { await dotenv.load(fileName: '.env'); // TODO: Replace this with the prod url when server is deployed MyProfile.setServerUrl(dotenv.env['SERVER_URL'] ?? 'http://localhost:8080/'); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); static const String _title = 'Envelope'; @override Widget build(BuildContext context) { return MaterialApp( title: _title, routes: { '/home': (context) => const Home(), '/landing': (context) => const UnauthenticatedLandingWidget(), '/login': (context) => const Login(), '/signup': (context) => const Signup(), }, home: const Scaffold( body: SafeArea( child: Home(), ) ), theme: ThemeData( brightness: Brightness.light, primaryColor: const Color(0xff014bff), backgroundColor: Colors.grey[300], scaffoldBackgroundColor: Colors.grey.shade100, disabledColor: Colors.grey[700], hintColor: Colors.grey.shade700, colorScheme: ColorScheme( brightness: Brightness.light, primary: const Color(0xff014bff), onPrimary: Colors.white, secondary: const Color(0xff1a6dff), onSecondary: Colors.black, tertiary: const Color(0xff3490ff), onTertiary: Colors.black, error: Colors.red, onError: Colors.white, background: Colors.grey.shade300, onBackground: Colors.black, surface: Colors.grey.shade100, onSurface: Colors.black, ), appBarTheme: AppBarTheme( color: Colors.grey.shade100, foregroundColor: Colors.white, iconTheme: const IconThemeData( color: Colors.black, ), toolbarTextStyle: const TextStyle( color: Colors.black, ), systemOverlayStyle: const SystemUiOverlayStyle( statusBarColor: Colors.black, statusBarIconBrightness: Brightness.light, statusBarBrightness: Brightness.light, ) ), iconTheme: const IconThemeData(color: Colors.black), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: Colors.white, labelStyle: const TextStyle( color: Colors.black, fontSize: 30, ), hintStyle: TextStyle( color: Colors.grey.shade600, ), iconColor: Colors.grey.shade500, contentPadding: const EdgeInsets.all(8), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(15), borderSide: const BorderSide( color: Colors.transparent, ) ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(15), borderSide: const BorderSide( color: Colors.transparent, ) ), ), ), darkTheme: ThemeData( brightness: Brightness.dark, primaryColor: const Color(0xffff4a27), backgroundColor: Colors.grey.shade800, scaffoldBackgroundColor: Colors.grey[850], disabledColor: Colors.grey[400], hintColor: Colors.grey.shade400, colorScheme: ColorScheme( brightness: Brightness.dark, primary: const Color(0xffff4a27), onPrimary: Colors.white, secondary: const Color(0xffff5f3a), onSecondary: Colors.white, tertiary: const Color(0xffff7950), onTertiary: Colors.black, error: Colors.red, onError: Colors.white, background: Colors.grey.shade900, onBackground: Colors.white, surface: Colors.grey.shade700, onSurface: Colors.white, ), appBarTheme: AppBarTheme( color: Colors.grey.shade800, iconTheme: IconThemeData( color: Colors.grey.shade400 ), toolbarTextStyle: TextStyle( color: Colors.grey.shade400 ), systemOverlayStyle: const SystemUiOverlayStyle( statusBarColor: Colors.black, statusBarIconBrightness: Brightness.dark, statusBarBrightness: Brightness.dark, ) ), iconTheme: const IconThemeData(color: Colors.white), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: Colors.grey.shade800, hintStyle: TextStyle( color: Colors.grey.shade500, ), iconColor: Colors.grey.shade500, contentPadding: const EdgeInsets.all(8), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(15), borderSide: const BorderSide( color: Colors.transparent, ) ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(15), borderSide: const BorderSide( color: Colors.transparent, ) ), ), ), ); } }