// // BoringExtrasMenu.swift // boringNotch // // Created by Harsh Vardhan Goswami on 04/08/24. // import SwiftUI struct BoringLargeButtons: View { var action: () -> Void var icon: Image var title: String var body: some View { Button ( action:action, label: { ZStack { RoundedRectangle(cornerRadius: 12.0).fill(.black).frame(width: 70, height: 70) VStack(spacing: 8) { icon.resizable() .aspectRatio(contentMode: .fit).frame(width:20) Text(title).font(.body) } } }).buttonStyle(PlainButtonStyle()).shadow(color: .black.opacity(0.5), radius: 10) } } struct BoringExtrasMenu : View { @ObservedObject var vm: DynamicIslandViewModel var body: some View { VStack{ HStack(spacing: 20) { hide settings close } } } var github: some View { BoringLargeButtons( action: { NSWorkspace.shared.open(productPage) }, icon: Image(.github), title: "Checkout" ) } var donate: some View { BoringLargeButtons( action: { NSWorkspace.shared.open(sponsorPage) }, icon: Image(systemName: "heart.fill"), title: "Love Us" ) } var settings: some View { SettingsLink(label: { ZStack { RoundedRectangle(cornerRadius: 12.0).fill(.black).frame(width: 70, height: 70) VStack(spacing: 8) { Image(systemName: "gear").resizable() .aspectRatio(contentMode: .fit).frame(width:20) Text("Settings").font(.body) } } }) .buttonStyle(PlainButtonStyle()).shadow(color: .black.opacity(0.5), radius: 10) } var hide: some View { BoringLargeButtons( action: { DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { //vm.openMusic() } }, icon: Image(systemName: "arrow.down.forward.and.arrow.up.backward"), title: "Hide" ) } var close: some View { BoringLargeButtons( action: { DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { NSApp.terminate(nil) } } }, icon: Image(systemName: "xmark"), title: "Exit" ) } } #Preview { BoringExtrasMenu(vm: .init()) }