feat(main): 홈 대화 탭을 추가한다

This commit is contained in:
Yu Sung
2026-07-08 15:54:07 +09:00
parent 403eee262f
commit 09443761af
13 changed files with 938 additions and 23 deletions

View File

@@ -47,6 +47,44 @@ enum DateParser {
return I18n.Time.daysAgo(max(1, Int(interval / 86_400)))
}
static func chatListDateText(fromUTC text: String, fallback: String, now: Date = Date()) -> String {
guard let date = parse(text) else {
return fallback
}
let interval = max(0, now.timeIntervalSince(date))
if interval < 60 {
return I18n.Time.justNow
}
if interval < 3600 {
return I18n.Time.minutesAgo(max(1, Int(interval / 60)))
}
if interval < 86_400 {
return I18n.Time.hoursAgo(max(1, Int(interval / 3600)))
}
if interval < 604_800 {
return I18n.Time.daysAgo(max(1, Int(interval / 86_400)))
}
let calendar = Calendar.current
if calendar.component(.year, from: date) == calendar.component(.year, from: now) {
let formatter = DateFormatter()
formatter.locale = Locale(identifier: LanguageHeaderProvider.current)
formatter.timeZone = calendar.timeZone
formatter.dateFormat = I18n.MainChat.monthDayDateFormat
return formatter.string(from: date)
}
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = calendar.timeZone
formatter.dateFormat = "yyyy.MM.dd"
return formatter.string(from: date)
}
// : ISO8601( ) ISO8601 RFC3339
private static let parsers: [(String) -> Date?] = [