From 3bcd2b7dbafae3663f0847bf808ec28566dff4c8 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Wed, 13 Sep 2023 14:39:35 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=A1=9C=EB=94=A9=20=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Message/Text/TextMessageView.swift | 16 ++++++++++++- .../Message/Text/TextMessageViewModel.swift | 23 ++++++++++++++++--- .../Message/Voice/VoiceMessageViewModel.swift | 20 ++++++++-------- 3 files changed, 46 insertions(+), 13 deletions(-) diff --git a/SodaLive/Sources/Message/Text/TextMessageView.swift b/SodaLive/Sources/Message/Text/TextMessageView.swift index ef7234c..9a9cd0c 100644 --- a/SodaLive/Sources/Message/Text/TextMessageView.swift +++ b/SodaLive/Sources/Message/Text/TextMessageView.swift @@ -22,7 +22,8 @@ struct TextMessageView: View { ScrollView(.vertical, showsIndicators: false) { if viewModel.items.count > 0 { LazyVStack(spacing: 26.7) { - ForEach(viewModel.items, id: \.self) { item in + ForEach(0...self, from: responseData) if let data = decoded.data, decoded.success { - self.items.append(contentsOf: data.items) + if data.items.count <= 0 { + self.isLast = true + } else { + self.items.append(contentsOf: data.items) + self.page += 1 + } } else { if let message = decoded.message { self.errorMessage = message @@ -171,7 +178,12 @@ final class TextMessageViewModel: ObservableObject { let decoded = try jsonDecoder.decode(ApiResponse.self, from: responseData) if let data = decoded.data, decoded.success { - self.items.append(contentsOf: data.items) + if data.items.count <= 0 { + self.isLast = true + } else { + self.items.append(contentsOf: data.items) + self.page += 1 + } } else { if let message = decoded.message { self.errorMessage = message @@ -214,7 +226,12 @@ final class TextMessageViewModel: ObservableObject { let decoded = try jsonDecoder.decode(ApiResponse.self, from: responseData) if let data = decoded.data, decoded.success { - self.items.append(contentsOf: data.items) + if data.items.count <= 0 { + self.isLast = true + } else { + self.items.append(contentsOf: data.items) + self.page += 1 + } } else { if let message = decoded.message { self.errorMessage = message diff --git a/SodaLive/Sources/Message/Voice/VoiceMessageViewModel.swift b/SodaLive/Sources/Message/Voice/VoiceMessageViewModel.swift index 36f64cf..4f83d6c 100644 --- a/SodaLive/Sources/Message/Voice/VoiceMessageViewModel.swift +++ b/SodaLive/Sources/Message/Voice/VoiceMessageViewModel.swift @@ -57,15 +57,17 @@ final class VoiceMessageViewModel: ObservableObject { } func loadMessage() { - switch currentFilter { - case .receive: - getReceivedVoiceMessage() - - case .sent: - getSentVoiceMessage() - - case .keep: - getKeepVoiceMessage() + if !isLast { + switch currentFilter { + case .receive: + getReceivedVoiceMessage() + + case .sent: + getSentVoiceMessage() + + case .keep: + getKeepVoiceMessage() + } } }