|
@@ -31,6 +31,7 @@ import androidx.compose.foundation.selection.selectable
|
|
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
import androidx.compose.material.icons.Icons
|
|
|
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
|
|
+import androidx.compose.material3.DockedSearchBar
|
|
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
|
|
import androidx.compose.material3.Icon
|
|
|
import androidx.compose.material3.IconButton
|
|
@@ -142,52 +143,33 @@ fun ServerList(
|
|
|
val pagerState = rememberPagerState(initialPage = currentPageIndex, pageCount = {serverTabItems.size})
|
|
|
val selectedIndex by remember { derivedStateOf { pagerState.currentPage } }
|
|
|
|
|
|
-// if (Screen.ServerList.isTrue) {
|
|
|
-// LaunchedEffect(key1 = true) {
|
|
|
-// scope.launch {
|
|
|
-// pagerState.animateScrollToPage(1)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
- // Tab Row [Recommended, All Locations]
|
|
|
-
|
|
|
-// Surface(
|
|
|
-// modifier = Modifier
|
|
|
-// .fillMaxWidth()
|
|
|
-// .padding(top = 16.dp)
|
|
|
-// .background(Color.Transparent)
|
|
|
-// .clip(RoundedCornerShape(28.dp))
|
|
|
-// .height(68.dp),
|
|
|
-// ) {}
|
|
|
-
|
|
|
- TabRow(
|
|
|
- selectedTabIndex = selectedIndex,
|
|
|
- containerColor = MaterialTheme.colorScheme.onBackground,
|
|
|
- modifier = Modifier
|
|
|
- .fillMaxWidth(if (isTablet()) 0.5f else 1f)
|
|
|
- .padding(top = 16.dp)
|
|
|
- .background(Color.Transparent)
|
|
|
- .clip(RoundedCornerShape(28.dp))
|
|
|
- .height(68.dp)
|
|
|
- .align(Alignment.CenterHorizontally)
|
|
|
+ TabRow(
|
|
|
+ selectedTabIndex = selectedIndex,
|
|
|
+ containerColor = MaterialTheme.colorScheme.onBackground,
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth(if (isTablet()) 0.5f else 1f)
|
|
|
+ .padding(top = 16.dp)
|
|
|
+ .background(Color.Transparent)
|
|
|
+ .clip(RoundedCornerShape(28.dp))
|
|
|
+ .height(68.dp)
|
|
|
+ .align(Alignment.CenterHorizontally)
|
|
|
// .shadow(
|
|
|
// elevation = AppBarDefaults.TopAppBarElevation,
|
|
|
// shape = MaterialTheme.shapes.small,
|
|
|
// clip = true
|
|
|
// )
|
|
|
- ,
|
|
|
- indicator = {
|
|
|
+ ,
|
|
|
+ indicator = {
|
|
|
// TabRowDefaults.Indicator()
|
|
|
- },
|
|
|
- divider = {}
|
|
|
- ) {
|
|
|
- serverTabItems.forEachIndexed { index, currentTab ->
|
|
|
+ },
|
|
|
+ divider = {}
|
|
|
+ ) {
|
|
|
+ serverTabItems.forEachIndexed { index, currentTab ->
|
|
|
|
|
|
// val color = remember { Animatable(Color.White) }
|
|
|
- var colorTab by remember { mutableStateOf(Color.White) }
|
|
|
- colorTab = if (selectedIndex == index) MaterialTheme.colorScheme.surfaceDim
|
|
|
- else MaterialTheme.colorScheme.onBackground
|
|
|
+ var colorTab by remember { mutableStateOf(Color.White) }
|
|
|
+ colorTab = if (selectedIndex == index) MaterialTheme.colorScheme.surfaceDim
|
|
|
+ else MaterialTheme.colorScheme.onBackground
|
|
|
|
|
|
// LaunchedEffect(key1 = selectedIndex == index) {
|
|
|
// color.animateTo(
|
|
@@ -196,33 +178,33 @@ fun ServerList(
|
|
|
// )
|
|
|
// }
|
|
|
|
|
|
- Tab(
|
|
|
- selected = selectedIndex == index,
|
|
|
- onClick = {
|
|
|
- scope.launch {
|
|
|
- pagerState.animateScrollToPage(index)
|
|
|
- }
|
|
|
- },
|
|
|
- selectedContentColor = Color.White,
|
|
|
- unselectedContentColor = Color.White,
|
|
|
- text = { Text(text = currentTab,
|
|
|
- style = MaterialTheme.typography.headlineMedium,
|
|
|
- color = if (selectedIndex == index) MaterialTheme.colorScheme.primary
|
|
|
- else MaterialTheme.colorScheme.onTertiary,
|
|
|
- ) },
|
|
|
- modifier = Modifier
|
|
|
- .padding(
|
|
|
- start = 10.dp, end = 10.dp,
|
|
|
- top = 10.dp, bottom = 10.dp
|
|
|
- )
|
|
|
- .background(
|
|
|
- color = colorTab,
|
|
|
- shape = RoundedCornerShape(20.dp)
|
|
|
- )
|
|
|
+ Tab(
|
|
|
+ selected = selectedIndex == index,
|
|
|
+ onClick = {
|
|
|
+ scope.launch {
|
|
|
+ pagerState.animateScrollToPage(index)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectedContentColor = Color.White,
|
|
|
+ unselectedContentColor = Color.White,
|
|
|
+ text = { Text(text = currentTab,
|
|
|
+ style = MaterialTheme.typography.headlineMedium,
|
|
|
+ color = if (selectedIndex == index) MaterialTheme.colorScheme.primary
|
|
|
+ else MaterialTheme.colorScheme.onTertiary,
|
|
|
+ ) },
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(
|
|
|
+ start = 10.dp, end = 10.dp,
|
|
|
+ top = 10.dp, bottom = 10.dp
|
|
|
+ )
|
|
|
+ .background(
|
|
|
+ color = colorTab,
|
|
|
+ shape = RoundedCornerShape(20.dp)
|
|
|
+ )
|
|
|
|
|
|
- )
|
|
|
- }
|
|
|
+ )
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
HorizontalPager(
|
|
|
state = pagerState,
|
|
@@ -248,9 +230,6 @@ fun ServerList(
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -920,13 +899,15 @@ fun ColumnScope.ShowSearchBar(
|
|
|
CompositionLocalProvider(
|
|
|
LocalOverscrollConfiguration provides null
|
|
|
) {
|
|
|
- LazyColumn(
|
|
|
- modifier = Modifier
|
|
|
- .padding(top = 0.dp, bottom = 0.dp),
|
|
|
- ) {
|
|
|
- val searchServersList = searchListViewModel.countriesList.value
|
|
|
- items(items = searchServersList!!) { server ->
|
|
|
- ServerSearchItem(server, navHostController = navHostController) {}
|
|
|
+ val searchServersList = searchListViewModel.countriesList.value
|
|
|
+ if (searchServersList != null) {
|
|
|
+ LazyColumn(
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 0.dp, bottom = 0.dp),
|
|
|
+ ) {
|
|
|
+ items(items = searchServersList) { server ->
|
|
|
+ ServerSearchItem(server, navHostController = navHostController) {}
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1005,8 +986,24 @@ fun ServerListPreview() {
|
|
|
ServerList(rememberNavController(), false)
|
|
|
}
|
|
|
|
|
|
+// if (Screen.ServerList.isTrue) {
|
|
|
+// LaunchedEffect(key1 = true) {
|
|
|
+// scope.launch {
|
|
|
+// pagerState.animateScrollToPage(1)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
+// Tab Row [Recommended, All Locations]
|
|
|
|
|
|
+// Surface(
|
|
|
+// modifier = Modifier
|
|
|
+// .fillMaxWidth()
|
|
|
+// .padding(top = 16.dp)
|
|
|
+// .background(Color.Transparent)
|
|
|
+// .clip(RoundedCornerShape(28.dp))
|
|
|
+// .height(68.dp),
|
|
|
+// ) {}
|
|
|
|
|
|
|
|
|
// when (serverTabPager) {
|