تطبيق دردشة — تحدي Dart
منطق تطبيق الدردشة: formatMessageTime ترجع الوقت بصيغة HH:MM (بأصفار في البداية)، و sortMessages ترتب الرسائل حسب الوقت دون تعديل القائمة الأصلية، و groupByDate تجمع الرسائل حسب اليوم، و unreadCount(messages, lastReadId) تعدّ الرسائل التي بعد آخر رسالة مقروءة (كلها إن لم توجد). (يُفحص الكود بنيوياً.)
// نموذج الرسالة
class Message {
final String id;
final String senderId;
final String text;
final DateTime timestamp;
Message({required this.id, required this.senderId, required this.text, required this.timestamp});
}
// تنسيق وقت الرسالة
String formatMessageTime(DateTime time) {
// أكمل: أرجع الوقت بصيغة HH:MM
return '';
}
// ترتيب الرسائل حسب الوقت
List<Message> sortMessages(List<Message> messages) {
// أكمل: رتب من الأقدم للأحدث
return messages;
}
// تجميع الرسائل حسب التاريخ
Map<String, List<Message>> groupByDate(List<Message> messages) {
// أكمل
return {};
}
// عد الرسائل غير المقروءة
int unreadCount(List<Message> messages, String lastReadId) {
// أكمل
return 0;
}حل هذا التحدي يرتبط بفتح دورة «Flutter المتقدم» بحسابك.
ابدأ الحل