aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Utility/VisualEffectView.swift
blob: 4f72a6eafa7e70707365c513dd42cc2639ec6e28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import SwiftUI

public struct VisualEffectView: NSViewRepresentable {
  let material: NSVisualEffectView.Material
  let blendingMode: NSVisualEffectView.BlendingMode
  
  public init(
    material: NSVisualEffectView.Material = .contentBackground,
    blendingMode: NSVisualEffectView.BlendingMode = .withinWindow
  ) {
    self.material = material
    self.blendingMode = blendingMode
  }
  
  public func makeNSView(context: Context) -> NSVisualEffectView {
    let visualEffectView = NSVisualEffectView()
    visualEffectView.material = material
    visualEffectView.blendingMode = blendingMode
    visualEffectView.state = NSVisualEffectView.State.active
    return visualEffectView
  }
  
  public func updateNSView(_ visualEffectView: NSVisualEffectView, context: Context) {
    visualEffectView.material = material
    visualEffectView.blendingMode = blendingMode
  }
}