Refactoring

This commit is contained in:
DahoudG
2024-08-27 21:21:33 +00:00
parent 8e0a005918
commit 6059f64999

View File

@@ -7,47 +7,163 @@ class EventScreen extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Créer un Événement'),
backgroundColor: Colors.blueAccent,
title: const Text('Événements'),
backgroundColor: const Color(0xFF1E1E2C),
actions: [
IconButton(
icon: const Icon(Icons.add_circle_outline, size: 28, color: Color(0xFF1DBF73)),
onPressed: () {
// Logique pour ajouter un nouvel événement
},
),
body: Padding(
],
),
body: ListView.builder(
padding: const EdgeInsets.all(16.0),
itemCount: 10, // Remplacez par le nombre réel d'événements
itemBuilder: (context, index) {
return Card(
color: const Color(0xFF2C2C3E),
margin: const EdgeInsets.symmetric(vertical: 10.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Row(
children: [
CircleAvatar(
backgroundImage: NetworkImage(
'https://example.com/profile_picture.png', // Remplacez par l'URL réelle de l'image de profil
),
radius: 25,
),
SizedBox(width: 10),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Nom Prénom', // Remplacez par le nom réel
style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.bold),
),
Text(
'Posté le 24/08/2024', // Remplacez par la date réelle
style: TextStyle(color: Colors.white70, fontSize: 14),
),
],
),
],
),
const SizedBox(height: 10),
const Text(
'Titre de l\'événement',
style: TextStyle(fontSize: 18, color: Colors.white),
'Titre de l\'événement', // Remplacez par le titre réel
style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold),
),
const SizedBox(height: 8),
TextField(
decoration: InputDecoration(
hintText: 'Entrez le titre de l\'événement',
filled: true,
fillColor: Colors.white.withOpacity(0.1),
border: OutlineInputBorder(
const SizedBox(height: 5),
const Text(
'Description détaillée de l\'événement...', // Remplacez par la description réelle
style: TextStyle(color: Colors.white70, fontSize: 14),
),
const SizedBox(height: 10),
ClipRRect(
borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide.none,
),
hintStyle: const TextStyle(color: Colors.white70),
),
style: const TextStyle(color: Colors.white),
),
const SizedBox(height: 20),
ElevatedButton(
onPressed: () {
// Logique pour créer l'événement
child: Image.network(
'https://example.com/event_image.png', // Remplacez par l'URL réelle de l'image de l'événement
height: 180,
width: double.infinity,
fit: BoxFit.cover,
errorBuilder: (context, error, stackTrace) {
return Image.asset(
'lib/assets/images/placeholder.png', // Chemin vers une image de remplacement locale
height: 180,
width: double.infinity,
fit: BoxFit.cover,
);
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blueAccent,
padding: const EdgeInsets.all(16.0),
),
child: const Text('Créer l\'événement'),
),
const SizedBox(height: 10),
Divider(color: Colors.white.withOpacity(0.2)), // Ligne de séparation discrète
Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
_buildIconButton(
icon: Icons.thumb_up_alt_outlined,
label: 'Réagir',
count: 120, // Remplacez par le nombre réel de j'aimes
onPressed: () {
// Logique pour réagir à l'événement
},
),
_buildIconButton(
icon: Icons.comment_outlined,
label: 'Commenter',
count: 45, // Remplacez par le nombre réel de commentaires
onPressed: () {
// Logique pour commenter l'événement
},
),
_buildIconButton(
icon: Icons.share_outlined,
label: 'Partager',
count: 30, // Remplacez par le nombre réel de partages
onPressed: () {
// Logique pour partager l'événement
},
),
],
),
),
backgroundColor: Colors.black,
const SizedBox(height: 10),
ElevatedButton(
onPressed: () {
// Logique pour participer à l'événement
},
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF1DBF73),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
padding: const EdgeInsets.symmetric(vertical: 12.0),
minimumSize: const Size(double.infinity, 40),
),
child: const Text('Participer', style: TextStyle(color: Colors.white)),
),
],
),
),
);
},
),
backgroundColor: const Color(0xFF1E1E2C),
);
}
Widget _buildIconButton({
required IconData icon,
required String label,
required int count,
required VoidCallback onPressed,
}) {
return Container(
margin: const EdgeInsets.only(right: 8.0), // Espacement entre les boutons
child: Column(
children: [
IconButton(
icon: Icon(icon, color: const Color(0xFF1DBF73), size: 20),
onPressed: onPressed,
),
Text(
'$label ($count)',
style: const TextStyle(color: Colors.white70, fontSize: 12),
),
],
),
);
}
}