108 lines
3.8 KiB
Swift
108 lines
3.8 KiB
Swift
//
|
|
// 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])
|
|
}
|
|
}
|
|
}
|
|
}
|