//
// Copyright 2025 Element Creations Ltd.
// Copyright 2023-2025 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//

import Compound
import SwiftUI

struct ContextMenuScreen: View {
    var body: some View {
        ScreenContent(navigationTitle: "Context Menus") {
            Text("This component will be rendered differently when running on macOS.")
                .font(.footnote)
                .foregroundColor(.secondary)
                .multilineTextAlignment(.center)
            
            Text("Actions")
                .padding()
                .contentShape(.contextMenuPreview, RoundedRectangle(cornerRadius: 12))
                .contextMenu {
                    Section {
                        Button { } label: {
                            Label("Action", systemImage: "square.dashed")
                        }
                        Button { } label: {
                            Label("Action", systemImage: "square.dashed")
                        }
                        Button { } label: {
                            Label("Disabled", systemImage: "square.dashed")
                        }
                        .disabled(true)
                        Button(role: .destructive) { } label: {
                            Label("Destructive", systemImage: "square.dashed")
                        }
                    }
                    Section {
                        Button { } label: {
                            Label("Action", systemImage: "square.dashed")
                        }
                        Button { } label: {
                            Label("Action", systemImage: "square.dashed")
                        }
                    }
                }
            
            Text("Toggles")
                .padding()
                .contentShape(.contextMenuPreview, RoundedRectangle(cornerRadius: 12))
                .contextMenu {
                    Section {
                        Toggle(isOn: .constant(true)) {
                            Label("Toggle", systemImage: "square.dashed")
                        }
                        Toggle(isOn: .constant(false)) {
                            Label("Toggle", systemImage: "square.dashed")
                        }
                        Toggle(isOn: .constant(false)) {
                            Label("Disabled", systemImage: "square.dashed")
                        }
                        .disabled(true)
                    }
                    Section {
                        Toggle(isOn: .constant(true)) {
                            Label("Toggle", systemImage: "square.dashed")
                        }
                        Toggle(isOn: .constant(true)) {
                            Label("Toggle", systemImage: "square.dashed")
                        }
                    }
                }
        }
    }
}

struct ContextMenuScreen_Previews: PreviewProvider {
    static var previews: some View {
        NavigationStack {
            ContextMenuScreen()
        }
        .previewLayout(.fixed(width: 375, height: 750))
    }
}
