|
1 | 1 | package com.amrdeveloper.linkhub.ui.search |
2 | 2 |
|
3 | 3 | import androidx.compose.foundation.horizontalScroll |
4 | | -import androidx.compose.foundation.layout.Column |
5 | 4 | import androidx.compose.foundation.layout.Row |
6 | 5 | import androidx.compose.foundation.layout.fillMaxWidth |
7 | 6 | import androidx.compose.foundation.layout.padding |
8 | 7 | import androidx.compose.foundation.layout.size |
| 8 | +import androidx.compose.foundation.lazy.LazyColumn |
| 9 | +import androidx.compose.foundation.lazy.items |
9 | 10 | import androidx.compose.foundation.rememberScrollState |
10 | 11 | import androidx.compose.material3.ExperimentalMaterial3Api |
11 | 12 | import androidx.compose.material3.FilterChip |
@@ -36,10 +37,9 @@ import androidx.lifecycle.viewmodel.compose.viewModel |
36 | 37 | import androidx.navigation.NavController |
37 | 38 | import com.amrdeveloper.linkhub.R |
38 | 39 | 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 |
41 | 41 | import com.amrdeveloper.linkhub.ui.components.LinkActionsBottomSheet |
42 | | -import com.amrdeveloper.linkhub.ui.components.LinkList |
| 42 | +import com.amrdeveloper.linkhub.ui.components.LinkItem |
43 | 43 | import com.amrdeveloper.linkhub.util.UiPreferences |
44 | 44 |
|
45 | 45 | @OptIn(ExperimentalMaterial3Api::class) |
@@ -122,54 +122,65 @@ fun SearchScreen( |
122 | 122 | expanded = it |
123 | 123 | }, |
124 | 124 | content = { |
125 | | - Column(modifier = Modifier.fillMaxWidth()) { |
126 | | - SearchSelectionOptions { |
127 | | - searchSelectionParams = it |
| 125 | + LazyColumn(modifier = Modifier.fillMaxWidth()) { |
| 126 | + item { |
| 127 | + SearchSelectionOptions { |
| 128 | + searchSelectionParams = it |
| 129 | + } |
128 | 130 | } |
129 | 131 |
|
130 | 132 | 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 | + } |
150 | 156 | } |
151 | 157 |
|
152 | 158 | 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 | + } |
166 | 177 | } |
| 178 | + } |
167 | 179 |
|
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 |
173 | 184 | } |
174 | 185 | } |
175 | 186 | } |
|
0 commit comments