diff --git a/client/ios/LayoutKit/LayoutKit/UI/Blocks/DecoratingBlock+UIViewRenderableBlock.swift b/client/ios/LayoutKit/LayoutKit/UI/Blocks/DecoratingBlock+UIViewRenderableBlock.swift index 5656ccf5f..63fe35b11 100644 --- a/client/ios/LayoutKit/LayoutKit/UI/Blocks/DecoratingBlock+UIViewRenderableBlock.swift +++ b/client/ios/LayoutKit/LayoutKit/UI/Blocks/DecoratingBlock+UIViewRenderableBlock.swift @@ -447,6 +447,7 @@ private final class DecoratingView: UIControl, BlockViewProtocol, VisibleBoundsT passVisibleBoundsChanged(from: from, to: to) if model.visibilityParams != nil { + if from == .zero, to == .zero { return } visibilityActionPerformers?.onVisibleBoundsChanged(to: to, bounds: bounds) } } @@ -498,7 +499,7 @@ extension DecoratingView { case let .actions(actions): actions.forEach { $0.perform(sendingFrom: self) } case .contextMenu: - break; + break } } } diff --git a/client/ios/LayoutKit/LayoutKit/ViewModels/VisibilityActionPerformer/VisibilityActionPerformers.swift b/client/ios/LayoutKit/LayoutKit/ViewModels/VisibilityActionPerformer/VisibilityActionPerformers.swift index d9212718d..456cef85d 100644 --- a/client/ios/LayoutKit/LayoutKit/ViewModels/VisibilityActionPerformer/VisibilityActionPerformers.swift +++ b/client/ios/LayoutKit/LayoutKit/ViewModels/VisibilityActionPerformer/VisibilityActionPerformers.swift @@ -39,6 +39,11 @@ final class VisibilityActionPerformers { } else { min(Int(to.area * 100 / bounds.area), 100) } + + guard visibleAreaPercentageAfter != visibleAreaPercentageBefore else { + return + } + visibilityParams.lastVisibleArea.value = visibleAreaPercentageAfter for performer in actionPerformers {