فهرست منبع

Disabled drawer if search is opened

Vadik Sirekanyan 2 سال پیش
والد
کامیت
4f8309ab85

+ 2 - 3
app/src/main/java/org/sirekanyan/outline/MainContent.kt

@@ -56,17 +56,16 @@ import org.sirekanyan.outline.ui.DrawerContent
 import org.sirekanyan.outline.ui.KeyBottomSheet
 import org.sirekanyan.outline.ui.SearchField
 import org.sirekanyan.outline.ui.icons.IconSort
-import org.sirekanyan.outline.ui.rememberSearchState
 
 @Composable
 fun MainContent(state: MainState) {
     val sorting by state.sorting.collectAsState(Sorting.DEFAULT)
     var isSortingVisible by remember { mutableStateOf(false) }
-    ModalNavigationDrawer({ DrawerContent(state) }, drawerState = state.drawer) {
+    ModalNavigationDrawer({ DrawerContent(state) }, Modifier, state.drawer, !state.drawerDisabled) {
         val insets = WindowInsets.systemBars.asPaddingValues() + PaddingValues(top = 64.dp)
         when (val page = state.page) {
             is HelloPage -> {
-                val search = rememberSearchState()
+                val search = state.search
                 BackHandler(search.isOpened) {
                     search.closeSearch()
                 }

+ 3 - 0
app/src/main/java/org/sirekanyan/outline/MainState.kt

@@ -36,6 +36,7 @@ import org.sirekanyan.outline.feature.keys.KeysState
 import org.sirekanyan.outline.feature.sort.Sorting
 import org.sirekanyan.outline.repository.KeyRepository
 import org.sirekanyan.outline.repository.ServerRepository
+import org.sirekanyan.outline.ui.SearchState
 import java.net.ConnectException
 import java.net.UnknownHostException
 
@@ -77,7 +78,9 @@ class MainState(
 
     val servers = ServerRepository(api, dao)
     val keys = KeyRepository(api, cache)
+    val search = SearchState()
     val drawer = DrawerState(DrawerValue.Closed)
+    val drawerDisabled by derivedStateOf { search.isOpened && drawer.isClosed }
     var page by mutableStateOf<Page>(HelloPage)
     var dialog by mutableStateOf<Dialog?>(null)
     val selectedPage by derivedStateOf { page as? SelectedPage }

+ 0 - 6
app/src/main/java/org/sirekanyan/outline/ui/SearchState.kt

@@ -1,15 +1,9 @@
 package org.sirekanyan.outline.ui
 
-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
 
-@Composable
-fun rememberSearchState(): SearchState =
-    remember { SearchState() }
-
 class SearchState {
 
     var query by mutableStateOf("")