- Migrate from SwiftData to CoreData with CloudKit sync - Add core models: Split, Exercise, Workout, WorkoutLog - Implement tab-based UI: Workout Logs, Splits, Settings - Add SF Symbols picker for split icons - Add exercise picker filtered by split with exclusion of added exercises - Integrate IndieAbout for settings/about section - Add Yams for YAML exercise definition parsing - Include starter exercise libraries (bodyweight, Planet Fitness) - Add Date extensions for formatting (formattedTime, isSameDay) - Format workout date ranges to show time-only for same-day end dates - Add build number update script - Add app icons
40 lines
966 B
Swift
40 lines
966 B
Swift
//
|
|
// SplitsView.swift
|
|
// Workouts
|
|
//
|
|
// Created by rzen on 7/17/25 at 6:55 PM.
|
|
//
|
|
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import CoreData
|
|
|
|
struct SplitsView: View {
|
|
@Environment(\.managedObjectContext) private var viewContext
|
|
|
|
@State private var showingAddSheet: Bool = false
|
|
|
|
var body: some View {
|
|
NavigationStack {
|
|
SplitListView()
|
|
.navigationTitle("Splits")
|
|
.toolbar {
|
|
ToolbarItem(placement: .navigationBarTrailing) {
|
|
Button(action: { showingAddSheet.toggle() }) {
|
|
Image(systemName: "plus")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.sheet(isPresented: $showingAddSheet) {
|
|
SplitAddEditView(split: nil)
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
SplitsView()
|
|
.environment(\.managedObjectContext, PersistenceController.preview.viewContext)
|
|
}
|