HuggingSnap/Views/TransparentBlurView.swift (36 lines of code) (raw):
//
// TransparentBlurView.swift
// HuggingSnap
//
// Created by Cyril Zakka on 2/12/25.
//
import Foundation
import SwiftUI
struct TransparentBlurView: UIViewRepresentable {
var removeAllFilters: Bool = false
func makeUIView(context: Context) -> CustomBlurView {
let view = CustomBlurView(effect: .init(style: .systemUltraThinMaterial))
view.backgroundColor = .clear
return view
}
func updateUIView(_ uiView: CustomBlurView, context: Context) { }
}
class CustomBlurView: UIVisualEffectView {
init(effect: UIBlurEffect) {
super.init(effect: effect)
setup()
}
func setup() {
removeFilters()
registerForTraitChanges([UITraitUserInterfaceStyle.self]) { (self: Self, _) in
DispatchQueue.main.async {
self.removeFilters()
}
}
}
func hideView(_ status: Bool) {
alpha = status ? 0 : 1
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
/// Removing All Filters
private func removeFilters() {
if let filterLayer = layer.sublayers?.first {
filterLayer.filters = []
}
}
}