Spaces:
Running
Running
| import 'package:flutter/cupertino.dart'; | |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_riverpod/flutter_riverpod.dart'; | |
| import 'package:go_router/go_router.dart'; | |
| import 'package:intl/intl.dart'; | |
| import 'package:trainlog/src/data/models/exercise.dart'; | |
| import 'package:trainlog/src/data/models/set_entry.dart'; | |
| import 'package:trainlog/src/data/models/workout.dart'; | |
| import 'package:trainlog/src/data/models/workout_exercise.dart'; | |
| import 'package:trainlog/src/presentation/providers/exercise_providers.dart'; | |
| import 'package:trainlog/src/presentation/providers/isar_provider.dart'; | |
| import 'package:trainlog/src/presentation/providers/settings_provider.dart'; | |
| import 'package:trainlog/src/presentation/providers/workout_providers.dart'; | |
| class WorkoutFormScreen extends ConsumerStatefulWidget { | |
| final int? workoutId; | |
| const WorkoutFormScreen({super.key, this.workoutId}); | |
| ConsumerState<WorkoutFormScreen> createState() => _WorkoutFormScreenState(); | |
| } | |
| class _WorkoutFormScreenState extends ConsumerState<WorkoutFormScreen> { | |
| final _formKey = GlobalKey<FormState>(); | |
| late DateTime _date; | |
| late WorkoutType _type; | |
| final _noteController = TextEditingController(); | |
| final _moodController = TextEditingController(); | |
| final _durationController = TextEditingController(); | |
| final List<_WorkoutExerciseEntry> _exercises = []; | |
| bool _isLoading = false; | |
| void initState() { | |
| super.initState(); | |
| _date = DateTime.now(); | |
| _type = WorkoutType.strength; | |
| if (widget.workoutId != null) { | |
| _loadWorkout(); | |
| } | |
| } | |
| Future<void> _loadWorkout() async { | |
| setState(() => _isLoading = true); |