fix: Gitea issues #27, #28, #30
All checks were successful
Security Checks / dependency-audit (push) Successful in 13s
Security Checks / secret-scanning (push) Successful in 4s
Security Checks / dockerfile-lint (push) Successful in 4s

#28 — Return key now inserts new line in AI chat:
TextField replaced with TextField(axis: .vertical) + lineLimit(1...5).
Return = new line, send button submits. Removed .onSubmit.

#27 — Delete foods in food library:
Long-press context menu with "Delete" option on each food item.
Calls DELETE /api/fitness/foods/{id} and reloads.

#30 — Camera + photo library options:
Replaced PhotosPicker with a Menu offering "Take Photo" (camera)
and "Photo Library" (picker). CameraView wraps UIImagePickerController.
handleCameraImage() in ViewModel resizes and sends same as photo picker.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Yusuf Suleman
2026-04-04 22:21:13 -05:00
parent fa3932c597
commit 55ef010370
6 changed files with 102 additions and 7 deletions

View File

@@ -24,6 +24,7 @@
A10067 /* TripImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10067 /* TripImageView.swift */; };
A10068 /* TripPlaceholderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10068 /* TripPlaceholderView.swift */; };
A10069 /* TripDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10069 /* TripDetailView.swift */; };
A10070 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10070 /* CameraView.swift */; };
A10006 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10006 /* LoginView.swift */; };
A10007 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10007 /* HomeView.swift */; };
A10008 /* HomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10008 /* HomeViewModel.swift */; };
@@ -110,6 +111,7 @@
B10067 /* TripImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TripImageView.swift; sourceTree = "<group>"; };
B10068 /* TripPlaceholderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TripPlaceholderView.swift; sourceTree = "<group>"; };
B10069 /* TripDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TripDetailView.swift; sourceTree = "<group>"; };
B10070 /* CameraView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraView.swift; sourceTree = "<group>"; };
B10006 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = "<group>"; };
B10007 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = "<group>"; };
B10008 /* HomeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewModel.swift; sourceTree = "<group>"; };
@@ -331,6 +333,7 @@
B10027 /* MacroRing.swift */,
B10028 /* MacroBar.swift */,
B10029 /* LoadingView.swift */,
B10070 /* CameraView.swift */,
);
path = Components;
sourceTree = "<group>";
@@ -598,6 +601,7 @@
A10067 /* TripImageView.swift in Sources */,
A10068 /* TripPlaceholderView.swift in Sources */,
A10069 /* TripDetailView.swift in Sources */,
A10070 /* CameraView.swift in Sources */,
A10006 /* LoginView.swift in Sources */,
A10007 /* HomeView.swift in Sources */,
A10008 /* HomeViewModel.swift in Sources */,