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