git lixo 2
This commit is contained in:
@@ -8,6 +8,8 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
import 'package:playmaker/pages/status_page.dart';
|
||||
import '../utils/size_extension.dart';
|
||||
import 'settings_screen.dart';
|
||||
// 👇 Importa o ficheiro onde meteste o StatCard e o SportGrid
|
||||
// import 'home_widgets.dart';
|
||||
|
||||
class HomeScreen extends StatefulWidget {
|
||||
const HomeScreen({super.key});
|
||||
@@ -38,7 +40,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
];
|
||||
|
||||
return Scaffold(
|
||||
backgroundColor: Theme.of(context).scaffoldBackgroundColor, // Fundo dinâmico
|
||||
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
|
||||
appBar: AppBar(
|
||||
title: Text('PlayMaker', style: TextStyle(fontSize: 20 * context.sf)),
|
||||
backgroundColor: AppTheme.primaryRed,
|
||||
@@ -46,7 +48,6 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.person, size: 24 * context.sf),
|
||||
onPressed: () {
|
||||
// 👇 MAGIA ACONTECE AQUI 👇
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => const SettingsScreen()),
|
||||
@@ -80,7 +81,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
void _showTeamSelector(BuildContext context) {
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
backgroundColor: Theme.of(context).colorScheme.surface, // Fundo dinâmico
|
||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(20 * context.sf))),
|
||||
builder: (context) {
|
||||
return StreamBuilder<List<Map<String, dynamic>>>(
|
||||
@@ -96,7 +97,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
itemBuilder: (context, index) {
|
||||
final team = teams[index];
|
||||
return ListTile(
|
||||
title: Text(team['name'], style: TextStyle(color: Theme.of(context).colorScheme.onSurface)), // Texto dinâmico
|
||||
title: Text(team['name'], style: TextStyle(color: Theme.of(context).colorScheme.onSurface)),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
_selectedTeamId = team['id'];
|
||||
@@ -195,11 +196,55 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
Text('Histórico de Jogos', style: TextStyle(fontSize: 20 * context.sf, fontWeight: FontWeight.bold, color: textColor)),
|
||||
SizedBox(height: 16 * context.sf),
|
||||
|
||||
// 👇 AQUI ESTÁ O NOVO CARTÃO VAZIO PARA QUANDO NÃO HÁ EQUIPA 👇
|
||||
_selectedTeamName == "Selecionar Equipa"
|
||||
? Container(
|
||||
padding: EdgeInsets.all(20 * context.sf),
|
||||
alignment: Alignment.center,
|
||||
child: Text("Seleciona uma equipa no topo.", style: TextStyle(color: Colors.grey, fontSize: 14 * context.sf)),
|
||||
width: double.infinity,
|
||||
padding: EdgeInsets.all(24.0 * context.sf),
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).cardTheme.color ?? Colors.white,
|
||||
borderRadius: BorderRadius.circular(16 * context.sf),
|
||||
border: Border.all(color: Colors.grey.withOpacity(0.1)),
|
||||
boxShadow: [
|
||||
BoxShadow(color: Colors.black.withOpacity(0.04), blurRadius: 10, offset: const Offset(0, 4)),
|
||||
],
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
padding: EdgeInsets.all(18 * context.sf),
|
||||
decoration: BoxDecoration(color: AppTheme.primaryRed.withOpacity(0.08), shape: BoxShape.circle),
|
||||
child: Icon(Icons.shield_outlined, color: AppTheme.primaryRed, size: 42 * context.sf),
|
||||
),
|
||||
SizedBox(height: 20 * context.sf),
|
||||
Text(
|
||||
"Nenhuma Equipa Ativa",
|
||||
style: TextStyle(fontSize: 18 * context.sf, fontWeight: FontWeight.bold, color: Theme.of(context).colorScheme.onSurface),
|
||||
),
|
||||
SizedBox(height: 8 * context.sf),
|
||||
Text(
|
||||
"Escolha uma equipa no seletor acima para ver as estatísticas e o histórico.",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 13 * context.sf, color: Colors.grey.shade600, height: 1.4),
|
||||
),
|
||||
SizedBox(height: 24 * context.sf),
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
height: 48 * context.sf,
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () => _showTeamSelector(context),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: AppTheme.primaryRed,
|
||||
foregroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10 * context.sf)),
|
||||
),
|
||||
icon: Icon(Icons.touch_app, size: 20 * context.sf),
|
||||
label: Text("Selecionar Agora", style: TextStyle(fontSize: 15 * context.sf, fontWeight: FontWeight.bold)),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
: StreamBuilder<List<Map<String, dynamic>>>(
|
||||
stream: _supabase.from('games').stream(primaryKey: ['id'])
|
||||
@@ -248,17 +293,10 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
if (myScore < oppScore) result = 'D';
|
||||
|
||||
return _buildGameHistoryCard(
|
||||
context: context,
|
||||
opponent: opponent,
|
||||
result: result,
|
||||
myScore: myScore,
|
||||
oppScore: oppScore,
|
||||
date: date,
|
||||
topPts: game['top_pts_name'] ?? '---',
|
||||
topAst: game['top_ast_name'] ?? '---',
|
||||
topRbs: game['top_rbs_name'] ?? '---',
|
||||
topDef: game['top_def_name'] ?? '---',
|
||||
mvp: game['mvp_name'] ?? '---',
|
||||
context: context, opponent: opponent, result: result,
|
||||
myScore: myScore, oppScore: oppScore, date: date,
|
||||
topPts: game['top_pts_name'] ?? '---', topAst: game['top_ast_name'] ?? '---',
|
||||
topRbs: game['top_rbs_name'] ?? '---', topDef: game['top_def_name'] ?? '---', mvp: game['mvp_name'] ?? '---',
|
||||
);
|
||||
}).toList(),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user