feat(#175,#176): modale générique Ajouter une carte + CTA pilule

Creation absence (parent) et conge/arret (AM) via une seule modale
Material, catalogue UI extensible, calendrier de periode compact.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-05 22:36:29 +02:00
co-authored by Cursor
parent 5d36b0f4c1
commit a36e9ef176
8 changed files with 677 additions and 32 deletions
@@ -11,7 +11,7 @@ import 'package:p_tits_pas/screens/home/parent_screen/agenda_absences_stub.dart'
/// Dashboard assistante maternelle – coquille 3 colonnes quotidien (#169).
/// Colonne gauche : sélecteur couple (#170) + feed bulles (#174).
/// Création « Ajouter une bulle » (congé / arrêt) : ticket #176.
/// Création « Ajouter une carte » : modale générique (#175, réutilisée #176).
class AmDashboardScreen extends StatefulWidget {
const AmDashboardScreen({super.key});
@@ -117,7 +117,6 @@ class _AmDashboardScreenState extends State<AmDashboardScreen> {
error: _couplesError,
onRetry: _loadCouples,
onCoupleSelected: _selectCouple,
onAjouterBulle: () => _soon('Ajouter une bulle (#176)'),
),
centerColumn: const QuotidienColumnPlaceholder(
title: 'Blog',
@@ -140,7 +139,7 @@ class _AmDashboardScreenState extends State<AmDashboardScreen> {
}
}
/// Colonne gauche : bandeau couple AM (#170) puis flux de cartes (#174).
/// Colonne gauche : bandeau couple AM (#170) puis flux de cartes (#174 / #175).
class _LeftColumn extends StatelessWidget {
final List<CoupleGarde> couples;
final String? selectedCoupleId;
@@ -148,7 +147,6 @@ class _LeftColumn extends StatelessWidget {
final String? error;
final VoidCallback onRetry;
final ValueChanged<CoupleGarde> onCoupleSelected;
final VoidCallback onAjouterBulle;
const _LeftColumn({
required this.couples,
@@ -157,7 +155,6 @@ class _LeftColumn extends StatelessWidget {
required this.error,
required this.onRetry,
required this.onCoupleSelected,
required this.onAjouterBulle,
});
@override
@@ -180,7 +177,6 @@ class _LeftColumn extends StatelessWidget {
Expanded(
child: CartesFeed(
placementId: selectedCoupleId,
onAjouterBulle: onAjouterBulle,
),
),
],
@@ -115,7 +115,6 @@ class _ParentDashboardScreenState extends State<ParentDashboardScreen> {
error: _couplesError,
onRetry: _loadCouples,
onCoupleSelected: _selectCouple,
onAjouterBulle: () => _soon('Ajouter une bulle'),
),
centerColumn: const QuotidienColumnPlaceholder(
title: 'Blog',
@@ -138,7 +137,7 @@ class _ParentDashboardScreenState extends State<ParentDashboardScreen> {
}
}
/// Colonne gauche : bandeau couple (#167) puis flux de cartes (#173).
/// Colonne gauche : bandeau couple (#167) puis flux de cartes (#173 / #175).
class _LeftColumn extends StatelessWidget {
final List<CoupleGarde> couples;
final String? selectedCoupleId;
@@ -146,7 +145,6 @@ class _LeftColumn extends StatelessWidget {
final String? error;
final VoidCallback onRetry;
final ValueChanged<CoupleGarde> onCoupleSelected;
final VoidCallback onAjouterBulle;
const _LeftColumn({
required this.couples,
@@ -155,7 +153,6 @@ class _LeftColumn extends StatelessWidget {
required this.error,
required this.onRetry,
required this.onCoupleSelected,
required this.onAjouterBulle,
});
@override
@@ -177,7 +174,6 @@ class _LeftColumn extends StatelessWidget {
Expanded(
child: CartesFeed(
placementId: selectedCoupleId,
onAjouterBulle: onAjouterBulle,
),
),
],