// // AudioContentReportDialogView.swift // SodaLive // // Created by klaus on 2023/08/13. // import SwiftUI struct AudioContentReportDialogView: View { @Binding var isShowing: Bool let confirmAction: (String) -> Void @State private var selectedIndex: Int? = nil let reasons = [ "괴롭힘 및 사이버 폭력", "개인정보 침해", "명의도용", "폭력적 위협", "아동학대", "보호대상 집단에 대한 증오심 표현", "스팸 및 사기" ] var body: some View { ZStack { Color.black .opacity(0.7) .ignoresSafeArea() .onTapGesture { isShowing = false } VStack(spacing: 13.3) { Text("콘텐츠 신고") .font(.custom(Font.bold.rawValue, size: 18.3)) .foregroundColor(Color(hex: "eeeeee")) VStack(spacing: 13.3) { ForEach(0..<reasons.count, id: \.self) { index in let reason = reasons[index] HStack(spacing: 8) { Image(selectedIndex == index ? "btn_radio_select_selected" : "btn_radio_select_normal") .resizable() .frame(width: 20, height: 20) Text(reason) .font(.custom(Font.medium.rawValue, size: 14)) .foregroundColor(Color(hex: "eeeeee")) Spacer() } .onTapGesture { selectedIndex = index } } } .padding(13.3) .background(Color(hex: "303030")) .cornerRadius(6.7) .padding(.vertical, 21.3) Text("신고한 콘텐츠를 관리자가 확인 후, 서비스정책을\n위반한 경우 삭제 조치할 예정입니다.") .font(.custom(Font.medium.rawValue, size: 13.3)) .foregroundColor(Color(hex: "dd4500")) .multilineTextAlignment(.center) HStack(spacing: 12) { Text("취소") .font(.custom(Font.bold.rawValue, size: 18.3)) .foregroundColor(Color(hex: "9970ff")) .padding(.vertical, 16) .frame(width: (screenSize().width - 100) / 2) .overlay( RoundedRectangle(cornerRadius: CGFloat(10)) .stroke(lineWidth: 1) .foregroundColor(Color(hex: "9970ff")) ) .onTapGesture { isShowing = false } Text("신고") .font(.custom(Font.bold.rawValue, size: 18.3)) .foregroundColor(Color(hex: "eeeeee")) .padding(.vertical, 16) .frame(width: (screenSize().width - 100) / 2) .background(Color(hex: "9970ff")) .cornerRadius(10) .onTapGesture { if let selectedIndex = selectedIndex { isShowing = false confirmAction(reasons[selectedIndex]) } } } .padding(.top, 13.3) } .padding(24) .frame(width: screenSize().width - 33.3) .background(Color(hex: "222222")) .cornerRadius(13.3) } } }