Tagebuch + Heim-Tab mit täglichem Background
Tagebuch (Diary):
- DiaryEntry + DiaryMedia + DiaryCreateBody DTOs
- TagebuchView: Liste der Einträge für aktiven Hund mit Titel, Text,
Ortsname, Meilenstein-Stern, Foto-Strip
- AddDiaryEntrySheet: Titel/Text/Datum/Meilenstein/Ort/Tags +
PhotosPicker, nach POST /api/dogs/{id}/diary werden Fotos einzeln
via POST /api/dogs/{id}/diary/{entry_id}/media hochgeladen (mit
ImageResize.resizedJPEG)
Heim-Tab als neuer 1. Tab:
- DashboardSnapshot DTO für /api/dogs/{id}/welcome-dashboard
- ActiveDogStore (@Observable + UserDefaults("activeDogId")): hält
den aktiven Hund app-weit
- HeimView: tägliches Hintergrundfoto aus random_photo.url (rotiert
pro Tag, vom Backend gewählt), Gradient zur Lesbarkeit, Tagezeit-
Begrüßung mit User-Namen, Hund-Picker (Menu), Info-Karten für
letzten Eintrag/nächsten Termin/Gewicht/Eintragszahl,
Quick-Action-Buttons (Tagebuch, Wetter, Erste Hilfe)
Reorganisation:
- 5 Tabs: Heim, Touren, Aufnehmen, Statistik, Mehr
- Hunde-Liste wandert in Mehr → "Hund & Alltag"
- Tagebuch in Mehr → "Hund & Alltag" + erreichbar von Heim
This commit is contained in:
parent
68b084be97
commit
f054b2a07f
8 changed files with 712 additions and 3 deletions
|
|
@ -5,15 +5,15 @@ struct MainTabView: View {
|
|||
|
||||
var body: some View {
|
||||
TabView {
|
||||
HeimView()
|
||||
.tabItem { Label("Heim", systemImage: "house.fill") }
|
||||
|
||||
RoutesListView()
|
||||
.tabItem { Label("Touren", systemImage: "map.fill") }
|
||||
|
||||
TrackingView()
|
||||
.tabItem { Label("Aufnehmen", systemImage: "figure.walk") }
|
||||
|
||||
DogsListView()
|
||||
.tabItem { Label("Hunde", systemImage: "pawprint.fill") }
|
||||
|
||||
StatisticsView()
|
||||
.tabItem { Label("Statistik", systemImage: "chart.bar.fill") }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue