@@ -33,7 +33,7 @@ struct POSOrderDetailsView: View {
3333 title: POSOrderListView . Localization. orderTitle ( order. number) ,
3434 backButtonConfiguration: shouldShowBackButton ? . init( state: . enabled, action: onBack) : nil ,
3535 trailingContent: {
36- actionsSection ( actions : availableActions )
36+ actionsSection ( setup : availableActionsSetup )
3737 } ,
3838 bottomContent: {
3939 headerBottomContent ( for: order)
@@ -426,29 +426,33 @@ private extension POSOrderDetailsView {
426426 }
427427 }
428428
429- var availableActions : [ OrderDetailsAction ] {
430- OrderDetailsAction . allCases
429+ struct OrderDetailsActionsSetup {
430+ let primary : OrderDetailsAction ?
431+ let secondary : [ OrderDetailsAction ]
432+ }
433+
434+ var availableActionsSetup : OrderDetailsActionsSetup {
435+ let available = OrderDetailsAction . allCases
431436 . filter { $0. isAvailable ( for: order, flags: featureFlags) }
432437 . sorted { $0. priority > $1. priority }
438+
439+ let primary = available. first
440+ let secondary = Array ( available. dropFirst ( ) )
441+
442+ return OrderDetailsActionsSetup ( primary: primary, secondary: secondary)
433443 }
434444
435445 @ViewBuilder
436- func actionsSection( actions: [ OrderDetailsAction ] ) -> some View {
437- if actions. isEmpty {
438- EmptyView ( )
439- } else {
446+ func actionsSection( setup: OrderDetailsActionsSetup ) -> some View {
447+ if let primary = setup. primary {
440448 HStack ( spacing: POSSpacing . large) {
441- let primary = actions [ 0 ]
442449 Button ( primary. title, action: handler ( for: primary) )
443450 . buttonStyle ( POSFilledButtonStyle ( size: . extraSmall) )
444451 . accessibilityHint ( primary. accessibilityHint)
445- . lineLimit ( 1 )
446- . minimumScaleFactor ( 0.5 )
447452
448- let overflow = actions. dropFirst ( )
449- if !overflow. isEmpty {
453+ if !setup. secondary. isEmpty {
450454 Menu {
451- ForEach ( Array ( overflow ) ) { action in
455+ ForEach ( setup . secondary ) { action in
452456 Button ( action. title, action: handler ( for: action) )
453457 . accessibilityHint ( action. accessibilityHint)
454458 }
0 commit comments