11package com.airbnb.android.showkase.ui
22
3- import android.annotation.SuppressLint
43import android.content.res.Configuration
54import androidx.compose.animation.AnimatedVisibility
65import androidx.compose.animation.expandHorizontally
@@ -14,9 +13,11 @@ import androidx.compose.foundation.layout.Row
1413import androidx.compose.foundation.layout.fillMaxSize
1514import androidx.compose.foundation.layout.fillMaxWidth
1615import androidx.compose.foundation.layout.padding
16+ import androidx.compose.foundation.layout.safeDrawingPadding
1717import androidx.compose.material.Icon
1818import androidx.compose.material.IconButton
1919import androidx.compose.material.Scaffold
20+ import androidx.compose.material.Surface
2021import androidx.compose.material.Text
2122import androidx.compose.material.TextField
2223import androidx.compose.material.TextFieldDefaults
@@ -34,7 +35,6 @@ import androidx.compose.ui.Alignment
3435import kotlinx.coroutines.delay
3536import androidx.compose.ui.Modifier
3637import androidx.compose.ui.graphics.Color
37- import androidx.compose.ui.graphics.graphicsLayer
3838import androidx.compose.ui.platform.LocalConfiguration
3939import androidx.compose.ui.platform.LocalContext
4040import androidx.compose.ui.platform.LocalInspectionMode
@@ -63,7 +63,6 @@ import com.airbnb.android.showkase.models.insideGroup
6363import com.airbnb.android.showkase.ui.SemanticsUtils.lineCountVal
6464
6565@Suppress(" LongMethod" )
66- @SuppressLint(" UnusedMaterialScaffoldPaddingParameter" )
6766@Composable
6867internal fun ShowkaseBrowserApp (
6968 groupedComponentMap : Map <String , List <ShowkaseBrowserComponent >>,
@@ -82,56 +81,63 @@ internal fun ShowkaseBrowserApp(
8281 val navController = rememberNavController()
8382 val navBackStackEntry by navController.currentBackStackEntryAsState()
8483 val currentRoute = navBackStackEntry?.destination?.route
84+ Surface (
85+ color = Color .White
86+ ) {
87+ Scaffold (
88+ drawerContent = null ,
89+ topBar = {
90+ ShowkaseAppBar (
91+ currentRoute = currentRoute,
92+ showkaseBrowserScreenMetadata = showkaseBrowserScreenMetadata,
93+ onSearchQueryChanged = {
94+ onUpdateShowkaseBrowserScreenMetadata(
95+ showkaseBrowserScreenMetadata.copy(searchQuery = it)
96+ )
97+ },
98+ onClearSearch = {
99+ onUpdateShowkaseBrowserScreenMetadata(
100+ showkaseBrowserScreenMetadata.copy(searchQuery = " " )
101+ )
102+ },
103+ onActivateSearch = {
104+ onUpdateShowkaseBrowserScreenMetadata(
105+ showkaseBrowserScreenMetadata.copy(isSearchActive = true )
106+ )
107+ },
108+ onCloseSearch = {
109+ onUpdateShowkaseBrowserScreenMetadata(
110+ showkaseBrowserScreenMetadata.copy(isSearchActive = false )
111+ )
112+ },
85113
86- Scaffold (
87- drawerContent = null ,
88- topBar = {
89- ShowkaseAppBar (
90- currentRoute = currentRoute,
91- showkaseBrowserScreenMetadata = showkaseBrowserScreenMetadata,
92- onSearchQueryChanged = {
93- onUpdateShowkaseBrowserScreenMetadata(
94- showkaseBrowserScreenMetadata.copy(searchQuery = it)
95114 )
96- },
97- onClearSearch = {
98- onUpdateShowkaseBrowserScreenMetadata(
99- showkaseBrowserScreenMetadata.copy(searchQuery = " " )
100- )
101- },
102- onActivateSearch = {
103- onUpdateShowkaseBrowserScreenMetadata(
104- showkaseBrowserScreenMetadata.copy(isSearchActive = true )
105- )
106- },
107- onCloseSearch = {
108- onUpdateShowkaseBrowserScreenMetadata(
109- showkaseBrowserScreenMetadata.copy(isSearchActive = false )
115+ },
116+ content = { contentPadding ->
117+ Column (
118+ modifier = Modifier
119+ .fillMaxSize()
120+ .background(color = SHOWKASE_COLOR_BACKGROUND )
121+ .padding(contentPadding),
122+ ) {
123+ ShowkaseBodyContent (
124+ navController,
125+ groupedComponentMap,
126+ groupedColorsMap,
127+ groupedTypographyMap,
128+ showkaseBrowserScreenMetadata,
129+ onUpdateShowkaseBrowserScreenMetadata,
130+ navigateTo = {
131+ navController.navigate(it.name)
132+ }
110133 )
111- },
112-
113- )
114- },
115- content = {
116- Column (
117- modifier = Modifier
118- .fillMaxSize()
119- .background(color = SHOWKASE_COLOR_BACKGROUND ),
120- ) {
121- ShowkaseBodyContent (
122- navController,
123- groupedComponentMap,
124- groupedColorsMap,
125- groupedTypographyMap,
126- showkaseBrowserScreenMetadata,
127- onUpdateShowkaseBrowserScreenMetadata,
128- navigateTo = {
129- navController.navigate(it.name)
130- }
131- )
132- }
133- }
134- )
134+ }
135+ },
136+ modifier = Modifier
137+ .fillMaxSize()
138+ .safeDrawingPadding()
139+ )
140+ }
135141 }
136142}
137143
@@ -144,41 +150,43 @@ internal fun ShowkaseAppBar(
144150 onActivateSearch : () -> Unit ,
145151 onClearSearch : () -> Unit ,
146152) {
147-
148- Row (
149- Modifier
150- .fillMaxWidth()
151- .graphicsLayer(shadowElevation = 4f )
152- .padding(padding2x),
153- horizontalArrangement = Arrangement .SpaceBetween ,
154- verticalAlignment = Alignment .CenterVertically
153+ Surface (
154+ elevation = 4 .dp
155155 ) {
156- ShowkaseAppBarTitle (
157- showkaseBrowserScreenMetadata.isSearchActive,
158- showkaseBrowserScreenMetadata.currentGroup,
159- showkaseBrowserScreenMetadata.currentComponentName,
160- showkaseBrowserScreenMetadata.currentComponentStyleName,
161- currentRoute,
162- showkaseBrowserScreenMetadata.searchQuery,
163- {
164- onSearchQueryChanged(it)
165- },
166- Modifier .fillMaxWidth(0.75f ),
167- onCloseSearchFieldClick = {
168- onCloseSearch()
169- },
170- onClearSearchField = {
171- onClearSearch()
172- }
173- )
174- ShowkaseAppBarActions (
175- isActive = showkaseBrowserScreenMetadata.isSearchActive,
176- onActionClicked = {
177- onActivateSearch()
178- },
179- currentRoute = currentRoute,
180- modifier = Modifier .fillMaxWidth(0.25f )
181- )
156+ Row (
157+ Modifier
158+ .fillMaxWidth()
159+ .padding(padding2x),
160+ horizontalArrangement = Arrangement .SpaceBetween ,
161+ verticalAlignment = Alignment .CenterVertically
162+ ) {
163+ ShowkaseAppBarTitle (
164+ isSearchActive = showkaseBrowserScreenMetadata.isSearchActive,
165+ currentGroup = showkaseBrowserScreenMetadata.currentGroup,
166+ currentComponentName = showkaseBrowserScreenMetadata.currentComponentName,
167+ currentComponentStyleName = showkaseBrowserScreenMetadata.currentComponentStyleName,
168+ currentRoute = currentRoute,
169+ searchQuery = showkaseBrowserScreenMetadata.searchQuery,
170+ searchQueryValueChange = {
171+ onSearchQueryChanged(it)
172+ },
173+ modifier = Modifier .fillMaxWidth(0.75f ),
174+ onCloseSearchFieldClick = {
175+ onCloseSearch()
176+ },
177+ onClearSearchField = {
178+ onClearSearch()
179+ }
180+ )
181+ ShowkaseAppBarActions (
182+ isActive = showkaseBrowserScreenMetadata.isSearchActive,
183+ onActionClicked = {
184+ onActivateSearch()
185+ },
186+ currentRoute = currentRoute,
187+ modifier = Modifier .fillMaxWidth(0.25f )
188+ )
189+ }
182190 }
183191
184192 /* *
@@ -189,18 +197,33 @@ internal fun ShowkaseAppBar(
189197// TopAppBar(
190198// title = {
191199// ShowkaseAppBarTitle(
192- // showkaseBrowserScreenMetadata.value.isSearchActive,
193- // showkaseBrowserScreenMetadata.value.currentGroup,
194- // showkaseBrowserScreenMetadata.value.currentComponentName,
195- // currentRoute,
196- // showkaseBrowserScreenMetadata.value.searchQuery
197- // ) {
198- // showkaseBrowserScreenMetadata.value =
199- // showkaseBrowserScreenMetadata.value.copy(searchQuery = it)
200- // }
200+ // isSearchActive = showkaseBrowserScreenMetadata.isSearchActive,
201+ // currentGroup = showkaseBrowserScreenMetadata.currentGroup,
202+ // currentComponentName = showkaseBrowserScreenMetadata.currentComponentName,
203+ // currentComponentStyleName = showkaseBrowserScreenMetadata.currentComponentStyleName,
204+ // currentRoute = currentRoute,
205+ // searchQuery = showkaseBrowserScreenMetadata.searchQuery,
206+ // searchQueryValueChange = {
207+ // onSearchQueryChanged(it)
208+ // },
209+ // modifier = Modifier,
210+ // onCloseSearchFieldClick = {
211+ // onCloseSearch()
212+ // },
213+ // onClearSearchField = {
214+ // onClearSearch()
215+ // }
216+ // )
201217// },
202218// actions = {
203- // ShowkaseAppBarActions(showkaseBrowserScreenMetadata, currentRoute)
219+ // ShowkaseAppBarActions(
220+ // isActive = showkaseBrowserScreenMetadata.isSearchActive,
221+ // onActionClicked = {
222+ // onActivateSearch()
223+ // },
224+ // currentRoute = currentRoute,
225+ // modifier = Modifier
226+ // )
204227// },
205228// backgroundColor = Color.White
206229// )
0 commit comments