diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt index 3bc3f2ad..d67f73f5 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt @@ -10,15 +10,11 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.semantics.isTraversalGroup -import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp -import androidx.compose.ui.zIndex import androidx.paging.compose.LazyPagingItems import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.ui.SearchBar @@ -38,10 +34,7 @@ fun SearchList( setSearchQuery(query) lazyPagingItems.refresh() } - Column( - modifier = - modifier.systemBarsPadding().semantics { isTraversalGroup = true }.zIndex(1f).fillMaxWidth() - ) { + Column(modifier.padding(contentPadding).fillMaxWidth()) { SearchBar( value = searchQuery, onValueChange = setSearchQuery, @@ -52,7 +45,7 @@ fun SearchList( lazyPagingItems = lazyPagingItems, listState = listState, postActions = postActions, - contentPadding = contentPadding, + contentPadding = PaddingValues(0.dp), ) } } diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/Nav3Screen.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/Nav3Screen.kt index 03ca1c9d..c4811729 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/Nav3Screen.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/Nav3Screen.kt @@ -246,7 +246,12 @@ fun Nav3Screen( ) } entry { - SearchScreen(urlLauncher = urlLauncher, setWebUri = setWebUri, viewModel = viewModel) + setWebUri("https://lobste.rs/search") + SearchScreen( + viewModel = viewModel, + postActions = postActions, + contentPadding = contentPadding, + ) } entry { LibrariesContainer(contentPadding = contentPadding, modifier = Modifier.fillMaxSize()) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/SearchScreen.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/SearchScreen.kt index 306e8299..0a66e766 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/SearchScreen.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/screens/SearchScreen.kt @@ -6,78 +6,32 @@ */ package dev.msfjarvis.claw.android.ui.screens +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import androidx.navigation.toRoute import androidx.paging.compose.collectAsLazyPagingItems import com.deliveryhero.whetstone.compose.injectedViewModel -import dev.msfjarvis.claw.android.ui.PostActions import dev.msfjarvis.claw.android.ui.lists.SearchList -import dev.msfjarvis.claw.android.ui.navigation.Comments -import dev.msfjarvis.claw.android.ui.navigation.Search -import dev.msfjarvis.claw.android.ui.navigation.User import dev.msfjarvis.claw.android.viewmodel.ClawViewModel -import dev.msfjarvis.claw.common.comments.CommentsPage -import dev.msfjarvis.claw.common.urllauncher.UrlLauncher -import dev.msfjarvis.claw.common.user.UserProfile +import dev.msfjarvis.claw.common.posts.PostActions @Composable fun SearchScreen( - urlLauncher: UrlLauncher, - setWebUri: (String?) -> Unit, + postActions: PostActions, + contentPadding: PaddingValues, modifier: Modifier = Modifier, viewModel: ClawViewModel = injectedViewModel(), ) { - val context = LocalContext.current - val navController = rememberNavController() - val postActions = remember { - PostActions(context, urlLauncher, viewModel) { navController.navigate(Comments(it)) } - } val listState = rememberLazyListState() val searchResults = viewModel.searchResults.collectAsLazyPagingItems() - - Scaffold(modifier = modifier) { contentPadding -> - NavHost(navController = navController, startDestination = Search) { - composable { - setWebUri("https://lobste.rs/search") - SearchList( - lazyPagingItems = searchResults, - listState = listState, - postActions = postActions, - searchQuery = viewModel.searchQuery, - contentPadding = contentPadding, - setSearchQuery = { query -> viewModel.searchQuery = query }, - ) - } - composable { backStackEntry -> - val postId = backStackEntry.toRoute().postId - setWebUri("https://lobste.rs/s/$postId") - CommentsPage( - postId = postId, - postActions = postActions, - getSeenComments = viewModel::getSeenComments, - markSeenComments = viewModel::markSeenComments, - contentPadding = contentPadding, - openUserProfile = { navController.navigate(User(it)) }, - ) - } - composable { backStackEntry -> - val username = backStackEntry.toRoute().username - setWebUri("https://lobste.rs/u/$username") - UserProfile( - username = username, - getProfile = viewModel::getUserProfile, - openUserProfile = { navController.navigate(User(it)) }, - contentPadding = contentPadding, - ) - } - } - } + SearchList( + lazyPagingItems = searchResults, + listState = listState, + postActions = postActions, + searchQuery = viewModel.searchQuery, + contentPadding = contentPadding, + setSearchQuery = { query -> viewModel.searchQuery = query }, + modifier = modifier, + ) }