AcaMate_iOS/AcaMate/1. View/12. Main/123. Chatting/ChatListView.swift
2025-02-14 17:51:08 +09:00

90 lines
3.0 KiB
Swift

//
// ChatListView.swift
// AcaMate
//
// Created by TAnine on 2/14/25.
//
import SwiftUI
struct ChatListView: View {
var chatList: [SummaryChat]
var body: some View {
VStack(spacing: 10) {
ForEach(Array(chatList.enumerated()), id:\.offset) { index, chat in
ChatCellView(summaryChat: chat)
}
}
}
}
struct ChatCellView: View {
var summaryChat: SummaryChat
var body: some View {
VStack(spacing: 8) {
HStack(alignment: .bottom, spacing: 4) {
Image(.Icon.chatting).resizable()
.frame(width: 24, height: 24, alignment: .center)
Text("\(summaryChat.chatName)")
.font(.nps(size: 20))
.foregroundStyle(Color(.Text.detail))
.multilineStyle()
if summaryChat.groupNum > 0 {
HStack(alignment: .center, spacing: 0) {
Image(.Icon.person).resizable()
.frame(width: 12, height: 12, alignment: .center)
Text("\(summaryChat.groupNum)")
.font(.nps(size: 8))
.foregroundStyle(Color(.Text.detail))
}
// .frame(height: 24)
}
Spacer(minLength: 1)
HStack(alignment: .bottom, spacing: 4) {
Image(summaryChat.notiState ? .Icon.notificationON : .Icon.notificationOFF).resizable()
.frame(width: 12, height: 12, alignment: .center)
Text("\(summaryChat.teacherName)")
.font(.nps(font: .bold, size: 12))
.foregroundStyle(Color(.Text.detail))
Text("선생님")
.font(.nps(size: 8))
.foregroundStyle(Color(.Text.detail))
}
}
Text("\(summaryChat.lastMessage)")
.font(.nps(size: 10))
.foregroundStyle(Color(.Text.detail))
.multilineStyle(limit: 2, scale: 1)
.padding(.trailing, 8)
HStack(alignment: .bottom, spacing: 4) {
Spacer(minLength: 1)
Group {
Text("\(summaryChat.dayDate)")
.font(.nps(size: 8))
Text("\(summaryChat.timeDate)")
.font(.nps(font: .bold, size: 12))
}
.foregroundStyle(Color(.Text.detail))
}
}
.padding(EdgeInsets(top: 8, leading: 12, bottom: 8, trailing: 12))
.background {
RoundedRectangle(cornerRadius: 4)
.stroke(Color(.Second.normal), lineWidth: 2)
.fill(Color(.Second.light))
}
.onTapGesture {
printLog("채팅 내부 셀 클릭")
// MARK: TO-DO
}
}
}