가입 약관 동의 기록 · 서비스 탈퇴 · 온보딩 6단계 · Coach Mark
This commit is contained in:
+23
-2
@@ -1,14 +1,35 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'app.dart';
|
||||
import 'core/firebase/firebase_boot.dart';
|
||||
import 'features/auth/auth_repository.dart';
|
||||
import 'features/auth/firebase_auth_session.dart';
|
||||
import 'features/auth/onboarding_data.dart';
|
||||
|
||||
/// 소개 3장(온보딩 ①)을 이 기기에서 넘겼는가.
|
||||
const _introSeenKey = 'onboarding.introSeen';
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
// 설정 파일이 없으면 목 모드로 내려간다. 여기서 throw 하지 않는다 — FirebaseBoot 참고.
|
||||
await FirebaseBoot.init();
|
||||
final session = FirebaseBoot.isLive ? FirebaseAuthSession() : null;
|
||||
runApp(FancakeApp(auth: AuthRepository(session: session)));
|
||||
final live = FirebaseBoot.isLive;
|
||||
final session = live ? FirebaseAuthSession() : null;
|
||||
var introSeen = true;
|
||||
try {
|
||||
introSeen =
|
||||
(await SharedPreferences.getInstance()).getBool(_introSeenKey) ?? false;
|
||||
} catch (_) {}
|
||||
runApp(
|
||||
FancakeApp(
|
||||
auth: AuthRepository(
|
||||
session: session,
|
||||
needsOnboarding: live ? needsOnboardingFirestore : null,
|
||||
introPending: !introSeen,
|
||||
onIntroDone: () async => (await SharedPreferences.getInstance())
|
||||
.setBool(_introSeenKey, true),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user