feat(chat): 대화 날짜 구분선을 연결한다
This commit is contained in:
+20
@@ -1,6 +1,26 @@
|
||||
import Foundation
|
||||
|
||||
struct UserCreatorChatDatedMessage: Identifiable {
|
||||
let message: UserCreatorChatDisplayMessage
|
||||
let separatorDate: Date?
|
||||
|
||||
var id: String { message.id }
|
||||
}
|
||||
|
||||
enum UserCreatorChatDatePresentation {
|
||||
static func rows(from messages: [UserCreatorChatDisplayMessage], calendar: Calendar, timeZone: TimeZone) -> [UserCreatorChatDatedMessage] {
|
||||
var calendar = calendar
|
||||
calendar.timeZone = timeZone
|
||||
var previousDate: Date?
|
||||
|
||||
return messages.filter { $0.messageType == "TEXT" }.map { message in
|
||||
let date = Date(timeIntervalSince1970: TimeInterval(message.createdAt) / 1000)
|
||||
let startsDay = previousDate.map { !calendar.isDate($0, inSameDayAs: date) } ?? true
|
||||
previousDate = date
|
||||
return UserCreatorChatDatedMessage(message: message, separatorDate: startsDay ? date : nil)
|
||||
}
|
||||
}
|
||||
|
||||
static func title(for date: Date, locale: Locale, calendar: Calendar, timeZone: TimeZone) -> String {
|
||||
var calendar = calendar
|
||||
calendar.timeZone = timeZone
|
||||
|
||||
Reference in New Issue
Block a user