import SwiftUI import SwiftData struct HabitRowView: View { @Environment(\.modelContext) private var context @Bindable var habit: Habit var body: some View { HStack(spacing: 12) { Image(systemName: habit.symbolName) .font(.title2) .foregroundStyle(Color(hex: habit.colorHex)) .frame(width: 32) VStack(alignment: .leading, spacing: 2) { Text(habit.name) .font(.headline) if habit.currentStreak > 0 { Text(streakText) .font(.caption) .foregroundStyle(.secondary) } } Spacer() Button { context.toggleCompletion(for: habit, on: .now) } label: { Image(systemName: habit.isCompletedToday ? "checkmark.circle.fill" : "circle") .font(.title) .foregroundStyle(habit.isCompletedToday ? Color(hex: habit.colorHex) : Color.secondary) } .buttonStyle(.borderless) } .padding(.vertical, 4) } private var streakText: String { let days = habit.currentStreak let unit = days == 1 ? "Tag" : "Tage" return "\(days) \(unit) Streak 🔥" } }