HuggingChat-Mac/Views/Confetti/ConfettiView.swift (19 lines of code) (raw):
//
// ConfettiView.swift
// HuggingChat-Mac
//
// Created by Cyril Zakka on 8/26/24.
//
import SwiftUI
import SpriteKit
public struct ConfettiView: View {
// Confetti emission duration in seconds.
private var emissionDuration: Double
/// Creates a new confetti view.
/// - Parameters:
/// - emissionDuration: Confetti emission duration in seconds. Duration for all confetto to fall isn't controllable. It's depends on confetto falling speed that are random.
public init(emissionDuration: Double = 2.0) {
self.emissionDuration = emissionDuration
}
public var body: some View {
GeometryReader {
SpriteView(scene: ConfettiScene(size: $0.size, emissionDuration: emissionDuration), options: [.allowsTransparency])
.background(.clear)
.ignoresSafeArea()
.allowsHitTesting(false)
}
}
}
#Preview {
ConfettiView(emissionDuration: 2)
}