//
//  ContentSettingsView.swift
//  SodaLive
//
//  Created by klaus on 10/10/24.
//

import SwiftUI

struct ContentSettingsView: View {
    
    @StateObject var viewModel = ContentSettingsViewModel()
    
    var body: some View {
        ZStack {
            Color.black.ignoresSafeArea()
            
            VStack(spacing: 0) {
                DetailNavigationBar(title: "콘텐츠 보기 설정") {
                    if AppState.shared.isChangeAdultContentVisible {
                        AppState.shared.setAppStep(step: .splash)
                    } else {
                        AppState.shared.back()
                    }
                }
                
                ScrollView(.vertical) {
                    VStack(spacing: 0) {
                        HStack(spacing: 0) {
                            Text("민감한 콘텐츠 보기")
                                .font(.custom(Font.bold.rawValue, size: 15))
                                .foregroundColor(Color(hex: "eeeeee"))
                            
                            Spacer()
                            
                            Image(viewModel.isAdultContentVisible ? "btn_toggle_on_big" : "btn_toggle_off_big")
                                .resizable()
                                .frame(width: 44, height: 27)
                                .onTapGesture {
                                    viewModel.isAdultContentVisible.toggle()
                                }
                        }
                        .frame(height: 50)
                        
                        if viewModel.isAdultContentVisible {
                            Rectangle()
                                .frame(height: 1)
                                .foregroundColor(Color.gray90.opacity(0.3))
                            
                            HStack(spacing: 0) {
                                HStack(spacing: 13.3) {
                                    Image(
                                        viewModel.adultContentPreference == .ALL ?
                                        "btn_radio_select_selected" :
                                            "btn_radio_select_normal"
                                    )
                                    .resizable()
                                    .frame(width: 20, height: 20)
                                    
                                    Text("전체")
                                        .font(.custom(Font.medium.rawValue, size: 13.3))
                                        .foregroundColor(Color.grayee)
                                }
                                .contentShape(Rectangle())
                                .onTapGesture {
                                    viewModel.adultContentPreference = .ALL
                                }
                                
                                Spacer()
                                
                                HStack(spacing: 13.3) {
                                    Image(
                                        viewModel.adultContentPreference == .MALE ?
                                        "btn_radio_select_selected" :
                                            "btn_radio_select_normal"
                                    )
                                    .resizable()
                                    .frame(width: 20, height: 20)
                                    
                                    Text("남성향")
                                        .font(.custom(Font.medium.rawValue, size: 13.3))
                                        .foregroundColor(Color.grayee)
                                }
                                .contentShape(Rectangle())
                                .onTapGesture {
                                    viewModel.adultContentPreference = .MALE
                                }
                                
                                Spacer()
                                
                                HStack(spacing: 13.3) {
                                    Image(
                                        viewModel.adultContentPreference == .FEMALE ?
                                        "btn_radio_select_selected" :
                                            "btn_radio_select_normal"
                                    )
                                    .resizable()
                                    .frame(width: 20, height: 20)
                                    
                                    Text("여성향")
                                        .font(.custom(Font.medium.rawValue, size: 13.3))
                                        .foregroundColor(Color.grayee)
                                }
                                .contentShape(Rectangle())
                                .onTapGesture {
                                    viewModel.adultContentPreference = .FEMALE
                                }
                                Spacer()
                            }
                            .frame(height: 50)
                        }
                    }
                    .padding(.vertical, 6.7)
                    .padding(.horizontal, 13.3)
                    .background(Color.gray22)
                    .cornerRadius(10)
                    .padding(.top, 13.3)
                    .padding(.horizontal, 13.3)
                }
            }
        }
    }
}

#Preview {
    ContentSettingsView()
}
