Skip to content

Commit

Permalink
SwiftUI View Extension: Improve pointer interaction
Browse files Browse the repository at this point in the history
Avoiding AnyView because it erases the identity of the View and can cause performance issues
  • Loading branch information
imthath-m committed Feb 2, 2024
1 parent 4669412 commit aae7d92
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions ios/FluentUI/Core/SwiftUI+ViewModifiers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ extension View {
/// Enables iPad Pointer interaction for the view if available.
/// - Parameter isEnabled: Whether the pointer interaction should be enabled.
/// - Returns: The modified view.
func pointerInteraction(_ isEnabled: Bool) -> AnyView {
if isEnabled {
return AnyView(self.hoverEffect())
@ViewBuilder func pointerInteraction(_ isEnabled: Bool) -> some View {
if #available(iOS 17.0, *) {
hoverEffect(isEnabled: isEnabled)
} else if isEnabled {
hoverEffect()
} else {
self
}

return AnyView(self)
}

/// Measures the size of a view, monitors when its size is updated, and takes a closure to be called when it does
Expand Down

0 comments on commit aae7d92

Please sign in to comment.