From b6458b4daca2e9bdd58a64fc3329c6b8c6efe6cc Mon Sep 17 00:00:00 2001 From: hyun subin Date: Mon, 3 Feb 2025 18:09:03 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=20-=20#44=20UserID=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/App/Sources/Root/RootStore.swift | 12 +++++++----- Projects/Feature/Login/Sources/LoginStore.swift | 5 ++++- Projects/Feature/Splash/Sources/SplashStore.swift | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Projects/App/Sources/Root/RootStore.swift b/Projects/App/Sources/Root/RootStore.swift index a4ae9d4..d7e62ed 100644 --- a/Projects/App/Sources/Root/RootStore.swift +++ b/Projects/App/Sources/Root/RootStore.swift @@ -7,6 +7,7 @@ import Foundation +import CoreDomain import Feature import ComposableArchitecture @@ -25,7 +26,6 @@ public struct RootStore { } } - @Dependency(\.socialLogin) private var socialLogin public enum Action { @@ -45,21 +45,23 @@ public struct RootStore { case .splash(.routeToMainTabScreen): state = .mainTab(.init(.home)) return .none + case let .login(.loginSuccess(user)): + debugPrint(user) fallthrough + case .splash(.routeToOnboardingScreen), .login(.routeToOnboardingScreen): state = .onboarding(OnboardingRootStore.State()) return .none - - + case .onboarding(.onSuccessSignUp): state = .mainTab(.init(.home)) return .none case .mainTab(.routeToLoginPage): - // TODO: - 로그인 페이지로 이동하도록 변경 - state = .onboarding(.init()) + state = .login(.init()) return .none + case let .onOpenURL(url): socialLogin.handleKakaoUrl(url) return .none diff --git a/Projects/Feature/Login/Sources/LoginStore.swift b/Projects/Feature/Login/Sources/LoginStore.swift index 2ec876b..bb4717f 100644 --- a/Projects/Feature/Login/Sources/LoginStore.swift +++ b/Projects/Feature/Login/Sources/LoginStore.swift @@ -38,6 +38,7 @@ public struct LoginStore { } @Dependency(\.socialLogin) private var socialLogin + @Dependency(KeychainClient.self) var keychainClient public var body: some ReducerOf { Reduce { state,action in @@ -75,7 +76,9 @@ public struct LoginStore { case let .loginSuccess(user): state.isLoggedIn = true state.user = user - return .none + return .run { [user = user] send in + keychainClient.setUserID(user.userID) + } case .loginFailure: return .none diff --git a/Projects/Feature/Splash/Sources/SplashStore.swift b/Projects/Feature/Splash/Sources/SplashStore.swift index 86deb56..0bd2b50 100644 --- a/Projects/Feature/Splash/Sources/SplashStore.swift +++ b/Projects/Feature/Splash/Sources/SplashStore.swift @@ -50,7 +50,7 @@ public struct SplashStore { state.userInfo = userInfo return .send(.routeToMainTabScreen) case .fetchUser(.failure): - return .send(.routeToLoginScreen) + return .send(.routeToOnboardingScreen) } } } @@ -60,7 +60,7 @@ public struct SplashStore { return requestFetchUser() } else { return .send(.routeToLoginScreen) - } + } } private func requestFetchUser() -> Effect {