54 lines
1.6 KiB
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,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|