implement AddCategoryDialog and add a dropdown menu for adding vocabulary or categories in LibraryScreen
This commit is contained in:
@@ -60,9 +60,12 @@ import androidx.navigation.NavHostController
|
||||
import eu.gaudian.translator.R
|
||||
import eu.gaudian.translator.model.VocabularyStage
|
||||
import eu.gaudian.translator.utils.findActivity
|
||||
import eu.gaudian.translator.view.composable.AppDropDownMenu
|
||||
import eu.gaudian.translator.view.composable.AppIcons
|
||||
import eu.gaudian.translator.view.composable.AppSwitch
|
||||
import eu.gaudian.translator.view.composable.LargeDropdownMenuItem
|
||||
import eu.gaudian.translator.view.composable.MultipleLanguageDropdown
|
||||
import eu.gaudian.translator.view.dialogs.AddCategoryDialog
|
||||
import eu.gaudian.translator.view.dialogs.CategorySelectionDialog
|
||||
import eu.gaudian.translator.view.dialogs.StageSelectionDialog
|
||||
import eu.gaudian.translator.viewmodel.CategoryViewModel
|
||||
@@ -106,6 +109,8 @@ fun LibraryScreen(
|
||||
|
||||
var showCategoryDialog by remember { mutableStateOf(false) }
|
||||
var showStageDialog by remember { mutableStateOf(false) }
|
||||
var showAddMenu by remember { mutableStateOf(false) }
|
||||
var showAddCategoryDialog by remember { mutableStateOf(false) }
|
||||
|
||||
var isCategoriesView by remember { mutableStateOf(false) }
|
||||
|
||||
@@ -164,7 +169,7 @@ fun LibraryScreen(
|
||||
modifier = Modifier
|
||||
.widthIn(max = 700.dp)
|
||||
.fillMaxSize()
|
||||
.padding(horizontal = 24.dp),
|
||||
.padding(horizontal = 16.dp),
|
||||
) {
|
||||
AnimatedVisibility(
|
||||
visible = isHeaderVisible,
|
||||
@@ -193,7 +198,7 @@ fun LibraryScreen(
|
||||
)
|
||||
} else {
|
||||
LibraryTopBar(
|
||||
onAddClick = { /* TODO: Add new card/category */ }
|
||||
onAddClick = { showAddMenu = true }
|
||||
)
|
||||
}
|
||||
|
||||
@@ -323,6 +328,36 @@ fun LibraryScreen(
|
||||
)
|
||||
}
|
||||
|
||||
if (showAddMenu) {
|
||||
AppDropDownMenu(
|
||||
expanded = showAddMenu,
|
||||
onDismissRequest = { showAddMenu = false }
|
||||
) {
|
||||
LargeDropdownMenuItem(
|
||||
text = stringResource(R.string.label_add_vocabulary),
|
||||
selected = false,
|
||||
enabled = true,
|
||||
onClick = {
|
||||
showAddMenu = false
|
||||
navController.navigate("new_word")
|
||||
}
|
||||
)
|
||||
LargeDropdownMenuItem(
|
||||
text = stringResource(R.string.label_add_category),
|
||||
selected = false,
|
||||
enabled = true,
|
||||
onClick = {
|
||||
showAddMenu = false
|
||||
showAddCategoryDialog = true
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (showAddCategoryDialog) {
|
||||
AddCategoryDialog(onDismiss = { showAddCategoryDialog = false })
|
||||
}
|
||||
|
||||
if (showStageDialog) {
|
||||
val selectedItems = vocabularyItems.filter { selection.contains(it.id.toLong()) }
|
||||
StageSelectionDialog(
|
||||
|
||||
Reference in New Issue
Block a user