@@ -4,6 +4,7 @@ import Networking
44struct BookingDetailsView : View {
55 @Environment ( \. safeAreaInsets) var safeAreaInsets : EdgeInsets
66 @Environment ( \. dismiss) private var dismiss
7+ @State private var showingOptions = false
78
89 @ObservedObject private var viewModel : BookingDetailsViewModel
910
@@ -52,10 +53,21 @@ struct BookingDetailsView: View {
5253 ToolbarItem ( placement: . navigationBarTrailing) {
5354 Button {
5455 //TODO: - present an action sheet
55- print ( " On ellipsis item tap " )
56+ showingOptions = true
5657 } label: {
5758 Image ( systemName: " ellipsis " )
5859 }
60+ . confirmationDialog ( " " , isPresented: $showingOptions, titleVisibility: . hidden) {
61+ Button ( Localization . markAsPaid) {
62+ print ( " On mark as paid tap " )
63+ }
64+ Button ( Localization . viewOrder) {
65+ print ( " On view order tap " )
66+ }
67+ Button ( Localization . cancelBookingAction, role: . destructive) {
68+ print ( " On cancel booking tap " )
69+ }
70+ }
5971 }
6072 }
6173 }
@@ -312,6 +324,22 @@ private extension View {
312324
313325private extension BookingDetailsView {
314326 enum Localization {
327+ static let markAsPaid = NSLocalizedString (
328+ " BookingDetailsView.options.markAsPaid " ,
329+ value: " Mark as paid " ,
330+ comment: " Action sheet option to mark a booking as paid. "
331+ )
332+ static let viewOrder = NSLocalizedString (
333+ " BookingDetailsView.options.viewOrder " ,
334+ value: " View order " ,
335+ comment: " Action sheet option to view the order for a booking. "
336+ )
337+ static let cancelBookingAction = NSLocalizedString (
338+ " BookingDetailsView.options.cancelBooking " ,
339+ value: " Cancel booking " ,
340+ comment: " Action sheet option to cancel a booking. "
341+ )
342+
315343 static let cancelBooking = NSLocalizedString (
316344 " BookingDetailsView.customer.cancelBookingButton.title " ,
317345 value: " Cancel booking " ,
0 commit comments