Compare commits

..

No commits in common. "d6a9b3fd6687399be0b222361e8f94bd8b5df233" and "b936d27445bceccaa83c1d47887fff6329a2bdec" have entirely different histories.

2 changed files with 10 additions and 48 deletions

View File

@ -20,8 +20,6 @@ class AdminAmChildrenCapacityGrid extends StatelessWidget {
final int capacity; final int capacity;
final void Function(ParentChildSummary child) onOpen; final void Function(ParentChildSummary child) onOpen;
final void Function(ParentChildSummary child) onDetach; final void Function(ParentChildSummary child) onDetach;
/// Clic sur une case libre même flux que « Rattacher un enfant » (#149).
final VoidCallback? onAttachEmpty;
const AdminAmChildrenCapacityGrid({ const AdminAmChildrenCapacityGrid({
super.key, super.key,
@ -29,7 +27,6 @@ class AdminAmChildrenCapacityGrid extends StatelessWidget {
required this.capacity, required this.capacity,
required this.onOpen, required this.onOpen,
required this.onDetach, required this.onDetach,
this.onAttachEmpty,
}); });
@override @override
@ -81,7 +78,7 @@ class AdminAmChildrenCapacityGrid extends StatelessWidget {
); );
} }
if (index < maxSlots) { if (index < maxSlots) {
return _EmptySlot(onTap: onAttachEmpty); return const _EmptySlot();
} }
return const _UnavailableSlot(); return const _UnavailableSlot();
} }
@ -132,52 +129,18 @@ class _UnavailableSlot extends StatelessWidget {
} }
} }
class _EmptySlot extends StatefulWidget { class _EmptySlot extends StatelessWidget {
final VoidCallback? onTap; const _EmptySlot();
const _EmptySlot({this.onTap});
@override
State<_EmptySlot> createState() => _EmptySlotState();
}
class _EmptySlotState extends State<_EmptySlot> {
bool _hovered = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final clickable = widget.onTap != null; return _SlotShell(
return MouseRegion( backgroundColor: Colors.grey.shade50,
onEnter: clickable ? (_) => setState(() => _hovered = true) : null, borderColor: Colors.grey.shade300,
onExit: clickable ? (_) => setState(() => _hovered = false) : null,
cursor: clickable ? SystemMouseCursors.click : MouseCursor.defer,
child: Material(
color: Colors.transparent,
borderRadius: BorderRadius.circular(8),
child: InkWell(
onTap: widget.onTap,
borderRadius: BorderRadius.circular(8),
hoverColor: const Color(0x149CC5C0),
child: _SlotShell(
backgroundColor: _hovered
? const Color(0xFFF3F0FA)
: Colors.grey.shade50,
borderColor: _hovered
? const Color(0xFFB8A4D4)
: Colors.grey.shade300,
child: Center( child: Center(
child: Text( child: Text(
'Place libre', 'Place libre',
style: TextStyle( style: TextStyle(fontSize: 12, color: Colors.grey.shade500),
fontSize: 12,
color: _hovered
? const Color(0xFF6B3FA0)
: Colors.grey.shade500,
fontWeight: _hovered ? FontWeight.w600 : FontWeight.w400,
),
),
),
),
), ),
), ),
); );

View File

@ -745,7 +745,6 @@ class _AdminAmEditModalState extends State<AdminAmEditModal>
capacity: capacity, capacity: capacity,
onOpen: _openChild, onOpen: _openChild,
onDetach: _detachChild, onDetach: _detachChild,
onAttachEmpty: _capacityFull ? null : _attachChild,
), ),
], ],
); );