//
//  ContentDetailMenuView.swift
//  SodaLive
//
//  Created by klaus on 2023/08/13.
//

import SwiftUI

struct ContentDetailMenuView: View {
    
    @Binding var isShowing: Bool
    
    let isPin: Bool
    let isShowCreatorMenu: Bool
    
    let pinAction: () -> Void
    let modifyAction: () -> Void
    let deleteAction: () -> Void
    let reportAction: () -> Void
    
    var body: some View {
        ZStack {
            Color.black
                .opacity(0.7)
                .ignoresSafeArea()
                .onTapGesture { isShowing = false }
            
            VStack(spacing: 0) {
                Spacer()
                
                VStack(spacing: 13.3) {
                    if isShowCreatorMenu {
                        HStack(spacing: 13.3) {
                            Image(isPin ? "ic_pin_cancel" : "ic_pin")
                            
                            Text(isPin ? "내 채널에 고정 취소" : "내 채널에 고정")
                                .font(.custom(Font.medium.rawValue, size: 16.7))
                                .foregroundColor(.white)
                            
                            Spacer()
                        }
                        .padding(.vertical, 8)
                        .padding(.horizontal, 26.7)
                        .contentShape(Rectangle())
                        .onTapGesture {
                            isShowing = false
                            pinAction()
                        }
                        
                        HStack(spacing: 13.3) {
                            Image("ic_make_message")
                            
                            Text("수정")
                                .font(.custom(Font.medium.rawValue, size: 16.7))
                                .foregroundColor(.white)
                            
                            Spacer()
                        }
                        .padding(.vertical, 8)
                        .padding(.horizontal, 26.7)
                        .contentShape(Rectangle())
                        .onTapGesture {
                            isShowing = false
                            modifyAction()
                        }
                        
                        HStack(spacing: 13.3) {
                            Image("ic_trash_can")
                            
                            Text("삭제")
                                .font(.custom(Font.medium.rawValue, size: 16.7))
                                .foregroundColor(.white)
                            
                            Spacer()
                        }
                        .padding(.vertical, 8)
                        .padding(.horizontal, 26.7)
                        .contentShape(Rectangle())
                        .onTapGesture {
                            isShowing = false
                            deleteAction()
                        }
                    } else {
                        HStack(spacing: 0) {
                            Text("신고")
                                .font(.custom(Font.medium.rawValue, size: 16.7))
                                .foregroundColor(.white)
                            
                            Spacer()
                        }
                        .padding(.vertical, 8)
                        .padding(.horizontal, 26.7)
                        .contentShape(Rectangle())
                        .onTapGesture {
                            isShowing = false
                            reportAction()
                        }
                    }
                }
                .padding(24)
                .background(Color(hex: "222222"))
                .cornerRadius(13.3, corners: [.topLeft, .topRight])
            }
        }
    }
}