@@ -12,7 +12,10 @@ import androidx.compose.foundation.layout.Spacer
1212import androidx.compose.foundation.layout.fillMaxHeight
1313import androidx.compose.foundation.layout.fillMaxSize
1414import androidx.compose.foundation.layout.fillMaxWidth
15+ import androidx.compose.foundation.layout.height
16+ import androidx.compose.foundation.layout.heightIn
1517import androidx.compose.foundation.layout.padding
18+ import androidx.compose.foundation.layout.statusBarsPadding
1619import androidx.compose.foundation.lazy.LazyColumn
1720import androidx.compose.foundation.lazy.items
1821import androidx.compose.material.ExperimentalMaterialApi
@@ -30,9 +33,14 @@ import androidx.compose.ui.res.stringResource
3033import androidx.compose.ui.semantics.selected
3134import androidx.compose.ui.semantics.semantics
3235import androidx.compose.ui.text.font.FontWeight
36+ import androidx.compose.ui.unit.dp
37+ import androidx.constraintlayout.compose.ConstraintLayout
3338import androidx.hilt.navigation.compose.hiltViewModel
3439import com.woocommerce.android.R
3540import com.woocommerce.android.ui.woopos.common.composeui.WooPosPreview
41+ import com.woocommerce.android.ui.woopos.common.composeui.component.WooPosSearchInput
42+ import com.woocommerce.android.ui.woopos.common.composeui.component.WooPosSearchInputState
43+ import com.woocommerce.android.ui.woopos.common.composeui.component.WooPosSearchUIEvent
3644import com.woocommerce.android.ui.woopos.common.composeui.component.WooPosText
3745import com.woocommerce.android.ui.woopos.common.composeui.component.WooPosToolbar
3846import com.woocommerce.android.ui.woopos.common.composeui.designsystem.WooPosSpacing
@@ -41,6 +49,8 @@ import com.woocommerce.android.ui.woopos.common.composeui.designsystem.WooPosTyp
4149import com.woocommerce.android.ui.woopos.home.items.WooPosPullToRefreshState
4250import com.woocommerce.android.ui.woopos.root.navigation.WooPosNavigationEvent
4351
52+ private val WOO_POS_ORDERS_TOOLBAR_HEIGHT = 56 .dp
53+
4454@OptIn(ExperimentalMaterialApi ::class )
4555@Composable
4656fun WooPosOrdersScreen (
@@ -59,6 +69,7 @@ fun WooPosOrdersScreen(
5969 onRefresh = viewModel::onRefresh,
6070 isRefreshing = state.pullToRefreshState == WooPosPullToRefreshState .Refreshing ,
6171 onOrderSelected = viewModel::onOrderSelected,
72+ onSearchEvent = viewModel::onSearchEvent,
6273 modifier = Modifier
6374 .weight(0.3f )
6475 .fillMaxHeight()
@@ -83,13 +94,48 @@ private fun OrdersList(
8394 onRefresh : () -> Unit ,
8495 isRefreshing : Boolean ,
8596 onOrderSelected : (Long ) -> Unit ,
97+ onSearchEvent : (WooPosSearchUIEvent ) -> Unit ,
8698 modifier : Modifier = Modifier
8799) {
88100 Column (modifier = modifier) {
89- WooPosToolbar (
90- titleText = stringResource(R .string.woopos_orders_title),
91- onBackClicked = onBackClicked,
92- )
101+ ConstraintLayout (
102+ modifier = Modifier
103+ .fillMaxWidth()
104+ .heightIn(min = WOO_POS_ORDERS_TOOLBAR_HEIGHT ),
105+ ) {
106+ val (toolbar, searchInput) = createRefs()
107+
108+ if (state.searchInputState is WooPosSearchInputState .Closed ) {
109+ WooPosToolbar (
110+ titleText = stringResource(R .string.woopos_orders_title),
111+ onBackClicked = onBackClicked,
112+ modifier = Modifier .constrainAs(toolbar) {
113+ start.linkTo(parent.start)
114+ top.linkTo(parent.top)
115+ bottom.linkTo(parent.bottom)
116+ }
117+ )
118+ }
119+ WooPosSearchInput (
120+ state = state.searchInputState,
121+ onEvent = onSearchEvent,
122+ modifier = Modifier
123+ .statusBarsPadding()
124+ .constrainAs(searchInput) {
125+ if (state.searchInputState is WooPosSearchInputState .Open ) {
126+ start.linkTo(parent.start)
127+ end.linkTo(parent.end)
128+ width = androidx.constraintlayout.compose.Dimension .fillToConstraints
129+ } else {
130+ end.linkTo(parent.end)
131+ }
132+ top.linkTo(parent.top)
133+ bottom.linkTo(parent.bottom)
134+ }
135+ )
136+ }
137+
138+ Spacer (modifier = Modifier .height(WooPosSpacing .Small .value))
93139
94140 val pullRefreshState = rememberPullRefreshState(
95141 refreshing = isRefreshing,
0 commit comments