gh-EmergeTools-Pow/Example/Pow Example/Examples/Transitions/PopExample.swift
Joe Fabisevich 781d455727
Moving Pow to @emergetools
Co-authored-by: Robert Böhnke <robb@robb.is>
Co-authored-by: Kasper Lahti <kasper@lahti.email>
2023-11-29 09:38:34 -05:00

44 lines
1.2 KiB
Swift

import Pow
import SwiftUI
struct PopExample: View, Example {
@State
var isFavorited: Bool = false
var body: some View {
ZStack {
HStack {
if isFavorited {
Image(systemName: "heart.fill")
.foregroundColor(.red)
.transition(
.movingParts.pop(.red)
)
} else {
Image(systemName: "heart")
.foregroundColor(.gray)
.transition(.identity)
}
let favoriteCount = isFavorited ? 143 : 142
Text(favoriteCount.formatted())
.foregroundColor(isFavorited ? .red : .gray)
.animation(isFavorited ? .default.delay(0.4) : nil, value: isFavorited)
}
}
.defaultBackground()
.onTapGesture {
withAnimation(.spring(dampingFraction: 1)) {
isFavorited.toggle()
}
}
.autotoggle($isFavorited, with: .spring(dampingFraction: 1))
}
static let localPath = LocalPath()
static var icon: Image? {
Image(systemName: "rays")
}
}