Use the main bottom sheet for the labels
This commit is contained in:
@ -32,6 +32,8 @@ import androidx.core.view.WindowCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import app.omnivore.omnivore.MainActivity
|
||||
import app.omnivore.omnivore.R
|
||||
import app.omnivore.omnivore.persistence.entities.SavedItemLabel
|
||||
import app.omnivore.omnivore.ui.components.LabelsSelectionSheetContent
|
||||
import app.omnivore.omnivore.ui.components.WebReaderLabelsSelectionSheet
|
||||
import app.omnivore.omnivore.ui.notebook.NotebookView
|
||||
import app.omnivore.omnivore.ui.notebook.NotebookViewModel
|
||||
@ -108,7 +110,8 @@ enum class BottomSheetState(
|
||||
NONE(),
|
||||
PREFERENCES(),
|
||||
NOTEBOOK(),
|
||||
HIGHLIGHTNOTE()
|
||||
HIGHLIGHTNOTE(),
|
||||
LABELS(),
|
||||
}
|
||||
|
||||
|
||||
@ -131,6 +134,8 @@ fun WebReaderLoadingContainer(slug: String? = null, requestID: String? = null,
|
||||
val shouldPopView: Boolean by webReaderViewModel.shouldPopViewLiveData.observeAsState(false)
|
||||
val toolbarHeightPx: Float by webReaderViewModel.currentToolbarHeightLiveData.observeAsState(0.0f)
|
||||
|
||||
val labels: List<SavedItemLabel> by webReaderViewModel.savedItemLabelsLiveData.observeAsState(listOf())
|
||||
|
||||
val maxToolbarHeight = 48.dp
|
||||
webReaderViewModel.maxToolbarHeightPx = with(LocalDensity.current) { maxToolbarHeight.roundToPx().toFloat() }
|
||||
webReaderViewModel.loadItem(slug = slug, requestID = requestID)
|
||||
@ -159,6 +164,15 @@ fun WebReaderLoadingContainer(slug: String? = null, requestID: String? = null,
|
||||
}
|
||||
}
|
||||
|
||||
val showLabelsSelector: Boolean by webReaderViewModel.showLabelsSelectionSheetLiveData.observeAsState(false)
|
||||
|
||||
if (showLabelsSelector) {
|
||||
bottomSheetState = BottomSheetState.LABELS
|
||||
coroutineScope.launch {
|
||||
modalBottomSheetState.animateTo(ModalBottomSheetValue.HalfExpanded)
|
||||
}
|
||||
}
|
||||
|
||||
ModalBottomSheetLayout(
|
||||
modifier = Modifier
|
||||
.statusBarsPadding(),
|
||||
@ -201,6 +215,35 @@ fun WebReaderLoadingContainer(slug: String? = null, requestID: String? = null,
|
||||
}
|
||||
}
|
||||
}
|
||||
app.omnivore.omnivore.ui.reader.BottomSheetState.LABELS -> {
|
||||
BottomSheetUI(title = "Notebook") {
|
||||
LabelsSelectionSheetContent(
|
||||
labels = labels,
|
||||
initialSelectedLabels = webReaderParams?.labels ?: listOf(),
|
||||
onCancel = {
|
||||
coroutineScope.launch {
|
||||
modalBottomSheetState.hide()
|
||||
bottomSheetState = BottomSheetState.NONE
|
||||
}
|
||||
},
|
||||
isLibraryMode = false,
|
||||
onSave = {
|
||||
if (it != labels) {
|
||||
webReaderViewModel.updateSavedItemLabels(
|
||||
savedItemID = webReaderParams?.item?.savedItemId ?: "", labels = it
|
||||
)
|
||||
}
|
||||
coroutineScope.launch {
|
||||
modalBottomSheetState.hide()
|
||||
bottomSheetState = BottomSheetState.NONE
|
||||
}
|
||||
},
|
||||
onCreateLabel = { newLabelName, labelHexValue ->
|
||||
webReaderViewModel.createNewSavedItemLabel(newLabelName, labelHexValue)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
BottomSheetState.NONE -> {
|
||||
|
||||
}
|
||||
@ -298,8 +341,6 @@ fun WebReaderLoadingContainer(slug: String? = null, requestID: String? = null,
|
||||
webReaderViewModel = webReaderViewModel
|
||||
)
|
||||
}
|
||||
|
||||
WebReaderLabelsSelectionSheet(webReaderViewModel)
|
||||
}
|
||||
|
||||
LaunchedEffect(shouldPopView) {
|
||||
|
||||
Reference in New Issue
Block a user