MuteDurationMenu.swift (660B)
1 // 2 // MuteDurationMenu.swift 3 // damus 4 // 5 // Created by Charlie Fish on 1/14/24. 6 // 7 8 import SwiftUI 9 10 struct MuteDurationMenu<T: View>: View { 11 var action: (DamusDuration?) -> Void 12 @ViewBuilder var label: () -> T 13 14 var body: some View { 15 Menu { 16 ForEach(DamusDuration.allCases, id: \.self) { duration in 17 Button { 18 action(duration) 19 } label: { 20 Text(duration.title) 21 } 22 } 23 } label: { 24 self.label() 25 } 26 } 27 } 28 29 #Preview { 30 MuteDurationMenu { _ in 31 32 } label: { 33 Text(verbatim: "Mute hashtag") 34 } 35 }