listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

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 }