ListlessiOS/Views/DraftRowView.swift (1514B)
1import SwiftUI
2
3struct 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}