diff --git a/SodaLive/Sources/Chat/Character/Detail/CharacterDetailView.swift b/SodaLive/Sources/Chat/Character/Detail/CharacterDetailView.swift index a545946..648aedf 100644 --- a/SodaLive/Sources/Chat/Character/Detail/CharacterDetailView.swift +++ b/SodaLive/Sources/Chat/Character/Detail/CharacterDetailView.swift @@ -183,6 +183,7 @@ extension CharacterDetailView { if let imageUrl = viewModel.characterDetail?.imageUrl{ // 배경 이미지 KFImage(URL(string: imageUrl)) + .cancelOnDisappear(true) .resizable() .scaledToFill() .frame(width: screenSize().width, height: screenSize().width, alignment: .top) diff --git a/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailHeaderView.swift b/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailHeaderView.swift index 2d2628e..7e53443 100644 --- a/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailHeaderView.swift +++ b/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailHeaderView.swift @@ -16,6 +16,7 @@ struct OriginalWorkDetailHeaderView: View { VStack(spacing: 0) { if let imageUrl = item.imageUrl { KFImage(URL(string: imageUrl)) + .cancelOnDisappear(true) .resizable() .scaledToFill() .frame(width: 168, height: 168 * 432 / 306) diff --git a/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailView.swift b/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailView.swift index a104965..646d199 100644 --- a/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailView.swift +++ b/SodaLive/Sources/Chat/Original/Detail/OriginalWorkDetailView.swift @@ -20,6 +20,7 @@ struct OriginalWorkDetailView: View { ZStack(alignment: .top) { if let imageUrl = viewModel.response?.imageUrl { KFImage(URL(string: imageUrl)) + .cancelOnDisappear(true) .resizable() .scaledToFill() .frame(width: screenSize().width, height: (168 * 288 / 306) + 56) diff --git a/SodaLive/Sources/Chat/Talk/Room/ChatRoomView.swift b/SodaLive/Sources/Chat/Talk/Room/ChatRoomView.swift index ce63ca2..5be5a16 100644 --- a/SodaLive/Sources/Chat/Talk/Room/ChatRoomView.swift +++ b/SodaLive/Sources/Chat/Talk/Room/ChatRoomView.swift @@ -39,6 +39,7 @@ struct ChatRoomView: View { .resizable() .scaledToFit() } + .cancelOnDisappear(true) .resizable() .frame(width: 36, height: 36) .clipShape(Circle()) @@ -339,6 +340,7 @@ struct ChatRoomBgView: View { ZStack { if let url = url { KFImage(URL(string: url)) + .cancelOnDisappear(true) .resizable() .scaledToFill() .frame(width: width, height: height) diff --git a/SodaLive/Sources/Chat/Talk/Room/Message/AiMessageItemView.swift b/SodaLive/Sources/Chat/Talk/Room/Message/AiMessageItemView.swift index 91fee7c..092846b 100644 --- a/SodaLive/Sources/Chat/Talk/Room/Message/AiMessageItemView.swift +++ b/SodaLive/Sources/Chat/Talk/Room/Message/AiMessageItemView.swift @@ -77,6 +77,7 @@ struct AiMessageItemView: View { .resizable() .scaledToFit() } + .cancelOnDisappear(true) .resizable() .frame(width: 30, height: 30) .clipShape(Circle()) @@ -100,6 +101,7 @@ struct AiMessageItemView: View { ZStack { KFImage(URL(string: imageUrl)) + .cancelOnDisappear(true) .resizable() .scaledToFill() // 비율 유지하며 프레임을 채움 diff --git a/SodaLive/Sources/Chat/Talk/Room/Message/TypingIndicatorItemView.swift b/SodaLive/Sources/Chat/Talk/Room/Message/TypingIndicatorItemView.swift index 510b04b..a64ec8f 100644 --- a/SodaLive/Sources/Chat/Talk/Room/Message/TypingIndicatorItemView.swift +++ b/SodaLive/Sources/Chat/Talk/Room/Message/TypingIndicatorItemView.swift @@ -29,6 +29,7 @@ struct TypingIndicatorItemView: View { .resizable() .scaledToFit() } + .cancelOnDisappear(true) .resizable() .frame(width: 30, height: 30) .clipShape(Circle()) diff --git a/SodaLive/Sources/Content/Detail/ContentDetailPreviousNextContentButtonView.swift b/SodaLive/Sources/Content/Detail/ContentDetailPreviousNextContentButtonView.swift index 9fa1aa2..6cd6cd0 100644 --- a/SodaLive/Sources/Content/Detail/ContentDetailPreviousNextContentButtonView.swift +++ b/SodaLive/Sources/Content/Detail/ContentDetailPreviousNextContentButtonView.swift @@ -20,6 +20,7 @@ struct ContentDetailPreviousNextContentButtonView: View { if let previousContent = previousContent { HStack(alignment: .top, spacing: 5.3) { KFImage(URL(string: previousContent.coverUrl)) + .cancelOnDisappear(true) .resizable() .frame(width: 33.3, height: 33.3) .cornerRadius(5.3) @@ -58,6 +59,7 @@ struct ContentDetailPreviousNextContentButtonView: View { if let nextContent = nextContent { HStack(alignment: .top, spacing: 5.3) { KFImage(URL(string: nextContent.coverUrl)) + .cancelOnDisappear(true) .resizable() .frame(width: 33.3, height: 33.3) .cornerRadius(5.3) diff --git a/SodaLive/Sources/Content/Series/Detail/SeriesDetailView.swift b/SodaLive/Sources/Content/Series/Detail/SeriesDetailView.swift index bd82e48..4e01d2f 100644 --- a/SodaLive/Sources/Content/Series/Detail/SeriesDetailView.swift +++ b/SodaLive/Sources/Content/Series/Detail/SeriesDetailView.swift @@ -25,6 +25,7 @@ struct SeriesDetailView: View { if let seriesDetail = viewModel.seriesDetail { KFImage(URL(string: seriesDetail.coverImage)) + .cancelOnDisappear(true) .resizable() .scaledToFit() .frame(maxWidth: .infinity) diff --git a/SodaLive/Sources/Home/RecommendChannel/RecommendChannelContentItemView.swift b/SodaLive/Sources/Home/RecommendChannel/RecommendChannelContentItemView.swift index dad4cd5..4d92d77 100644 --- a/SodaLive/Sources/Home/RecommendChannel/RecommendChannelContentItemView.swift +++ b/SodaLive/Sources/Home/RecommendChannel/RecommendChannelContentItemView.swift @@ -17,6 +17,7 @@ struct RecommendChannelContentItemView: View { var body: some View { HStack(spacing: 16) { KFImage(URL(string: item.thumbnailImageUrl)) + .cancelOnDisappear(true) .resizable() .frame(width: 60, height: 60) .cornerRadius(12) diff --git a/SodaLive/Sources/Home/RecommendChannel/RecommendChannelItemView.swift b/SodaLive/Sources/Home/RecommendChannel/RecommendChannelItemView.swift index 775e0d3..91bdef1 100644 --- a/SodaLive/Sources/Home/RecommendChannel/RecommendChannelItemView.swift +++ b/SodaLive/Sources/Home/RecommendChannel/RecommendChannelItemView.swift @@ -18,6 +18,7 @@ struct RecommendChannelItemView: View { VStack(alignment: .leading, spacing: 12) { HStack(spacing: 6) { KFImage(URL(string: item.creatorProfileImageUrl)) + .cancelOnDisappear(true) .resizable() .aspectRatio(contentMode: .fill) .frame(width: 80, height: 80, alignment: .top) diff --git a/SodaLive/Sources/Live/Room/Dialog/LiveRoomUserProfileDialogView.swift b/SodaLive/Sources/Live/Room/Dialog/LiveRoomUserProfileDialogView.swift index 5b051ae..a951187 100644 --- a/SodaLive/Sources/Live/Room/Dialog/LiveRoomUserProfileDialogView.swift +++ b/SodaLive/Sources/Live/Room/Dialog/LiveRoomUserProfileDialogView.swift @@ -83,6 +83,7 @@ struct LiveRoomUserProfileDialogView: View { .padding(.top, 21.3) KFImage(URL(string: userProfile.profileUrl)) + .cancelOnDisappear(true) .resizable() .aspectRatio(CGSize(width: 1, height: 1), contentMode: .fill) .cornerRadius(8) diff --git a/SodaLive/Sources/Live/Room/V2/LiveRoomViewV2.swift b/SodaLive/Sources/Live/Room/V2/LiveRoomViewV2.swift index 53d55cf..9ac06a3 100644 --- a/SodaLive/Sources/Live/Room/V2/LiveRoomViewV2.swift +++ b/SodaLive/Sources/Live/Room/V2/LiveRoomViewV2.swift @@ -148,6 +148,7 @@ struct LiveRoomViewV2: View { ZStack { if viewModel.isBgOn { KFImage(URL(string: liveRoomInfo.coverImageUrl)) + .cancelOnDisappear(true) .resizable() .scaledToFit() .frame(maxWidth: .infinity, maxHeight: .infinity) diff --git a/SodaLive/Sources/MyPage/MyPageView.swift b/SodaLive/Sources/MyPage/MyPageView.swift index 6ae9c5b..de3b2f0 100644 --- a/SodaLive/Sources/MyPage/MyPageView.swift +++ b/SodaLive/Sources/MyPage/MyPageView.swift @@ -258,6 +258,7 @@ struct ProfileSectionView: View { HStack(spacing: 20) { // Profile Image Placeholder KFImage(URL(string: profileUrl)) + .cancelOnDisappear(true) .resizable() .frame(width: 64, height: 64) .clipShape(Circle()) diff --git a/SodaLive/Sources/Settings/Event/EventDetailView.swift b/SodaLive/Sources/Settings/Event/EventDetailView.swift index 382eb5d..66885c8 100644 --- a/SodaLive/Sources/Settings/Event/EventDetailView.swift +++ b/SodaLive/Sources/Settings/Event/EventDetailView.swift @@ -20,6 +20,7 @@ struct EventDetailView: View { ScrollView(.vertical, showsIndicators: false) { KFImage(URL(string: event.detailImageUrl!)) + .cancelOnDisappear(true) .resizable() .scaledToFit() }