placeholders removidos e todos os dados reais colocados, com conquistas e tudo

This commit is contained in:
2026-05-17 17:29:47 +01:00
parent 6ba5c837ce
commit 49a7a6fe02
17 changed files with 4688 additions and 142 deletions

View File

@@ -22,23 +22,34 @@ class QuickAccessWidget extends StatelessWidget {
),
),
const SizedBox(height: 16),
IntrinsicHeight(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
flex: 3,
child: _buildTutorIACard(context),
Column(
children: [
IntrinsicHeight(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
flex: 2,
child: _buildTutorIACard(context),
),
const SizedBox(width: 16),
Expanded(
flex: 2,
child: _buildQuizCard(context),
),
const SizedBox(width: 16),
Expanded(
flex: 2,
child: _buildAchievementsCard(context),
),
],
),
const SizedBox(width: 16),
Expanded(
flex: 2,
child: _buildQuizCard(context),
),
],
),
),
],
),
const SizedBox(height: 16),
_buildQuizManagementCard(context),
const SizedBox(height: 16),
_buildJoinClassCard(context),
],
)
@@ -85,6 +96,42 @@ class QuickAccessWidget extends StatelessWidget {
.then(delay: const Duration(milliseconds: 200));
}
Widget _buildAchievementsCard(BuildContext context) {
final cs = Theme.of(context).colorScheme;
return DashboardActionCardSurface(
title: 'Conquistas',
subtitle: 'Ver medals',
icon: Icons.emoji_events,
minHeight: 150,
iconColor: Colors.amber,
onTap: () => context.go('/student/achievements'),
)
.animate()
.scale(
duration: const Duration(milliseconds: 600),
curve: Curves.elasticOut,
)
.then(delay: const Duration(milliseconds: 200));
}
Widget _buildQuizManagementCard(BuildContext context) {
final cs = Theme.of(context).colorScheme;
return DashboardActionCardSurface(
title: 'Gerenciar Quizzes',
subtitle: 'Ver histórico ou eliminar',
icon: Icons.manage_history,
minHeight: 80,
iconColor: cs.tertiary,
onTap: () => context.go('/quiz-management'),
)
.animate()
.slideY(
duration: const Duration(milliseconds: 800),
curve: Curves.easeOut,
)
.then(delay: const Duration(milliseconds: 200));
}
Widget _buildJoinClassCard(BuildContext context) {
return DashboardActionCard(
title: 'Entrar numa Turma',