Kodax

تطبيق دردشة — تحدي 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 المتقدم» بحسابك.

ابدأ الحل