feat: redesign Dynamic Island with phase-driven UI and animations

This commit is contained in:
Millian Lamiaux
2026-05-21 10:21:22 +02:00
parent 67e2bdc8c3
commit c152c22ffb
12 changed files with 472 additions and 76 deletions

View File

@@ -166,6 +166,10 @@ struct PlayerView: View {
.onReceive(NotificationCenter.default.publisher(for: .skipTrackFromActivity)) { _ in
musicVM.skipTrack()
}
.onReceive(NotificationCenter.default.publisher(for: .togglePauseFromActivity)) { _ in
print("[PlayerView] Received togglePauseFromActivity notification (fallback)")
vm.togglePlayPause()
}
.navigationDestination(isPresented: $vm.isComplete) {
CompletionView(session: vm.completedSession, program: program, onDone: { dismiss() })
.navigationBarBackButtonHidden()

View File

@@ -317,5 +317,5 @@ struct ProgramRow: View {
#Preview {
HomeTab(previewVM: HomeViewModel(previewPrograms: [PreviewData.sampleProgram]))
.modelContainer(TabataGoSchema.previewContainer)
.environment(AppState())
.environment(AppState.shared)
}

View File

@@ -48,5 +48,5 @@ struct MainTabView: View {
#Preview {
MainTabView()
.modelContainer(TabataGoSchema.previewContainer)
.environment(AppState())
.environment(AppState.shared)
}

View File

@@ -139,5 +139,5 @@ struct ProfileRow: View {
#Preview {
ProfileTab()
.modelContainer(TabataGoSchema.previewContainer)
.environment(AppState())
.environment(AppState.shared)
}

View File

@@ -103,5 +103,5 @@ struct ProgramsTab: View {
#Preview {
ProgramsTab()
.modelContainer(TabataGoSchema.previewContainer)
.environment(AppState())
.environment(AppState.shared)
}