TIF_E41221079/lib/main.dart

54 lines
1.6 KiB
Dart

// lib/main.dart
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:smpn1_lengkong/core/constants/app_colors.dart';
import 'package:smpn1_lengkong/core/routes/app_routes.dart';
import 'package:smpn1_lengkong/core/service/fcm_service.dart';
// 1. Definisikan Navigator Key secara Global
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// 2. Setup Handler Background (Wajib Top Level)
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
// 3. Init Notifikasi
await FcmService().initNotifications();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(375, 812),
minTextAdapt: true,
builder: (context, child) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'SMPN 1 Lengkong',
// 4. Pasang Navigator Key disini
navigatorKey: navigatorKey,
theme: ThemeData(
scaffoldBackgroundColor: AppColors.backgroundWhite,
colorScheme: ColorScheme.fromSeed(seedColor: AppColors.primaryBlue),
useMaterial3: true,
),
initialRoute: AppRoutes.splash,
routes: AppRoutes.routes,
);
},
);
}
}