clean up LabelsSelectionSheet

This commit is contained in:
Stefano Sansone
2024-02-07 17:36:28 +00:00
parent 3835b6ac2e
commit 90b2ae8e6a
3 changed files with 34 additions and 118 deletions

View File

@ -0,0 +1,33 @@
package app.omnivore.omnivore.feature.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
fun LabelChip(
modifier: Modifier = Modifier,
name: String,
colors: LabelChipColors,
) {
Surface(
modifier = modifier.padding(2.dp),
shape = MaterialTheme.shapes.medium,
color = colors.containerColor
) {
Row(modifier = Modifier
) {
Text(
text = name,
color = colors.textColor,
style = MaterialTheme.typography.subtitle2,
modifier = Modifier.padding(vertical = 3.dp, horizontal = 5.dp)
)
}
}
}

View File

@ -1,47 +0,0 @@
package app.omnivore.omnivore.feature.components
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Done
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FilterChip
import androidx.compose.material3.FilterChipDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun LabelFilterChip(
onClick: () -> Unit,
label: String
) {
var selected by remember { mutableStateOf(false) }
FilterChip(
onClick = {
selected = !selected
onClick()
},
label = {
Text(label)
},
selected = selected,
leadingIcon = if (selected) {
{
Icon(
imageVector = Icons.Filled.Done,
contentDescription = "Done icon",
modifier = Modifier.size(FilterChipDefaults.IconSize)
)
}
} else {
null
},
)
}

View File

@ -1,5 +1,3 @@
@file:OptIn(ExperimentalMaterialApi::class)
package app.omnivore.omnivore.feature.components
import android.widget.Toast
@ -19,7 +17,6 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.Scaffold
import androidx.compose.material.TextFieldDefaults
import androidx.compose.material.icons.Icons
@ -39,7 +36,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.focus.FocusRequester
@ -67,69 +63,6 @@ import com.dokar.chiptextfield.m3.ChipTextFieldDefaults
import com.dokar.chiptextfield.rememberChipTextFieldState
import com.google.accompanist.flowlayout.FlowRow
//@Composable
//fun LabelsSelectionSheet(viewModel: LibraryViewModel) {
// val isActive: Boolean by viewModel.showLabelsSelectionSheetLiveData.observeAsState(false)
// val labels: List<SavedItemLabel> by viewModel.savedItemLabelsLiveData.observeAsState(listOf())
// val currentSavedItemData = viewModel.currentSavedItemUnderEdit()
//
// val modalBottomSheetState = rememberModalBottomSheetState(
// ModalBottomSheetValue.HalfExpanded,
// confirmStateChange = { it != ModalBottomSheetValue.Hidden }
// )
//
// if (isActive) {
// ModalBottomSheetLayout(
// sheetBackgroundColor = Color.Transparent,
// sheetState = modalBottomSheetState,
// sheetContent = {
// BottomSheetUI {
// if (currentSavedItemData != null) {
// LabelsSelectionSheetContent(
// labels = labels,
// initialSelectedLabels = currentSavedItemData.labels,
// onCancel = {
// viewModel.showLabelsSelectionSheetLiveData.value = false
// viewModel.labelsSelectionCurrentItemLiveData.value = null
// },
// isLibraryMode = false,
// onSave = {
// if (it != labels) {
// viewModel.updateSavedItemLabels(
// savedItemID = currentSavedItemData.savedItem.savedItemId,
// labels = it
// )
// }
// viewModel.labelsSelectionCurrentItemLiveData.value = null
// viewModel.showLabelsSelectionSheetLiveData.value = false
// },
// onCreateLabel = { newLabelName, labelHexValue ->
// viewModel.createNewSavedItemLabel(newLabelName, labelHexValue)
// }
// )
// } else { // Is used in library mode
// LabelsSelectionSheetContent(
// labels = labels,
// initialSelectedLabels = viewModel.activeLabelsLiveData.value ?: listOf(),
// onCancel = { viewModel.showLabelsSelectionSheetLiveData.value = false },
// isLibraryMode = true,
// onSave = {
// viewModel.updateAppliedLabels(it)
// viewModel.labelsSelectionCurrentItemLiveData.value = null
// viewModel.showLabelsSelectionSheetLiveData.value = false
// },
// onCreateLabel = { newLabelName, labelHexValue ->
// viewModel.createNewSavedItemLabel(newLabelName, labelHexValue)
// }
// )
// }
// }
// }
// ) {}
// }
//}
@Composable
fun CircleIcon(colorHex: String) {
val chipColors = LabelChipColors.fromHex(colorHex)
@ -242,10 +175,7 @@ fun findOrCreateLabel(
}
@Composable
@OptIn(
ExperimentalMaterialApi::class, ExperimentalComposeUiApi::class,
ExperimentalMaterial3Api::class
)
@OptIn(ExperimentalMaterial3Api::class)
fun LabelsSelectionSheetContent(
isLibraryMode: Boolean,
labels: List<SavedItemLabel>,