diff --git a/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreScreen.kt b/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreScreen.kt index 3ef95140..6beb613f 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreScreen.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreScreen.kt @@ -61,6 +61,10 @@ fun ExploreRoute( else -> 0 } + LaunchedEffect(Unit) { + viewModel.getSpoonAccount() + } + val categoryList = when (state.categoryList) { is UiState.Success -> (state.categoryList as? UiState.Success>)?.data ?: persistentListOf() else -> persistentListOf() diff --git a/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreViewModel.kt b/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreViewModel.kt index 53e0c6ec..d3e50d58 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreViewModel.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/explore/ExploreViewModel.kt @@ -3,6 +3,8 @@ package com.spoony.spoony.presentation.explore import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.spoony.spoony.core.state.UiState +import com.spoony.spoony.core.util.USER_ID +import com.spoony.spoony.domain.repository.AuthRepository import com.spoony.spoony.domain.repository.ExploreRepository import com.spoony.spoony.presentation.explore.model.toModel import com.spoony.spoony.presentation.explore.type.SortingOption @@ -16,7 +18,8 @@ import kotlinx.coroutines.launch @HiltViewModel class ExploreViewModel @Inject constructor( - private val exploreRepository: ExploreRepository + private val exploreRepository: ExploreRepository, + private val authRepository: AuthRepository ) : ViewModel() { private var _state: MutableStateFlow = MutableStateFlow(ExploreState()) val state: StateFlow @@ -47,6 +50,19 @@ class ExploreViewModel @Inject constructor( } } + fun getSpoonAccount() { + viewModelScope.launch { + authRepository.getSpoonCount(userId = USER_ID) + .onSuccess { response -> + _state.update { + it.copy( + spoonCount = UiState.Success(response) + ) + } + } + } + } + fun getFeedList() { viewModelScope.launch { exploreRepository.getFeedList( diff --git a/app/src/main/java/com/spoony/spoony/presentation/placeDetail/PlaceDetailViewModel.kt b/app/src/main/java/com/spoony/spoony/presentation/placeDetail/PlaceDetailViewModel.kt index 1c2eeac7..7b7aa7da 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/placeDetail/PlaceDetailViewModel.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/placeDetail/PlaceDetailViewModel.kt @@ -117,7 +117,11 @@ class PlaceDetailViewModel @Inject constructor( .onSuccess { _state.update { it.copy( - isScooped = true + isScooped = true, + spoonCount = when (val spoonState = it.spoonCount) { + is UiState.Success -> UiState.Success(spoonState.data - 1) + else -> spoonState + } ) } }