Skip to content

Commit 7a9ad69

Browse files
committed
[BOOK-304] refactor: 바텀시트로 화면 이동 시 delayedGoTo를 사용하지 않고 hide() 후 전환되도록 로직 개선
- Ui에서 바텀시트의 hide() 호출 후 화면 이동 이벤트를 sink하도록 변경 - 바텀시트가 완전히 닫힌 후 화면이 전환되어 애니메이션이 자연스럽게 연결됨
1 parent 902ad8e commit 7a9ad69

File tree

6 files changed

+29
-27
lines changed

6 files changed

+29
-27
lines changed

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import com.ninecraft.booket.feature.screens.RecordDetailScreen
2323
import com.ninecraft.booket.feature.screens.RecordEditScreen
2424
import com.ninecraft.booket.feature.screens.RecordScreen
2525
import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs
26-
import com.ninecraft.booket.feature.screens.extensions.delayedGoTo
2726
import com.orhanobut.logger.Logger
2827
import com.slack.circuit.codegen.annotations.CircuitInject
2928
import com.slack.circuit.retained.rememberRetained
@@ -304,15 +303,13 @@ class BookDetailPresenter @AssistedInject constructor(
304303

305304
is BookDetailUiEvent.OnShareRecordClick -> {
306305
isRecordMenuBottomSheetVisible = false
307-
scope.launch {
308-
navigator.delayedGoTo(
309-
RecordCardScreen(
310-
quote = selectedRecordInfo.quote,
311-
bookTitle = selectedRecordInfo.bookTitle,
312-
emotionTag = selectedRecordInfo.emotionTags[0],
313-
),
314-
)
315-
}
306+
navigator.goTo(
307+
RecordCardScreen(
308+
quote = selectedRecordInfo.quote,
309+
bookTitle = selectedRecordInfo.bookTitle,
310+
emotionTag = selectedRecordInfo.emotionTags[0],
311+
),
312+
)
316313
}
317314

318315
is BookDetailUiEvent.OnEditRecordClick -> {

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,10 @@ internal fun BookDetailUi(
136136
},
137137
sheetState = recordMenuBottomSheetState,
138138
onShareRecordClick = {
139-
state.eventSink(BookDetailUiEvent.OnShareRecordClick)
139+
coroutineScope.launch {
140+
recordMenuBottomSheetState.hide()
141+
state.eventSink(BookDetailUiEvent.OnShareRecordClick)
142+
}
140143
},
141144
onEditRecordClick = {
142145
coroutineScope.launch {

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import com.ninecraft.booket.feature.screens.RecordCardScreen
1414
import com.ninecraft.booket.feature.screens.RecordDetailScreen
1515
import com.ninecraft.booket.feature.screens.RecordEditScreen
1616
import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs
17-
import com.ninecraft.booket.feature.screens.extensions.delayedGoTo
1817
import com.orhanobut.logger.Logger
1918
import com.skydoves.compose.effects.RememberedEffect
2019
import com.slack.circuit.codegen.annotations.CircuitInject
@@ -124,15 +123,13 @@ class RecordDetailPresenter @AssistedInject constructor(
124123

125124
is RecordDetailUiEvent.OnShareRecordClick -> {
126125
isRecordMenuBottomSheetVisible = false
127-
scope.launch {
128-
navigator.delayedGoTo(
129-
RecordCardScreen(
130-
quote = recordDetailInfo.quote,
131-
bookTitle = recordDetailInfo.bookTitle,
132-
emotionTag = recordDetailInfo.emotionTags[0],
133-
),
134-
)
135-
}
126+
navigator.goTo(
127+
RecordCardScreen(
128+
quote = recordDetailInfo.quote,
129+
bookTitle = recordDetailInfo.bookTitle,
130+
emotionTag = recordDetailInfo.emotionTags[0],
131+
),
132+
)
136133
}
137134

138135
is RecordDetailUiEvent.OnEditRecordClick -> {

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ internal fun RecordDetailUi(
8383
},
8484
sheetState = recordMenuBottomSheetState,
8585
onShareRecordClick = {
86-
state.eventSink(RecordDetailUiEvent.OnShareRecordClick)
86+
coroutineScope.launch {
87+
recordMenuBottomSheetState.hide()
88+
state.eventSink(RecordDetailUiEvent.OnShareRecordClick)
89+
}
8790
},
8891
onEditRecordClick = {
8992
coroutineScope.launch {

feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import com.ninecraft.booket.core.ui.component.FooterState
1818
import com.ninecraft.booket.feature.screens.LoginScreen
1919
import com.ninecraft.booket.feature.screens.RecordScreen
2020
import com.ninecraft.booket.feature.screens.SearchScreen
21-
import com.ninecraft.booket.feature.screens.extensions.delayedGoTo
2221
import com.orhanobut.logger.Logger
2322
import com.slack.circuit.codegen.annotations.CircuitInject
2423
import com.slack.circuit.retained.collectAsRetainedState
@@ -224,9 +223,7 @@ class BookSearchPresenter @AssistedInject constructor(
224223

225224
is BookSearchUiEvent.OnBookRegisterSuccessOkButtonClick -> {
226225
isBookRegisterSuccessBottomSheetVisible = false
227-
scope.launch {
228-
navigator.delayedGoTo(RecordScreen(registeredUserBookId))
229-
}
226+
navigator.goTo(RecordScreen(registeredUserBookId))
230227
}
231228

232229
is BookSearchUiEvent.OnBookRegisterSuccessCancelButtonClick -> {

feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,12 @@ internal fun SearchContent(
271271
state.eventSink(BookSearchUiEvent.OnBookRegisterSuccessBottomSheetDismiss)
272272
}
273273
},
274-
onOKButtonClick = { state.eventSink(BookSearchUiEvent.OnBookRegisterSuccessOkButtonClick) },
274+
onOKButtonClick = {
275+
coroutineScope.launch {
276+
bookRegisterSuccessBottomSheetState.hide()
277+
state.eventSink(BookSearchUiEvent.OnBookRegisterSuccessOkButtonClick)
278+
}
279+
},
275280
)
276281
}
277282
}

0 commit comments

Comments
 (0)