diff --git a/app/src/main/java/com/spoony/spoony/presentation/main/MainNavigator.kt b/app/src/main/java/com/spoony/spoony/presentation/main/MainNavigator.kt index cb50dfc7..39248c55 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/main/MainNavigator.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/main/MainNavigator.kt @@ -15,6 +15,7 @@ import com.spoony.spoony.presentation.map.navigaion.Map import com.spoony.spoony.presentation.map.navigaion.navigateToMap import com.spoony.spoony.presentation.map.search.navigation.navigateToMapSearch import com.spoony.spoony.presentation.placeDetail.navigation.navigateToPlaceDetail +import com.spoony.spoony.presentation.register.navigation.Register import com.spoony.spoony.presentation.register.navigation.navigateToRegister import com.spoony.spoony.presentation.report.navigation.navigateToReport @@ -64,12 +65,22 @@ class MainNavigator( } fun navigateToExplore( - navOptions: NavOptions? = navOptions { - popUpTo(Explore) { - inclusive = false + fromRegister: Boolean = false, + navOptions: NavOptions? = if (fromRegister) { + navOptions { + popUpTo(Register) { + inclusive = true + } + launchSingleTop = true + } + } else { + navOptions { + popUpTo(Explore) { + inclusive = false + } + restoreState = true + launchSingleTop = true } - restoreState = true - launchSingleTop = true } ) { navController.navigateToExplore(navOptions) diff --git a/app/src/main/java/com/spoony/spoony/presentation/main/MainScreen.kt b/app/src/main/java/com/spoony/spoony/presentation/main/MainScreen.kt index 7671e135..9ce45448 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/main/MainScreen.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/main/MainScreen.kt @@ -111,7 +111,7 @@ fun MainScreen( registerNavGraph( paddingValues = paddingValues, - navigateToExplore = navigator::navigateToExplore + navigateToExplore = { navigator.navigateToExplore(fromRegister = true) } ) placeDetailNavGraph( diff --git a/app/src/main/java/com/spoony/spoony/presentation/register/RegisterViewModel.kt b/app/src/main/java/com/spoony/spoony/presentation/register/RegisterViewModel.kt index 5d68d8c2..7832751d 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/register/RegisterViewModel.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/register/RegisterViewModel.kt @@ -225,7 +225,8 @@ class RegisterViewModel @Inject constructor( viewModelScope.launch { _state.update { currentState -> RegisterState( - categories = currentState.categories + categories = currentState.categories, + showRegisterSnackBar = false ) } } diff --git a/app/src/main/java/com/spoony/spoony/presentation/register/component/NextButton.kt b/app/src/main/java/com/spoony/spoony/presentation/register/component/NextButton.kt index ec30e11e..7597cd20 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/register/component/NextButton.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/register/component/NextButton.kt @@ -21,16 +21,23 @@ import com.spoony.spoony.core.designsystem.type.ButtonStyle @Composable fun NextButton( enabled: Boolean, - modifier: Modifier = Modifier, - onClick: () -> Unit + onClick: () -> Unit, + modifier: Modifier = Modifier ) { + var isClicked by remember { mutableStateOf(false) } + SpoonyButton( text = "다음", size = ButtonSize.Xlarge, style = ButtonStyle.Primary, modifier = modifier.fillMaxWidth(), - enabled = enabled, - onClick = onClick + enabled = enabled && !isClicked, + onClick = { + if (!isClicked) { + isClicked = true + onClick() + } + } ) }