Add celebration animations when voting on mood

- Create 10 full-view celebration animations (vortex, explosion, flip, shatter, pulse wave, fireworks, confetti, morph, tunnel, gravity)
- Play random animation when user votes in-app
- Add Animation Lab debug view to preview and test animations
- Animations complete before saving mood to prevent view flash

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-24 11:59:09 -06:00
parent cc9f9f9427
commit 16af463569
5 changed files with 1289 additions and 2 deletions

View File

@@ -53,6 +53,7 @@ struct SettingsContentView: View {
// Debug section
debugSectionHeader
trialDateButton
animationLabButton
#endif
Spacer()
@@ -242,6 +243,47 @@ struct SettingsContentView: View {
.presentationDetents([.medium])
}
}
@State private var showAnimationLab = false
private var animationLabButton: some View {
ZStack {
theme.currentTheme.secondaryBGColor
Button {
showAnimationLab = true
} label: {
HStack(spacing: 12) {
Image(systemName: "sparkles")
.font(.title2)
.foregroundColor(.purple)
.frame(width: 32)
VStack(alignment: .leading, spacing: 2) {
Text("Animation Lab")
.foregroundColor(textColor)
Text("Experiment with vote celebrations")
.font(.caption)
.foregroundStyle(.secondary)
}
Spacer()
Image(systemName: "chevron.right")
.font(.caption)
.foregroundStyle(.tertiary)
}
.padding()
}
}
.fixedSize(horizontal: false, vertical: true)
.cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.sheet(isPresented: $showAnimationLab) {
NavigationStack {
DebugAnimationSettingsView()
}
}
}
#endif
// MARK: - Privacy Lock Toggle