From 0d8e4243e9c5e678060735df390f19e1edfa7c5b Mon Sep 17 00:00:00 2001 From: Sangyoon Date: Wed, 29 Oct 2025 17:50:14 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=ED=95=98=EB=93=9C=EC=BD=94=EB=94=A9=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/feature/dashboard/ui/DashboardScreen.kt | 12 ++++++++---- .../feature/dashboard/ui/DashboardViewModel.kt | 11 ++++++++++- .../user/domain/usecase/GetStoredUserUseCase.kt | 13 +++++++++++++ 3 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/sampoom/android/feature/user/domain/usecase/GetStoredUserUseCase.kt diff --git a/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardScreen.kt b/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardScreen.kt index e976c7f..fc7aea3 100644 --- a/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardScreen.kt +++ b/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardScreen.kt @@ -56,6 +56,7 @@ import com.sampoom.android.core.ui.theme.backgroundCardColor import com.sampoom.android.core.ui.theme.textColor import com.sampoom.android.core.ui.theme.textSecondaryColor import com.sampoom.android.feature.order.domain.model.Order +import com.sampoom.android.feature.user.domain.model.User @Composable fun DashboardScreen( @@ -69,6 +70,7 @@ fun DashboardScreen( val uiState by viewModel.uiState.collectAsStateWithLifecycle() val pullRefreshState = rememberPullToRefreshState() val isManager = true // TODO: Role 검증 + val user by viewModel.user.collectAsStateWithLifecycle() LaunchedEffect(errorLabel) { viewModel.bindLabel(errorLabel) @@ -144,7 +146,7 @@ fun DashboardScreen( } } - item { TitleSection() } + item { TitleSection(user) } item { ButtonSection(isManager) } @@ -166,7 +168,9 @@ fun DashboardScreen( } @Composable -fun TitleSection() { +fun TitleSection( + user: User? +) { Column( modifier = Modifier .fillMaxWidth() @@ -174,7 +178,7 @@ fun TitleSection() { verticalArrangement = Arrangement.spacedBy(16.dp) ) { Text( - text = "가산디지털단지점", // TODO: Agency Id 받아오기 + text = user?.branch ?: "", // TODO: Agency Id 받아오기 style = MaterialTheme.typography.headlineMedium, fontWeight = FontWeight.Bold, color = textColor() @@ -185,7 +189,7 @@ fun TitleSection() { pushStringAnnotation(tag = "NAME", annotation = "name") withStyle(style = SpanStyle(color = Main500)) { - append("홍길동") // TODO : 이름 받아오기 + append(user?.userName ?: "") // TODO : 이름 받아오기 } append(stringResource(R.string.dashboard_title_hello_sir)) pop() diff --git a/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardViewModel.kt b/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardViewModel.kt index 676d6ec..078baf5 100644 --- a/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardViewModel.kt +++ b/app/src/main/java/com/sampoom/android/feature/dashboard/ui/DashboardViewModel.kt @@ -5,6 +5,8 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.sampoom.android.core.network.serverMessageOrNull import com.sampoom.android.feature.order.domain.usecase.GetOrderUseCase +import com.sampoom.android.feature.user.domain.model.User +import com.sampoom.android.feature.user.domain.usecase.GetStoredUserUseCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Job import kotlinx.coroutines.flow.MutableStateFlow @@ -15,7 +17,8 @@ import javax.inject.Inject @HiltViewModel class DashboardViewModel @Inject constructor( - private val getOrderListUseCase: GetOrderUseCase + private val getOrderListUseCase: GetOrderUseCase, + private val getStoredUserUseCase: GetStoredUserUseCase ): ViewModel() { private companion object { @@ -25,6 +28,9 @@ class DashboardViewModel @Inject constructor( private val _uiState = MutableStateFlow(DashboardUiState()) val uiState : StateFlow = _uiState + private val _user = MutableStateFlow(null) + val user: StateFlow = _user + private var errorLabel: String = "" private var loadJob: Job? = null @@ -33,6 +39,9 @@ class DashboardViewModel @Inject constructor( } init { + viewModelScope.launch { + _user.value = getStoredUserUseCase() + } loadOrderList() } diff --git a/app/src/main/java/com/sampoom/android/feature/user/domain/usecase/GetStoredUserUseCase.kt b/app/src/main/java/com/sampoom/android/feature/user/domain/usecase/GetStoredUserUseCase.kt new file mode 100644 index 0000000..dcb9a0e --- /dev/null +++ b/app/src/main/java/com/sampoom/android/feature/user/domain/usecase/GetStoredUserUseCase.kt @@ -0,0 +1,13 @@ +package com.sampoom.android.feature.user.domain.usecase + +import com.sampoom.android.core.datastore.AuthPreferences +import com.sampoom.android.feature.user.domain.model.User +import javax.inject.Inject + +class GetStoredUserUseCase @Inject constructor( + private val preferences: AuthPreferences +) { + suspend operator fun invoke(): User? = preferences.getStoredUser() +} + +