DraftRowView.swift (1514B)
1 import SwiftUI 2 3 struct DraftRowView: View { 4 let accentColor: Color 5 let isSelected: Bool 6 let draftID: UUID 7 @Binding var title: String 8 var onEditingChanged: (Bool, Bool) -> Void 9 var returnKeyType: UIReturnKeyType 10 var accessibilityIdentifier: String 11 var focusedField: FocusState<FocusField?>.Binding 12 13 var body: some View { 14 HStack(alignment: .center, spacing: ItemRowMetrics.contentSpacing) { 15 Image(systemName: "circle") 16 .frame(width: 22, height: 22) 17 .foregroundStyle(Color.secondary) 18 .font(.system(size: 17)) 19 20 TappableTextField( 21 text: $title, 22 isCompleted: false, 23 isDragging: false, 24 onEditingChanged: onEditingChanged, 25 returnKeyType: returnKeyType, 26 uiAccessibilityIdentifier: accessibilityIdentifier 27 ) 28 .focused(focusedField, equals: .item(draftID)) 29 .frame(maxWidth: .infinity, alignment: .leading) 30 } 31 .padding(.vertical, ItemRowMetrics.contentVerticalPadding) 32 .padding(.trailing, ItemRowMetrics.contentHorizontalPadding) 33 .padding(.leading, ItemRowMetrics.activeLeadingPadding) 34 .frame(maxWidth: .infinity, alignment: .leading) 35 .contentShape(Rectangle()) 36 .background { 37 Color.itemCard.overlay(accentColor.opacity(0.15)) 38 } 39 .itemCard(accentColor: accentColor, isSelected: isSelected) 40 } 41 }