feat: 콘텐츠 수정
- 태그 수정 기능 추가 - 포인트 사용여부 수정 기능 추가
This commit is contained in:
		@@ -124,6 +124,24 @@ struct ContentModifyView: View {
 | 
				
			|||||||
                                .frame(height: 184)
 | 
					                                .frame(height: 184)
 | 
				
			||||||
                                .cornerRadius(6.7)
 | 
					                                .cornerRadius(6.7)
 | 
				
			||||||
                                .padding(.top, 13.3)
 | 
					                                .padding(.top, 13.3)
 | 
				
			||||||
 | 
					                                
 | 
				
			||||||
 | 
					                                Text("태그")
 | 
				
			||||||
 | 
					                                    .font(.custom(Font.bold.rawValue, size: 16.7))
 | 
				
			||||||
 | 
					                                    .foregroundColor(Color.grayee)
 | 
				
			||||||
 | 
					                                    .frame(maxWidth: .infinity, alignment: .leading)
 | 
				
			||||||
 | 
					                                    .padding(.top, 26.7)
 | 
				
			||||||
 | 
					                                
 | 
				
			||||||
 | 
					                                TextField("예: #연애 #커버곡", text: $viewModel.hashtags)
 | 
				
			||||||
 | 
					                                    .autocapitalization(.none)
 | 
				
			||||||
 | 
					                                    .disableAutocorrection(true)
 | 
				
			||||||
 | 
					                                    .font(.custom(Font.medium.rawValue, size: 13.3))
 | 
				
			||||||
 | 
					                                    .foregroundColor(Color.grayee)
 | 
				
			||||||
 | 
					                                    .padding(.vertical, 16.7)
 | 
				
			||||||
 | 
					                                    .padding(.horizontal, 13.3)
 | 
				
			||||||
 | 
					                                    .background(Color.gray22)
 | 
				
			||||||
 | 
					                                    .cornerRadius(6.7)
 | 
				
			||||||
 | 
					                                    .keyboardType(.default)
 | 
				
			||||||
 | 
					                                    .padding(.top, 13.3)
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            .padding(.top, 26.7)
 | 
					                            .padding(.top, 26.7)
 | 
				
			||||||
                            .padding(.horizontal, 13.3)
 | 
					                            .padding(.horizontal, 13.3)
 | 
				
			||||||
@@ -133,6 +151,29 @@ struct ContentModifyView: View {
 | 
				
			|||||||
                                .frame(height: 6.7)
 | 
					                                .frame(height: 6.7)
 | 
				
			||||||
                                .padding(.top, 26.7)
 | 
					                                .padding(.top, 26.7)
 | 
				
			||||||
                            
 | 
					                            
 | 
				
			||||||
 | 
					                            VStack(spacing: 13.3) {
 | 
				
			||||||
 | 
					                                Text("포인트 사용")
 | 
				
			||||||
 | 
					                                    .font(.custom(Font.bold.rawValue, size: 16.7))
 | 
				
			||||||
 | 
					                                    .foregroundColor(Color.grayee)
 | 
				
			||||||
 | 
					                                    .frame(maxWidth: .infinity, alignment: .leading)
 | 
				
			||||||
 | 
					                                
 | 
				
			||||||
 | 
					                                HStack(spacing: 13.3) {
 | 
				
			||||||
 | 
					                                    SelectButtonView(title: "가능", isChecked: viewModel.isPointAvailable) {
 | 
				
			||||||
 | 
					                                        if !viewModel.isPointAvailable {
 | 
				
			||||||
 | 
					                                            viewModel.isPointAvailable = true
 | 
				
			||||||
 | 
					                                        }
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                    
 | 
				
			||||||
 | 
					                                    SelectButtonView(title: "불가능", isChecked: !viewModel.isPointAvailable) {
 | 
				
			||||||
 | 
					                                        if viewModel.isPointAvailable {
 | 
				
			||||||
 | 
					                                            viewModel.isPointAvailable = false
 | 
				
			||||||
 | 
					                                        }
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            .padding(.top, 26.7)
 | 
				
			||||||
 | 
					                            .padding(.horizontal, 13.3)
 | 
				
			||||||
 | 
					                            
 | 
				
			||||||
                            if viewModel.isAdultShowUi {
 | 
					                            if viewModel.isAdultShowUi {
 | 
				
			||||||
                                VStack(spacing: 13.3) {
 | 
					                                VStack(spacing: 13.3) {
 | 
				
			||||||
                                    Text("연령 제한")
 | 
					                                    Text("연령 제한")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,9 +21,11 @@ final class ContentModifyViewModel: ObservableObject {
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    @Published var title: String = ""
 | 
					    @Published var title: String = ""
 | 
				
			||||||
    @Published var detail: String = ""
 | 
					    @Published var detail: String = ""
 | 
				
			||||||
 | 
					    @Published var hashtags: String = ""
 | 
				
			||||||
    @Published var coverImage: UIImage? = nil
 | 
					    @Published var coverImage: UIImage? = nil
 | 
				
			||||||
    @Published var coverImageUrl: String? = nil
 | 
					    @Published var coverImageUrl: String? = nil
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    @Published var isPointAvailable = false
 | 
				
			||||||
    @Published var isAvailableComment = true
 | 
					    @Published var isAvailableComment = true
 | 
				
			||||||
    @Published var isAdult = false
 | 
					    @Published var isAdult = false
 | 
				
			||||||
    @Published var isAdultShowUi = false
 | 
					    @Published var isAdultShowUi = false
 | 
				
			||||||
@@ -56,9 +58,11 @@ final class ContentModifyViewModel: ObservableObject {
 | 
				
			|||||||
                        
 | 
					                        
 | 
				
			||||||
                        self.title = data.title
 | 
					                        self.title = data.title
 | 
				
			||||||
                        self.detail = data.detail
 | 
					                        self.detail = data.detail
 | 
				
			||||||
 | 
					                        self.hashtags = data.tag
 | 
				
			||||||
                        self.isAdult = data.isAdult
 | 
					                        self.isAdult = data.isAdult
 | 
				
			||||||
                        self.isAdultShowUi = !data.isAdult
 | 
					                        self.isAdultShowUi = !data.isAdult
 | 
				
			||||||
                        self.coverImageUrl = data.coverImageUrl
 | 
					                        self.coverImageUrl = data.coverImageUrl
 | 
				
			||||||
 | 
					                        self.isPointAvailable = data.isAvailableUsePoint
 | 
				
			||||||
                        self.isAvailableComment = data.isCommentAvailable
 | 
					                        self.isAvailableComment = data.isCommentAvailable
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
                        if let message = decoded.message {
 | 
					                        if let message = decoded.message {
 | 
				
			||||||
@@ -85,7 +89,9 @@ final class ContentModifyViewModel: ObservableObject {
 | 
				
			|||||||
                contentId: contentId,
 | 
					                contentId: contentId,
 | 
				
			||||||
                title: title != audioContent!.title ? title : nil,
 | 
					                title: title != audioContent!.title ? title : nil,
 | 
				
			||||||
                detail: detail != audioContent!.detail ? detail : nil,
 | 
					                detail: detail != audioContent!.detail ? detail : nil,
 | 
				
			||||||
 | 
					                tags: hashtags != audioContent!.tag ? hashtags : nil,
 | 
				
			||||||
                isAdult: isAdult,
 | 
					                isAdult: isAdult,
 | 
				
			||||||
 | 
					                isPointAvailable: isPointAvailable != audioContent!.isAvailableUsePoint ? isPointAvailable : nil,
 | 
				
			||||||
                isCommentAvailable: isAvailableComment
 | 
					                isCommentAvailable: isAvailableComment
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,8 @@ struct ModifyContentRequest: Encodable {
 | 
				
			|||||||
    let contentId: Int
 | 
					    let contentId: Int
 | 
				
			||||||
    let title: String?
 | 
					    let title: String?
 | 
				
			||||||
    let detail: String?
 | 
					    let detail: String?
 | 
				
			||||||
 | 
					    let tags: String?
 | 
				
			||||||
    let isAdult: Bool
 | 
					    let isAdult: Bool
 | 
				
			||||||
 | 
					    let isPointAvailable: Bool?
 | 
				
			||||||
    let isCommentAvailable: Bool
 | 
					    let isCommentAvailable: Bool
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user