feat: KFImage를 사용하는 곳에 .cancelOnDisappear(true) 옵션 추가

This commit is contained in:
Yu Sung
2025-10-23 15:09:50 +09:00
parent 425a767927
commit 9568cb7ecd
14 changed files with 17 additions and 0 deletions

View File

@@ -183,6 +183,7 @@ extension CharacterDetailView {
if let imageUrl = viewModel.characterDetail?.imageUrl{ if let imageUrl = viewModel.characterDetail?.imageUrl{
// //
KFImage(URL(string: imageUrl)) KFImage(URL(string: imageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFill() .scaledToFill()
.frame(width: screenSize().width, height: screenSize().width, alignment: .top) .frame(width: screenSize().width, height: screenSize().width, alignment: .top)

View File

@@ -16,6 +16,7 @@ struct OriginalWorkDetailHeaderView: View {
VStack(spacing: 0) { VStack(spacing: 0) {
if let imageUrl = item.imageUrl { if let imageUrl = item.imageUrl {
KFImage(URL(string: imageUrl)) KFImage(URL(string: imageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFill() .scaledToFill()
.frame(width: 168, height: 168 * 432 / 306) .frame(width: 168, height: 168 * 432 / 306)

View File

@@ -20,6 +20,7 @@ struct OriginalWorkDetailView: View {
ZStack(alignment: .top) { ZStack(alignment: .top) {
if let imageUrl = viewModel.response?.imageUrl { if let imageUrl = viewModel.response?.imageUrl {
KFImage(URL(string: imageUrl)) KFImage(URL(string: imageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFill() .scaledToFill()
.frame(width: screenSize().width, height: (168 * 288 / 306) + 56) .frame(width: screenSize().width, height: (168 * 288 / 306) + 56)

View File

@@ -39,6 +39,7 @@ struct ChatRoomView: View {
.resizable() .resizable()
.scaledToFit() .scaledToFit()
} }
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 36, height: 36) .frame(width: 36, height: 36)
.clipShape(Circle()) .clipShape(Circle())
@@ -339,6 +340,7 @@ struct ChatRoomBgView: View {
ZStack { ZStack {
if let url = url { if let url = url {
KFImage(URL(string: url)) KFImage(URL(string: url))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFill() .scaledToFill()
.frame(width: width, height: height) .frame(width: width, height: height)

View File

@@ -77,6 +77,7 @@ struct AiMessageItemView: View {
.resizable() .resizable()
.scaledToFit() .scaledToFit()
} }
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 30, height: 30) .frame(width: 30, height: 30)
.clipShape(Circle()) .clipShape(Circle())
@@ -100,6 +101,7 @@ struct AiMessageItemView: View {
ZStack { ZStack {
KFImage(URL(string: imageUrl)) KFImage(URL(string: imageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFill() // .scaledToFill() //

View File

@@ -29,6 +29,7 @@ struct TypingIndicatorItemView: View {
.resizable() .resizable()
.scaledToFit() .scaledToFit()
} }
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 30, height: 30) .frame(width: 30, height: 30)
.clipShape(Circle()) .clipShape(Circle())

View File

@@ -20,6 +20,7 @@ struct ContentDetailPreviousNextContentButtonView: View {
if let previousContent = previousContent { if let previousContent = previousContent {
HStack(alignment: .top, spacing: 5.3) { HStack(alignment: .top, spacing: 5.3) {
KFImage(URL(string: previousContent.coverUrl)) KFImage(URL(string: previousContent.coverUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 33.3, height: 33.3) .frame(width: 33.3, height: 33.3)
.cornerRadius(5.3) .cornerRadius(5.3)
@@ -58,6 +59,7 @@ struct ContentDetailPreviousNextContentButtonView: View {
if let nextContent = nextContent { if let nextContent = nextContent {
HStack(alignment: .top, spacing: 5.3) { HStack(alignment: .top, spacing: 5.3) {
KFImage(URL(string: nextContent.coverUrl)) KFImage(URL(string: nextContent.coverUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 33.3, height: 33.3) .frame(width: 33.3, height: 33.3)
.cornerRadius(5.3) .cornerRadius(5.3)

View File

@@ -25,6 +25,7 @@ struct SeriesDetailView: View {
if let seriesDetail = viewModel.seriesDetail { if let seriesDetail = viewModel.seriesDetail {
KFImage(URL(string: seriesDetail.coverImage)) KFImage(URL(string: seriesDetail.coverImage))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFit() .scaledToFit()
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)

View File

@@ -17,6 +17,7 @@ struct RecommendChannelContentItemView: View {
var body: some View { var body: some View {
HStack(spacing: 16) { HStack(spacing: 16) {
KFImage(URL(string: item.thumbnailImageUrl)) KFImage(URL(string: item.thumbnailImageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 60, height: 60) .frame(width: 60, height: 60)
.cornerRadius(12) .cornerRadius(12)

View File

@@ -18,6 +18,7 @@ struct RecommendChannelItemView: View {
VStack(alignment: .leading, spacing: 12) { VStack(alignment: .leading, spacing: 12) {
HStack(spacing: 6) { HStack(spacing: 6) {
KFImage(URL(string: item.creatorProfileImageUrl)) KFImage(URL(string: item.creatorProfileImageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.aspectRatio(contentMode: .fill) .aspectRatio(contentMode: .fill)
.frame(width: 80, height: 80, alignment: .top) .frame(width: 80, height: 80, alignment: .top)

View File

@@ -83,6 +83,7 @@ struct LiveRoomUserProfileDialogView: View {
.padding(.top, 21.3) .padding(.top, 21.3)
KFImage(URL(string: userProfile.profileUrl)) KFImage(URL(string: userProfile.profileUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.aspectRatio(CGSize(width: 1, height: 1), contentMode: .fill) .aspectRatio(CGSize(width: 1, height: 1), contentMode: .fill)
.cornerRadius(8) .cornerRadius(8)

View File

@@ -148,6 +148,7 @@ struct LiveRoomViewV2: View {
ZStack { ZStack {
if viewModel.isBgOn { if viewModel.isBgOn {
KFImage(URL(string: liveRoomInfo.coverImageUrl)) KFImage(URL(string: liveRoomInfo.coverImageUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFit() .scaledToFit()
.frame(maxWidth: .infinity, maxHeight: .infinity) .frame(maxWidth: .infinity, maxHeight: .infinity)

View File

@@ -258,6 +258,7 @@ struct ProfileSectionView: View {
HStack(spacing: 20) { HStack(spacing: 20) {
// Profile Image Placeholder // Profile Image Placeholder
KFImage(URL(string: profileUrl)) KFImage(URL(string: profileUrl))
.cancelOnDisappear(true)
.resizable() .resizable()
.frame(width: 64, height: 64) .frame(width: 64, height: 64)
.clipShape(Circle()) .clipShape(Circle())

View File

@@ -20,6 +20,7 @@ struct EventDetailView: View {
ScrollView(.vertical, showsIndicators: false) { ScrollView(.vertical, showsIndicators: false) {
KFImage(URL(string: event.detailImageUrl!)) KFImage(URL(string: event.detailImageUrl!))
.cancelOnDisappear(true)
.resizable() .resizable()
.scaledToFit() .scaledToFit()
} }