mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 16:24:11 +00:00
b46189d05f
* Add a common .inverseMask view modifier and use a blend mode for efficiency.
This also fixes the snapshot rendering 🎉
* Add support for the status emoji on the app's Setting button.
* Align the room header decoration icons with the status emoji.
* Add missing snapshots.
25 lines
768 B
Swift
25 lines
768 B
Swift
//
|
|
// Copyright 2026 Element Creations Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
extension View {
|
|
/// Masks this view using the inverted alpha channel of the given view.
|
|
///
|
|
/// The inverse of `mask(alignment:_:)`.
|
|
func inverseMask(alignment: Alignment = .center, @ViewBuilder _ inverseMask: () -> some View) -> some View {
|
|
mask {
|
|
Rectangle()
|
|
.overlay(alignment: alignment) {
|
|
inverseMask()
|
|
.blendMode(.destinationOut) // erases the rectangle wherever `mask` is opaque.
|
|
}
|
|
.compositingGroup()
|
|
}
|
|
}
|
|
}
|