Skip to content

Commit e185def

Browse files
committed
[BOOK-150] feat: 홈화면 내 도서 검색 화면 이동을 위한 임시 버튼 구성 및 화면 연동
1 parent 0efc9e6 commit e185def

File tree

5 files changed

+31
-8
lines changed

5 files changed

+31
-8
lines changed

core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedFullScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.systemBarsPadding
88
import androidx.compose.runtime.Composable
99
import androidx.compose.ui.Modifier
1010
import androidx.compose.ui.graphics.Color
11+
import com.ninecraft.booket.core.designsystem.theme.White
1112

1213
/**
1314
* systemBarsPadding() 이 자동으로 적용되는 전체 화면 컨테이너
@@ -18,7 +19,7 @@ import androidx.compose.ui.graphics.Color
1819
@Composable
1920
fun ReedFullScreen(
2021
modifier: Modifier = Modifier,
21-
backgroundColor: Color = Color.White,
22+
backgroundColor: Color = White,
2223
content: @Composable ColumnScope.() -> Unit,
2324
) {
2425
Column(

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.ninecraft.booket.feature.home
33
import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.rememberCoroutineScope
55
import com.ninecraft.booket.screens.HomeScreen
6+
import com.ninecraft.booket.screens.SearchScreen
67
import com.slack.circuit.codegen.annotations.CircuitInject
78
import com.slack.circuit.runtime.Navigator
89
import com.slack.circuit.runtime.presenter.Presenter
@@ -20,7 +21,17 @@ class HomePresenter @AssistedInject constructor(
2021
override fun present(): HomeUiState {
2122
val scope = rememberCoroutineScope()
2223

23-
return HomeUiState {}
24+
fun handleEvent(event: HomeUiEvent) {
25+
when (event) {
26+
is HomeUiEvent.OnButtonClick -> {
27+
navigator.goTo(SearchScreen)
28+
}
29+
}
30+
}
31+
32+
return HomeUiState(
33+
eventSink = ::handleEvent,
34+
)
2435
}
2536

2637
@CircuitInject(HomeScreen::class, ActivityRetainedComponent::class)

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeScreen.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ package com.ninecraft.booket.feature.home
22

33
import androidx.compose.foundation.layout.Arrangement
44
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.Spacer
56
import androidx.compose.foundation.layout.fillMaxSize
7+
import androidx.compose.foundation.layout.height
8+
import androidx.compose.material3.Button
69
import androidx.compose.material3.Text
710
import androidx.compose.runtime.Composable
811
import androidx.compose.ui.Alignment
912
import androidx.compose.ui.Modifier
13+
import androidx.compose.ui.unit.dp
1014
import com.ninecraft.booket.core.designsystem.DevicePreview
1115
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
1216
import com.ninecraft.booket.screens.HomeScreen
@@ -38,6 +42,14 @@ internal fun HomeContent(
3842
modifier: Modifier = Modifier,
3943
) {
4044
Text(text = "")
45+
Spacer(modifier = Modifier.height(16.dp))
46+
Button(
47+
onClick = {
48+
state.eventSink(HomeUiEvent.OnButtonClick)
49+
},
50+
) {
51+
Text(text = "Navigate To Search")
52+
}
4153
}
4254

4355
@DevicePreview

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ data class HomeUiState(
77
val eventSink: (HomeUiEvent) -> Unit,
88
) : CircuitUiState
99

10-
sealed interface HomeUiEvent : CircuitUiEvent
10+
sealed interface HomeUiEvent : CircuitUiEvent {
11+
data object OnButtonClick: HomeUiEvent
12+
}

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import com.ninecraft.booket.core.designsystem.component.ReedTextField
2424
import com.ninecraft.booket.core.designsystem.component.appbar.ReedBackTopAppBar
2525
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
2626
import com.ninecraft.booket.core.designsystem.theme.White
27+
import com.ninecraft.booket.core.ui.component.ReedFullScreen
2728
import com.ninecraft.booket.feature.search.component.BookItem
2829
import com.ninecraft.booket.feature.search.component.InfinityLazyColumn
2930
import com.ninecraft.booket.feature.search.component.LoadStateFooter
@@ -38,11 +39,7 @@ internal fun Search(
3839
state: SearchUiState,
3940
modifier: Modifier = Modifier,
4041
) {
41-
Column(
42-
modifier = modifier.fillMaxSize(),
43-
horizontalAlignment = Alignment.CenterHorizontally,
44-
verticalArrangement = Arrangement.Center,
45-
) {
42+
ReedFullScreen(modifier = modifier) {
4643
ReedBackTopAppBar(
4744
title = stringResource(R.string.search_title),
4845
onBackClick = {

0 commit comments

Comments
 (0)