import 'package:flutter/material.dart'; import 'package:enough_mail/enough_mail.dart'; class MailBoxSelect extends StatefulWidget { static Future show(BuildContext context, {required List mailboxes}) async { return await showDialog( context: context, builder: (context) => MailBoxSelect(mailBoxes: mailboxes), ); } const MailBoxSelect({Key? key, required this.mailBoxes}) : super(key: key); final List mailBoxes; @override _MailBoxSelectState createState() => _MailBoxSelectState(); } class _MailBoxSelectState extends State { Mailbox? _selectedMailbox; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Boîte de réception'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ const Text('Choisissez une boîte de réception'), DropdownButton( value: _selectedMailbox, items: widget.mailBoxes.map((Mailbox mailBox) { return DropdownMenuItem( value: mailBox, child: Text(mailBox.name), ); }).toList(), onChanged: (Mailbox? value) { if (value != null) { setState(() => _selectedMailbox = value); } }), TextButton( onPressed: _selectedMailbox == null ? null : () { Navigator.pop(context, _selectedMailbox!); }, child: const Text('Valider')) ], ), ), ); } }