import 'package:flutter/material.dart'; import 'package:p_tits_pas/models/user.dart'; import 'package:p_tits_pas/services/auth_service.dart'; import 'package:p_tits_pas/widgets/quotidien/quotidien_shell.dart'; import 'package:p_tits_pas/widgets/quotidien/quotidien_theme.dart'; /// Dashboard assistante maternelle – coquille 3 colonnes quotidien (#169). /// Colonne gauche : sélecteur de couple enfant–parent(s) (à venir #170). /// Métier cartes / blog / messagerie : tickets C/D/E. class AmDashboardScreen extends StatefulWidget { const AmDashboardScreen({super.key}); @override State createState() => _AmDashboardScreenState(); } class _AmDashboardScreenState extends State { QuotidienNavSection _section = QuotidienNavSection.liaison; AppUser? _user; @override void initState() { super.initState(); _loadUser(); } Future _loadUser() async { final user = await AuthService.getCurrentUser(); if (mounted) setState(() => _user = user); } String get _displayName { final n = _user?.fullName.trim() ?? ''; if (n.isNotEmpty) return n; final email = _user?.email.trim() ?? ''; if (email.isNotEmpty) return email.split('@').first; return 'Assistante maternelle'; } void _soon(String label) { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('$label — à venir')), ); } @override Widget build(BuildContext context) { return QuotidienShell( selectedSection: _section, onSectionSelected: (s) => setState(() => _section = s), userDisplayName: _displayName, userEmail: _user?.email, onProfileTap: () => _soon('Profil'), onSettingsTap: () => _soon('Paramètres'), // L'AM n'a pas de bouton "Recherche AM" dans le bandeau onSearchAmTap: null, leftColumn: const QuotidienColumnPlaceholder( title: 'Cartes', subtitle: 'Couple enfant–parent(s) et flux de cartes\n(à brancher — tickets #170 / #174).', icon: Icons.style_outlined, ), centerColumn: const QuotidienColumnPlaceholder( title: 'Blog', subtitle: 'Fil du quotidien (affichage par défaut)\n(à brancher — ticket #179).', icon: Icons.auto_stories_outlined, ), rightColumn: const QuotidienColumnPlaceholder( title: 'Messagerie', subtitle: 'Mess. Parents · Mess. RPE\n(à brancher — ticket #185).', icon: Icons.chat_bubble_outline, ), agendaBody: const QuotidienStubPage( title: 'Agenda', message: 'Agenda — contenu à venir (stub #187).', ), contratBody: const QuotidienStubPage( title: 'Contrat', message: 'Contrat — contenu à venir (stub #187).', ), ); } }