Skip to content

Commit 1e0643d

Browse files
authored
Merge pull request #94 from YAPP-Github/BOOK-205-fix/#93
fix: Dialog 혹은 BottomSheet를 통해 navigation 하는 경우 해당 컴포넌트가 닫히기 전 화면이 먼저 전환되는 문제 임시 해결
2 parents 44805e4 + 08d2674 commit 1e0643d

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.ninecraft.booket.feature.screens.LoginScreen
1818
import com.ninecraft.booket.feature.screens.OcrScreen
1919
import com.ninecraft.booket.feature.screens.RecordDetailScreen
2020
import com.ninecraft.booket.feature.screens.RecordScreen
21+
import com.ninecraft.booket.feature.screens.delayedPop
2122
import com.orhanobut.logger.Logger
2223
import com.slack.circuit.codegen.annotations.CircuitInject
2324
import com.slack.circuit.foundation.rememberAnsweringNavigator
@@ -151,7 +152,9 @@ class RecordRegisterPresenter @AssistedInject constructor(
151152

152153
is RecordRegisterUiEvent.OnExitDialogConfirm -> {
153154
isExitDialogVisible = false
154-
navigator.pop()
155+
scope.launch {
156+
navigator.delayedPop()
157+
}
155158
}
156159

157160
is RecordRegisterUiEvent.OnExitDialogDismiss -> {
@@ -224,7 +227,9 @@ class RecordRegisterPresenter @AssistedInject constructor(
224227

225228
is RecordRegisterUiEvent.OnRecordSavedDialogDismiss -> {
226229
isRecordSavedDialogVisible = false
227-
navigator.pop()
230+
scope.launch {
231+
navigator.delayedPop()
232+
}
228233
}
229234
}
230235
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.ninecraft.booket.feature.screens
2+
3+
import com.slack.circuit.runtime.Navigator
4+
import kotlinx.coroutines.delay
5+
6+
suspend fun Navigator.delayedGoTo(screen: ReedScreen, delayMillis: Long = 200L) {
7+
delay(delayMillis)
8+
goTo(screen)
9+
}
10+
11+
suspend fun Navigator.delayedPop(delayMillis: Long = 200L) {
12+
delay(delayMillis)
13+
pop()
14+
}

feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/SearchPresenter.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.ninecraft.booket.core.ui.component.FooterState
1717
import com.ninecraft.booket.feature.screens.LoginScreen
1818
import com.ninecraft.booket.feature.screens.RecordScreen
1919
import com.ninecraft.booket.feature.screens.SearchScreen
20+
import com.ninecraft.booket.feature.screens.delayedGoTo
2021
import com.orhanobut.logger.Logger
2122
import com.slack.circuit.codegen.annotations.CircuitInject
2223
import com.slack.circuit.retained.collectAsRetainedState
@@ -191,7 +192,9 @@ class SearchPresenter @AssistedInject constructor(
191192

192193
is SearchUiEvent.OnBookRegisterSuccessOkButtonClick -> {
193194
isBookRegisterSuccessBottomSheetVisible = false
194-
navigator.goTo(RecordScreen(registeredUserBookId))
195+
scope.launch {
196+
navigator.delayedGoTo(RecordScreen(registeredUserBookId))
197+
}
195198
}
196199

197200
is SearchUiEvent.OnBookRegisterSuccessCancelButtonClick -> {

0 commit comments

Comments
 (0)