MIF_E31221222/sigap-mobile/lib/main.dart

41 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:sigap/app.dart';
import 'package:sigap/src/cores/repositories/panic-button/panic_button_repository.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
Future<void> main() async {
// Ensure that the Flutter binding is initialized before calling any Flutter
final WidgetsBinding widgetBinding =
WidgetsFlutterBinding.ensureInitialized();
// -- GetX Local Storage
await GetStorage.init();
// -- Await splash until other item load
FlutterNativeSplash.preserve(widgetsBinding: widgetBinding);
// Initialize the authentication repository with Supabase
await Supabase.initialize(
url: dotenv.env['SUPABASE_URL']!,
anonKey: dotenv.env['SUPABASE_ANON_KEY']!,
authOptions: const FlutterAuthClientOptions(
authFlowType: AuthFlowType.pkce,
// detectSessionInUri: true,
),
realtimeClientOptions: RealtimeClientOptions(
logLevel: RealtimeLogLevel.info,
),
storageOptions: const StorageClientOptions(retryAttempts: 10),
);
// Initialize repositories
Get.put(PanicButtonRepository());
await Get.find<PanicButtonRepository>().init();
runApp(const App());
}