diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/View/LoginView.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/View/LoginView.swift index 64427a21..2bdd49dd 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/View/LoginView.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/View/LoginView.swift @@ -35,11 +35,13 @@ final class LoginView: BaseView { appleLoginButton.do { $0.setImage(.appleLoginButton, for: .normal) $0.alpha = 0 + $0.isExclusiveTouch = true } - + kakaoLoginButton.do { $0.setImage(.kakaoLoginButton, for: .normal) $0.alpha = 0 + $0.isExclusiveTouch = true } } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewController/LoginViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewController/LoginViewController.swift index 8ad6c509..fb2b2526 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewController/LoginViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewController/LoginViewController.swift @@ -64,12 +64,14 @@ extension LoginViewController{ @objc private func kakaoLoginButtonDidTap() { rootView.kakaoLoginButton.isUserInteractionEnabled = false + rootView.appleLoginButton.isUserInteractionEnabled = false self.platform = .KAKAO viewModel.action(.socialLoginButtonDidTap(platform: .KAKAO)) } - + @objc private func appleLoginButtonDidTap() { + rootView.kakaoLoginButton.isUserInteractionEnabled = false rootView.appleLoginButton.isUserInteractionEnabled = false self.platform = .APPLE viewModel.action(.socialLoginButtonDidTap(platform: .APPLE)) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewModel/LoginViewModel.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewModel/LoginViewModel.swift index 1c2b74c3..334ee70a 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewModel/LoginViewModel.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Login/ViewModel/LoginViewModel.swift @@ -23,7 +23,8 @@ final class LoginViewModel: NSObject { } private var cancellables = Set() - + private var isSocialLoginInProgress = false + private let socialLoginUseCase: SocialLoginUseCase private let getIsRegisteredUseCase: GetIsRegisteredUseCase private let getUserIDUseCase: GetUserIDUseCase @@ -60,7 +61,15 @@ extension LoginViewModel { extension LoginViewModel { private func socialLogin(platform: LoginPlatform) { + guard !isSocialLoginInProgress else { + ByeBooLogger.debug("이미 진행중인 요청 있음") + return + } + isSocialLoginInProgress = true + Task { + defer { isSocialLoginInProgress = false } + do { let _ = try await socialLoginUseCase.execute(platform: platform) socialLoginAuthSubject.send(.success(())) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/CommonQuest/Common/QuestContentView.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/CommonQuest/Common/QuestContentView.swift index 0b2a6991..97b71977 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/CommonQuest/Common/QuestContentView.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/CommonQuest/Common/QuestContentView.swift @@ -64,10 +64,15 @@ final class QuestContentView: BaseView { $0.spacing = 4.adjustedW } } + likeContainerView.do { + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(likeButtonDidTap)) + $0.addGestureRecognizer(tapRecognizer) + $0.isUserInteractionEnabled = true + } likeButton.do { $0.setImage(.heartOff, for: .normal) $0.setImage(.heartOn, for: .selected) - $0.addTarget(self, action: #selector(likeButtonDidTap), for: .touchUpInside) + $0.isUserInteractionEnabled = false } commentIcon.do { $0.image = .comment