File tree Expand file tree Collapse file tree
DevLog/Presentation/ViewModel Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ final class LoginViewModel: Store {
2727 }
2828
2929 private let signInUseCase : SignInUseCase
30+ private let loadingState = LoadingState ( )
3031
3132 private( set) var state = State ( )
3233
@@ -54,12 +55,12 @@ final class LoginViewModel: Store {
5455 }
5556
5657 func run( _ effect: SideEffect ) {
57- send ( . setLoading( true ) )
5858 switch effect {
5959 case . signIn( let authProvider) :
60+ beginLoading ( . immediate)
6061 Task {
6162 do {
62- defer { send ( . setLoading ( false ) ) }
63+ defer { endLoading ( . immediate ) }
6364 try await self . signInUseCase. execute ( authProvider)
6465 } catch {
6566 if error. isSocialLoginCancelled { return }
@@ -79,4 +80,16 @@ private extension LoginViewModel {
7980 state. alertMessage = String ( localized: " common_error_message " )
8081 state. showAlert = isPresented
8182 }
83+
84+ func beginLoading( _ mode: LoadingState . Mode ) {
85+ loadingState. begin ( mode: mode) { [ weak self] isLoading in
86+ self ? . send ( . setLoading( isLoading) )
87+ }
88+ }
89+
90+ func endLoading( _ mode: LoadingState . Mode ) {
91+ loadingState. end ( mode: mode) { [ weak self] isLoading in
92+ self ? . send ( . setLoading( isLoading) )
93+ }
94+ }
8295}
You can’t perform that action at this time.
0 commit comments