gh-EmergeTools-Pow/Sources/Pow/Infrastructure/AnyAnimatableViewModifier.swift
Joe Fabisevich 5b95fe95b0
Moving Pow to @emergetools (#36)
Co-authored-by: Robert Böhnke <robb@robb.is>
Co-authored-by: Kasper Lahti <kasper@lahti.email>
2023-11-29 12:08:53 -03:00

24 lines
638 B
Swift

import SwiftUI
internal struct AnyAnimatableViewModifier: ViewModifier, Animatable {
private var _body: (Content) -> AnyView
var animatableData: EmptyAnimatableData
init<Modifier: ViewModifier & Animatable>(_ modifier: Modifier) {
self._body = { content in
AnyView(content.modifier(modifier))
}
self.animatableData = .zero
}
func body(content: Content) -> AnyView {
_body(content)
}
}
internal extension ViewModifier where Self: Animatable {
func eraseToAnyAnimatableViewModifier() -> AnyAnimatableViewModifier {
AnyAnimatableViewModifier(self)
}
}