File tree Expand file tree Collapse file tree 6 files changed +17
-17
lines changed
DesignSystem/Sources/DesignSystem/ViewModifiers Expand file tree Collapse file tree 6 files changed +17
-17
lines changed Original file line number Diff line number Diff line change @@ -4,26 +4,26 @@ struct LoadingOverlayModifier: ViewModifier {
44 let isLoading : Bool
55
66 func body( content: Content ) -> some View {
7- content
8- . disabled ( isLoading)
9- . opacity ( isLoading ? 0.5 : 1 )
10- . animation ( . default , value : isLoading )
11- . overlay {
12- LoadingIndicator ( isVisible : isLoading )
7+ ZStack {
8+ if isLoading {
9+ content . opacity ( 0.5 )
10+ LoadingIndicator ( )
11+ } else {
12+ content
1313 }
14+ }
15+ . disabled ( isLoading)
16+ . animation ( . default, value: isLoading)
1417 }
1518}
1619
1720private struct LoadingIndicator : View {
1821 @State private var isAnimating = false
19- let isVisible : Bool
2022
2123 var body : some View {
2224 Image ( " LoadingIndicator " , bundle: . module)
2325 . resizable ( )
2426 . frame ( width: 50 , height: 50 )
25- . opacity ( isVisible ? 1 : 0 )
26- . animation ( . default, value: isVisible)
2727 . rotationEffect ( Angle ( degrees: isAnimating ? 360 : 0 ) )
2828 . animation (
2929 . linear( duration: 2.0 ) . repeatForever ( autoreverses: false ) ,
Original file line number Diff line number Diff line change @@ -150,7 +150,7 @@ private extension EventsListView {
150150 }
151151
152152 var showEmptyView : Bool {
153- selectedEventType == . future && viewModel. futureEvents. isEmpty
153+ selectedEventType == . future && viewModel. futureEvents. isEmpty && !viewModel . isLoading
154154 }
155155
156156 func selectedEventAction( _: EventType ) {
Original file line number Diff line number Diff line change @@ -116,7 +116,7 @@ private extension JournalsListView {
116116 }
117117
118118 var showEmptyView : Bool {
119- viewModel. list. isEmpty && isMainUser
119+ viewModel. list. isEmpty && isMainUser && !viewModel . isLoading
120120 }
121121
122122 var isMainUser : Bool {
Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ private extension DialogListView {
8585 }
8686
8787 var showEmptyView : Bool {
88- viewModel. list. isEmpty
88+ viewModel. list. isEmpty && !viewModel . isLoading
8989 }
9090
9191 var emptyViewButtonTitle : String {
Original file line number Diff line number Diff line change @@ -9,15 +9,15 @@ final class DialogListViewModel: ObservableObject {
99
1010 func makeItems( with defaults: DefaultsService , refresh: Bool ) async {
1111 if isLoading || ( !list. isEmpty && !refresh) { return }
12- isLoading. toggle ( )
12+ if !refresh { isLoading. toggle ( ) }
1313 do {
1414 list = try await APIService ( with: defaults) . getDialogs ( )
1515 let unreadMessagesCount = list. map ( \. unreadMessagesCount) . reduce ( 0 , + )
1616 defaults. saveUnreadMessagesCount ( unreadMessagesCount)
1717 } catch {
1818 errorMessage = ErrorFilterService . message ( from: error)
1919 }
20- isLoading. toggle ( )
20+ if !refresh { isLoading. toggle ( ) }
2121 }
2222
2323 func deleteDialog( at index: Int ? , with defaults: DefaultsProtocol ) async {
Original file line number Diff line number Diff line change @@ -15,14 +15,14 @@ final class SportsGroundListViewModel: ObservableObject {
1515 let needUpdate = list. isEmpty || refresh
1616 if isMainUser {
1717 if !needUpdate, !defaults. needUpdateUser { return }
18- isLoading. toggle ( )
18+ if !refresh { isLoading. toggle ( ) }
1919 await makeList ( for: userID, with: defaults)
2020 } else {
2121 if !needUpdate { return }
22- isLoading. toggle ( )
22+ if !refresh { isLoading. toggle ( ) }
2323 await makeList ( for: userID, with: defaults)
2424 }
25- isLoading. toggle ( )
25+ if !refresh { isLoading. toggle ( ) }
2626 case let . added( list) :
2727 self . list = list
2828 }
You can’t perform that action at this time.
0 commit comments