feat: 콘텐츠 수정

- 태그 수정 기능 추가
- 포인트 사용여부 수정 기능 추가
This commit is contained in:
Yu Sung
2025-06-04 17:40:02 +09:00
parent 677e8cac0a
commit 842da82faf
3 changed files with 49 additions and 0 deletions

View File

@@ -124,6 +124,24 @@ struct ContentModifyView: View {
.frame(height: 184)
.cornerRadius(6.7)
.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(.horizontal, 13.3)
@@ -133,6 +151,29 @@ struct ContentModifyView: View {
.frame(height: 6.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 {
VStack(spacing: 13.3) {
Text("연령 제한")

View File

@@ -21,9 +21,11 @@ final class ContentModifyViewModel: ObservableObject {
@Published var title: String = ""
@Published var detail: String = ""
@Published var hashtags: String = ""
@Published var coverImage: UIImage? = nil
@Published var coverImageUrl: String? = nil
@Published var isPointAvailable = false
@Published var isAvailableComment = true
@Published var isAdult = false
@Published var isAdultShowUi = false
@@ -56,9 +58,11 @@ final class ContentModifyViewModel: ObservableObject {
self.title = data.title
self.detail = data.detail
self.hashtags = data.tag
self.isAdult = data.isAdult
self.isAdultShowUi = !data.isAdult
self.coverImageUrl = data.coverImageUrl
self.isPointAvailable = data.isAvailableUsePoint
self.isAvailableComment = data.isCommentAvailable
} else {
if let message = decoded.message {
@@ -85,7 +89,9 @@ final class ContentModifyViewModel: ObservableObject {
contentId: contentId,
title: title != audioContent!.title ? title : nil,
detail: detail != audioContent!.detail ? detail : nil,
tags: hashtags != audioContent!.tag ? hashtags : nil,
isAdult: isAdult,
isPointAvailable: isPointAvailable != audioContent!.isAvailableUsePoint ? isPointAvailable : nil,
isCommentAvailable: isAvailableComment
)

View File

@@ -11,6 +11,8 @@ struct ModifyContentRequest: Encodable {
let contentId: Int
let title: String?
let detail: String?
let tags: String?
let isAdult: Bool
let isPointAvailable: Bool?
let isCommentAvailable: Bool
}