feat(chat): 대화 날짜 구분선을 연결한다

This commit is contained in:
Yu Sung
2026-10-19 10:12:57 +09:00
parent e765c3c75c
commit 7a6d12e871
5 changed files with 185 additions and 8 deletions
@@ -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