mirror of
https://github.com/bitwarden/android.git
synced 2026-06-06 22:42:58 -05:00
Add events for the search screen (#726)
This commit is contained in:
committed by
Álison Fernandes
parent
b65671bce7
commit
03222cbdaf
@@ -48,6 +48,7 @@ data class SearchArgs(
|
||||
*/
|
||||
fun NavGraphBuilder.searchDestination(
|
||||
onNavigateBack: () -> Unit,
|
||||
onNavigateToEditSend: (sendId: String) -> Unit,
|
||||
) {
|
||||
composableWithSlideTransitions(
|
||||
route = SEARCH_ROUTE,
|
||||
@@ -61,6 +62,7 @@ fun NavGraphBuilder.searchDestination(
|
||||
) {
|
||||
SearchScreen(
|
||||
onNavigateBack = onNavigateBack,
|
||||
onNavigateToEditSend = onNavigateToEditSend,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.x8bit.bitwarden.ui.platform.feature.search
|
||||
|
||||
import android.widget.Toast
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
@@ -19,6 +20,7 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
@@ -29,6 +31,8 @@ import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenScaffold
|
||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenTopAppBar
|
||||
import com.x8bit.bitwarden.ui.platform.components.NavigationIcon
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.theme.LocalIntentManager
|
||||
|
||||
/**
|
||||
* The search UI for vault items or send items.
|
||||
@@ -37,12 +41,22 @@ import com.x8bit.bitwarden.ui.platform.components.NavigationIcon
|
||||
@Composable
|
||||
fun SearchScreen(
|
||||
onNavigateBack: () -> Unit,
|
||||
onNavigateToEditSend: (sendId: String) -> Unit,
|
||||
intentManager: IntentManager = LocalIntentManager.current,
|
||||
viewModel: SearchViewModel = hiltViewModel(),
|
||||
) {
|
||||
val state by viewModel.stateFlow.collectAsStateWithLifecycle()
|
||||
val context = LocalContext.current
|
||||
EventsEffect(viewModel = viewModel) { event ->
|
||||
when (event) {
|
||||
SearchEvent.NavigateBack -> onNavigateBack()
|
||||
is SearchEvent.NavigateToEditSend -> onNavigateToEditSend(event.sendId)
|
||||
is SearchEvent.ShowShareSheet -> intentManager.shareText(event.content)
|
||||
is SearchEvent.ShowToast -> {
|
||||
Toast
|
||||
.makeText(context, event.message(context.resources), Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.search
|
||||
import android.os.Parcelable
|
||||
import androidx.lifecycle.SavedStateHandle
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseViewModel
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.Text
|
||||
import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.parcelize.Parcelize
|
||||
@@ -60,4 +61,25 @@ sealed class SearchEvent {
|
||||
* Navigates back to the previous screen.
|
||||
*/
|
||||
data object NavigateBack : SearchEvent()
|
||||
|
||||
/**
|
||||
* Navigates to edit a send.
|
||||
*/
|
||||
data class NavigateToEditSend(
|
||||
val sendId: String,
|
||||
) : SearchEvent()
|
||||
|
||||
/**
|
||||
* Shares the [content] with share sheet.
|
||||
*/
|
||||
data class ShowShareSheet(
|
||||
val content: String,
|
||||
) : SearchEvent()
|
||||
|
||||
/**
|
||||
* Show a toast with the given [message].
|
||||
*/
|
||||
data class ShowToast(
|
||||
val message: Text,
|
||||
) : SearchEvent()
|
||||
}
|
||||
|
||||
@@ -99,7 +99,6 @@ fun NavGraphBuilder.vaultUnlockedGraph(
|
||||
} else {
|
||||
VaultAddEditType.EditItem(vaultItemId)
|
||||
},
|
||||
|
||||
)
|
||||
},
|
||||
onNavigateToMoveToOrganization = {
|
||||
@@ -125,7 +124,10 @@ fun NavGraphBuilder.vaultUnlockedGraph(
|
||||
passwordHistoryDestination(onNavigateBack = { navController.popBackStack() })
|
||||
foldersDestination(onNavigateBack = { navController.popBackStack() })
|
||||
generatorModalDestination(onNavigateBack = { navController.popBackStack() })
|
||||
searchDestination(onNavigateBack = { navController.popBackStack() })
|
||||
searchDestination(
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onNavigateToEditSend = { navController.navigateToAddSend(AddSendType.EditItem(it)) },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user