Atualização geral de optimazação e desing

This commit is contained in:
Carlos Correia
2026-07-07 11:41:15 +01:00
parent e8afe36cd2
commit a8e04ceeb2
37 changed files with 1688 additions and 2900 deletions

View File

@@ -1,8 +1,7 @@
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'dart:async';
import '../main.dart' show supabase;
import 'quiz_prefs.dart';
class QuizResultScreen extends StatefulWidget {
@@ -40,7 +39,7 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
maxScore: widget.maxScore,
);
} else {
final uid = FirebaseAuth.instance.currentUser?.uid;
final uid = supabase.auth.currentUser?.id;
if (uid != null && uid.trim().isNotEmpty) {
await QuizPrefs.saveLastResultForUser(
userId: uid,
@@ -55,25 +54,23 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
}
}
final uid = FirebaseAuth.instance.currentUser?.uid;
final uid = supabase.auth.currentUser?.id;
final userId = (uid ?? '').trim();
if (userId.isNotEmpty &&
scope.isNotEmpty &&
scope.startsWith('${userId}_')) {
final childId = scope.substring(userId.length + 1).trim();
if (childId.isNotEmpty) {
// Fire-and-forget: avoid blocking UI on Firestore (may hang offline).
// Fire-and-forget: avoid blocking UI on erros de rede.
unawaited(
FirebaseFirestore.instance
.collection('users')
.doc(userId)
.collection('children')
.doc(childId)
.set({
'lastScore': widget.finalScore,
'lastMaxScore': widget.maxScore,
'lastQuizAt': FieldValue.serverTimestamp(),
}, SetOptions(merge: true))
supabase
.from('children')
.update({
'last_score': widget.finalScore,
'last_max_score': widget.maxScore,
'last_quiz_at': DateTime.now().toIso8601String(),
})
.eq('id', childId)
.catchError((_) {}),
);
}