Skip to content

Commit 7936e98

Browse files
committed
Improve the scrolling in the SearchScreen
1 parent 1b9ec81 commit 7936e98

File tree

1 file changed

+55
-44
lines changed

1 file changed

+55
-44
lines changed

app/src/main/java/com/amrdeveloper/linkhub/ui/search/SearchScreen.kt

Lines changed: 55 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package com.amrdeveloper.linkhub.ui.search
22

33
import androidx.compose.foundation.horizontalScroll
4-
import androidx.compose.foundation.layout.Column
54
import androidx.compose.foundation.layout.Row
65
import androidx.compose.foundation.layout.fillMaxWidth
76
import androidx.compose.foundation.layout.padding
87
import androidx.compose.foundation.layout.size
8+
import androidx.compose.foundation.lazy.LazyColumn
9+
import androidx.compose.foundation.lazy.items
910
import androidx.compose.foundation.rememberScrollState
1011
import androidx.compose.material3.ExperimentalMaterial3Api
1112
import androidx.compose.material3.FilterChip
@@ -36,10 +37,9 @@ import androidx.lifecycle.viewmodel.compose.viewModel
3637
import androidx.navigation.NavController
3738
import com.amrdeveloper.linkhub.R
3839
import com.amrdeveloper.linkhub.data.Link
39-
import com.amrdeveloper.linkhub.ui.components.FolderList
40-
import com.amrdeveloper.linkhub.ui.components.FolderViewKind
40+
import com.amrdeveloper.linkhub.ui.components.FolderItem
4141
import com.amrdeveloper.linkhub.ui.components.LinkActionsBottomSheet
42-
import com.amrdeveloper.linkhub.ui.components.LinkList
42+
import com.amrdeveloper.linkhub.ui.components.LinkItem
4343
import com.amrdeveloper.linkhub.util.UiPreferences
4444

4545
@OptIn(ExperimentalMaterial3Api::class)
@@ -122,54 +122,65 @@ fun SearchScreen(
122122
expanded = it
123123
},
124124
content = {
125-
Column(modifier = Modifier.fillMaxWidth()) {
126-
SearchSelectionOptions {
127-
searchSelectionParams = it
125+
LazyColumn(modifier = Modifier.fillMaxWidth()) {
126+
item {
127+
SearchSelectionOptions {
128+
searchSelectionParams = it
129+
}
128130
}
129131

130132
if (searchSelectionParams.isFoldersSelected) {
131-
FolderList(
132-
folders = folders.value.data,
133-
viewKind = FolderViewKind.List,
134-
onClick = { folder ->
135-
viewModel.incrementFolderClickCount(folder)
136-
val bundle = bundleOf("folder" to folder)
137-
navController.navigate(
138-
R.id.linkListFragment,
139-
bundle
140-
)
141-
},
142-
onLongClick = { folder ->
143-
val bundle = bundleOf("folder" to folder)
144-
navController.navigate(
145-
R.id.folderFragment,
146-
bundle
147-
)
148-
}
149-
)
133+
items(folders.value.data) { folder ->
134+
FolderItem(
135+
folder = folder,
136+
onClick = {
137+
viewModel.incrementFolderClickCount(folder)
138+
val bundle = bundleOf("folder" to folder)
139+
navController.navigate(
140+
R.id.linkListFragment,
141+
bundle
142+
)
143+
},
144+
onLongClick = {
145+
val bundle = bundleOf("folder" to folder)
146+
navController.navigate(
147+
R.id.folderFragment,
148+
bundle
149+
)
150+
},
151+
modifier = Modifier
152+
.fillMaxWidth()
153+
.padding(4.dp)
154+
)
155+
}
150156
}
151157

152158
if (searchSelectionParams.isLinksSelected) {
153-
LinkList(
154-
links = links.value.data,
155-
onClick = { link ->
156-
viewModel.incrementLinkClickCount(link)
157-
lastClickedLink = link
158-
showLinkActionsDialog = true
159-
},
160-
onLongClick = { link ->
161-
val bundle = bundleOf("link" to link)
162-
navController.navigate(R.id.linkFragment, bundle)
163-
},
164-
showClickCount = uiPreferences.isClickCounterEnabled()
165-
)
159+
items(links.value.data) { link ->
160+
LinkItem(
161+
link = link,
162+
onClick = {
163+
viewModel.incrementLinkClickCount(link)
164+
lastClickedLink = link
165+
showLinkActionsDialog = true
166+
},
167+
onLongClick = {
168+
val bundle = bundleOf("link" to link)
169+
navController.navigate(R.id.linkFragment, bundle)
170+
},
171+
showClickCount = uiPreferences.isClickCounterEnabled(),
172+
modifier = Modifier
173+
.fillMaxWidth()
174+
.padding(4.dp)
175+
)
176+
}
166177
}
178+
}
167179

168-
if (showLinkActionsDialog) {
169-
lastClickedLink?.let { link ->
170-
LinkActionsBottomSheet(link) {
171-
showLinkActionsDialog = false
172-
}
180+
if (showLinkActionsDialog) {
181+
lastClickedLink?.let { link ->
182+
LinkActionsBottomSheet(link) {
183+
showLinkActionsDialog = false
173184
}
174185
}
175186
}

0 commit comments

Comments
 (0)