diff --git a/app/src/main/java/eu/gaudian/translator/view/library/LibraryScreen.kt b/app/src/main/java/eu/gaudian/translator/view/library/LibraryScreen.kt index 8c85e87..ba6166e 100644 --- a/app/src/main/java/eu/gaudian/translator/view/library/LibraryScreen.kt +++ b/app/src/main/java/eu/gaudian/translator/view/library/LibraryScreen.kt @@ -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(