fix: fix errors while refreshing token on app start
This commit is contained in:
parent
b58b7ca57a
commit
361c43f3c1
9 changed files with 280 additions and 90 deletions
|
|
@ -1,24 +1,88 @@
|
|||
import 'dart:developer';
|
||||
// import 'dart:developer';
|
||||
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:flutter/services.dart';
|
||||
// import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
// import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
// import 'package:slrpg_app/src/shared/data/remote/secure_auth_store.dart';
|
||||
// import 'src/app.dart';
|
||||
// import 'src/shared/data/local/app_database.dart';
|
||||
// import 'src/shared/data/remote/api_client.dart';
|
||||
// import 'src/shared/data/remote/pb_auth_store.dart';
|
||||
// import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
|
||||
// void main() async {
|
||||
// WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
// try {
|
||||
// await dotenv.load(fileName: '.env');
|
||||
// log('Environment loaded: ${dotenv.env['ENVIRONMENT']}');
|
||||
// log('API URL: ${dotenv.env['API_BASE_URL']}');
|
||||
// } catch (e) {
|
||||
// log('Could not load .env file: $e');
|
||||
// log('Using default production values');
|
||||
// }
|
||||
|
||||
// await SystemChrome.setPreferredOrientations([
|
||||
// DeviceOrientation.portraitUp,
|
||||
// DeviceOrientation.portraitDown,
|
||||
// ]);
|
||||
|
||||
// final database = AppDatabase();
|
||||
|
||||
// const secureStorage = FlutterSecureStorage(
|
||||
// aOptions: AndroidOptions(encryptedSharedPreferences: true));
|
||||
// final authStore = PbAuthStore();
|
||||
// // final authStore = SecureAuthStore(storage: secureStorage);
|
||||
// await authStore.loadFromStorage();
|
||||
|
||||
// runApp(
|
||||
// ProviderScope(
|
||||
// overrides: [
|
||||
// // Datenbank Override (wie gehabt)
|
||||
// appDatabaseProvider.overrideWithValue(database),
|
||||
|
||||
// // ApiClient Override: Wir geben den BEREITS GELADENEN Store rein
|
||||
// apiClientProvider.overrideWith((ref) => ApiClient(
|
||||
// authStore: authStore, // Hier injizieren!
|
||||
// storage: secureStorage)),
|
||||
// ],
|
||||
// child: const SLRPGApp(), // Dein Root Widget (Name prüfen, falls anders)
|
||||
// ),
|
||||
// );
|
||||
// // }
|
||||
// // runApp(
|
||||
// // ProviderScope(
|
||||
// // overrides: [
|
||||
// // appDatabaseProvider.overrideWithValue(database),
|
||||
// // apiClientProvider
|
||||
// // .overrideWith((ref) => ApiClient(authStore: authStore)),
|
||||
// // ],
|
||||
// // child: const SLRPGApp(),
|
||||
// // ),
|
||||
// // );
|
||||
// }
|
||||
|
||||
// final appDatabaseProvider =
|
||||
// Provider<AppDatabase>((ref) => throw UnimplementedError());
|
||||
import 'dart:developer';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'src/app.dart';
|
||||
import 'src/shared/data/local/app_database.dart';
|
||||
import 'src/shared/data/remote/api_client.dart';
|
||||
import 'src/shared/data/remote/pb_auth_store.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:slrpg_app/src/app.dart';
|
||||
import 'package:slrpg_app/src/shared/data/local/app_database.dart';
|
||||
import 'package:slrpg_app/src/shared/data/remote/api_client.dart';
|
||||
import 'package:slrpg_app/src/shared/data/remote/pb_auth_store.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
// 1. Env laden
|
||||
try {
|
||||
await dotenv.load(fileName: '.env');
|
||||
log('Environment loaded: ${dotenv.env['ENVIRONMENT']}');
|
||||
log('API URL: ${dotenv.env['API_BASE_URL']}');
|
||||
} catch (e) {
|
||||
log('Could not load .env file: $e');
|
||||
log('Using default production values');
|
||||
}
|
||||
|
||||
await SystemChrome.setPreferredOrientations([
|
||||
|
|
@ -28,18 +92,13 @@ void main() async {
|
|||
|
||||
final database = AppDatabase();
|
||||
|
||||
// 2. Auth Store erstellen UND laden (Warten!)
|
||||
final authStore = PbAuthStore();
|
||||
await authStore.loadFromStorage();
|
||||
await authStore.loadFromStorage(); // Das ist der entscheidende 'await'
|
||||
|
||||
if (authStore.isValid && authStore.record == null) {
|
||||
final tempClient = ApiClient(authStore: authStore);
|
||||
try {
|
||||
await tempClient.refreshAuth();
|
||||
} catch (e) {
|
||||
log('Initial auth refresh failed: $e');
|
||||
}
|
||||
}
|
||||
log("Auth loaded. Valid? ${authStore.isValid}"); // Debug Log
|
||||
|
||||
// 3. App starten mit injiziertem Store
|
||||
runApp(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
|
|
@ -52,5 +111,6 @@ void main() async {
|
|||
);
|
||||
}
|
||||
|
||||
// Provider Definition für DB (falls noch nicht vorhanden)
|
||||
final appDatabaseProvider =
|
||||
Provider<AppDatabase>((ref) => throw UnimplementedError());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue