feat(ui): saved search tabs for browse source (#361)

Make all saved searchs to tabs in BrowseSource
This commit is contained in:
Cuong-Tran 2024-09-16 00:17:45 +07:00
parent ef58951bac
commit 326581e784
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
2 changed files with 28 additions and 1 deletions

View file

@ -258,7 +258,10 @@ data class BrowseSourceScreen(
}
if (/* SY --> */ state.filterable /* SY <-- */) {
FilterChip(
selected = state.listing is Listing.Search,
selected = state.listing is Listing.Search &&
// KMK -->
(state.listing as Listing.Search).savedSearchId == null,
// KMK <--
onClick = screenModel::openFilterSheet,
leadingIcon = {
Icon(
@ -281,6 +284,24 @@ data class BrowseSourceScreen(
},
)
}
// KMK -->
state.savedSearches.forEach { savedSearch ->
FilterChip(
selected = state.listing is Listing.Search &&
(state.listing as Listing.Search).savedSearchId == savedSearch.id,
onClick = {
screenModel.onSavedSearch(savedSearch) {
context.toast(it)
}
},
label = {
Text(
text = savedSearch.name,
)
},
)
}
// KMK <--
}
HorizontalDivider()

View file

@ -457,6 +457,9 @@ open class BrowseSourceScreenModel(
data class Search(
override val query: String?,
override val filters: FilterList,
// KMK -->
val savedSearchId: Long? = null,
// KMK <--
) : Listing(query = query, filters = filters)
companion object {
@ -540,6 +543,9 @@ open class BrowseSourceScreenModel(
listing = Listing.Search(
query = search.query,
filters = filters,
// KMK -->
savedSearchId = search.id,
// KMK <--
),
filters = filters,
toolbarQuery = search.query,