import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

import 'Grounded/about/internal/application/TextType.dart';
import 'Grounded/configs/NotificationServiceConfig.dart';
import 'Grounded/designs/Component.dart';
import 'Grounded/see/splash/Splash.dart';
import 'Grounded/utils/Colors.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await dotenv.load(fileName: ".env");

  // Channels are created up front so a full-screen alarm can fire the first
  // time a non-negotiable window closes, not the second.
  await LocalNotificationEngine.init();

  runApp(const GroundedApp());
}

class GroundedApp extends StatelessWidget {
  const GroundedApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Grounded',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        disabledColor: colorGrey,
        scaffoldBackgroundColor: colorPrimaryLight,
        dividerColor: colorDivider,
        colorScheme: ColorScheme.fromSwatch(
          primarySwatch: createMaterialColor(colorPrimaryDark),
        ).copyWith(error: colorNegative),
        dialogTheme: DialogThemeData(
          backgroundColor: colorWhite,
          elevation: 0,
          contentTextStyle: TextStyle(
            color: colorGrey2,
            fontFamily: getTextType(TextType.Regular),
            fontSize: 13,
          ),
          titleTextStyle: TextStyle(
            color: colorPrimaryDark,
            fontFamily: getTextType(TextType.Bold),
            fontSize: 17,
          ),
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(20),
          ),
        ),
      ),
      home: const Splash(),
    );
  }
}
