Atulização do quiz | Porcentagem na base de dados | Telas de Contrato com o usuario
This commit is contained in:
@@ -6,7 +6,10 @@ import 'package:flutter/services.dart';
|
||||
import 'package:lottie/lottie.dart';
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
import 'auth_gate.dart' show pendingPrivacyUserId, pendingTermsUserId;
|
||||
import 'main.dart' show supabase;
|
||||
import 'privacy_gate_prefs.dart';
|
||||
import 'terms_gate_prefs.dart';
|
||||
import 'widgets/app_gradients.dart';
|
||||
import 'widgets/entrance.dart';
|
||||
import 'widgets/name_input_formatter.dart';
|
||||
@@ -114,6 +117,19 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
throw StateError('Usuário não encontrado após criar conta.');
|
||||
}
|
||||
|
||||
// Antes de persistir o perfil (o que já faz o AuthGate considerar a
|
||||
// sessão válida), marca esta conta como pendente de consentimento
|
||||
// de privacidade e de aceitação dos Termos — o AuthGate mostra
|
||||
// primeiro o PrivacyGateScreen e, só depois de aceite, o
|
||||
// TermsGateScreen, em vez do LoggedHome, enquanto estes uids
|
||||
// estiverem marcados. Grava também em disco (não só em memória)
|
||||
// para os gates sobreviverem caso o processo seja morto antes de o
|
||||
// utilizador responder.
|
||||
pendingPrivacyUserId.value = user.id;
|
||||
unawaited(PrivacyGatePrefs.setPendingUid(user.id));
|
||||
pendingTermsUserId.value = user.id;
|
||||
unawaited(TermsGatePrefs.setPendingUid(user.id));
|
||||
|
||||
// Precisa de terminar antes de navegar: o AuthGate só mostra a app
|
||||
// depois de confirmar que existe um perfil na base de dados.
|
||||
await _persistRegistrationData(uid: user.id, name: name, email: email);
|
||||
|
||||
Reference in New Issue
Block a user