From 46694127e0d771f6fddba8602bcf6436dce83d71 Mon Sep 17 00:00:00 2001 From: Mohammed Imthathullah Date: Fri, 2 Feb 2024 04:34:54 +0530 Subject: [PATCH] Activity Indicator: Remove branching views to improve performance (#1957) --- .../ActivityIndicator/ActivityIndicator.swift | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/ios/FluentUI/ActivityIndicator/ActivityIndicator.swift b/ios/FluentUI/ActivityIndicator/ActivityIndicator.swift index ade8096205..3343fbcca8 100644 --- a/ios/FluentUI/ActivityIndicator/ActivityIndicator.swift +++ b/ios/FluentUI/ActivityIndicator/ActivityIndicator.swift @@ -77,22 +77,16 @@ public struct ActivityIndicator: View, TokenizedControlView { #endif return semiRing - .modifyIf(state.isAnimating, { animatedView in - animatedView - .rotationEffect(.degrees(rotationAngle), anchor: .center) - .onAppear { - startAnimation() - } - }) - .modifyIf(!state.isAnimating) { staticView in - staticView - .onAppear { - stopAnimation() - } + .onAppear { + if state.isAnimating { + startAnimation() + } + } + .opacity(!state.isAnimating && state.hidesWhenStopped ? 0 : 1) + .rotationEffect(.degrees(rotationAngle), anchor: .center) + .onChange(of: state.isAnimating) { newValue in + newValue ? startAnimation() : stopAnimation() } - .modifyIf(!state.isAnimating && state.hidesWhenStopped, { view in - view.hidden() - }) .frame(width: side, height: side, alignment: .center)