mirror of
https://github.com/bitwarden/android.git
synced 2026-08-29 10:17:56 -05:00
[PM-21585] Display item folder location when only in a single folder (#5184)
This commit is contained in:
+51
-6
@@ -202,6 +202,28 @@ fun LazyListScope.itemHeader(
|
||||
return
|
||||
}
|
||||
|
||||
// When the item is assigned to a single folder and not a collection we display the folder name.
|
||||
if (folderLocations.isNotEmpty() && collectionLocations.isEmpty()) {
|
||||
val folderLocation = folderLocations.first()
|
||||
item(key = "folder") {
|
||||
ItemLocationListItem(
|
||||
vectorPainter = rememberVectorPainter(folderLocation.icon),
|
||||
iconTestTag = "ItemLocationIcon",
|
||||
text = folderLocation.name,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.standardHorizontalMargin()
|
||||
.animateItem()
|
||||
.cardStyle(
|
||||
cardStyle = CardStyle.Bottom,
|
||||
paddingVertical = 0.dp,
|
||||
paddingHorizontal = 16.dp,
|
||||
),
|
||||
)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// When the item is assigned to multiple collections we only display the first collection by
|
||||
// default and collapse the remaining locations.
|
||||
collectionLocations.firstOrNull()
|
||||
@@ -348,7 +370,7 @@ private fun LazyItemScope.ItemLocationListItem(
|
||||
//region Previews
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemHeader_LocalIcon_Preview() {
|
||||
private fun ItemHeaderWithLocalIcon_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
@@ -369,7 +391,7 @@ private fun ItemHeader_LocalIcon_Preview() {
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemHeader_NetworkIcon_Preview() {
|
||||
private fun ItemHeaderWithNetworkIcon_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
@@ -391,7 +413,7 @@ private fun ItemHeader_NetworkIcon_Preview() {
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemHeader_Organization_Preview() {
|
||||
private fun ItemHeaderWithOrganization_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
@@ -414,7 +436,7 @@ private fun ItemHeader_Organization_Preview() {
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemNameField_Org_SingleCollection_Preview() {
|
||||
private fun ItemHeaderWithOrgAndSingleCollection_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
@@ -438,7 +460,7 @@ private fun ItemNameField_Org_SingleCollection_Preview() {
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemNameField_Org_MultiCollection_Preview() {
|
||||
private fun ItemHeaderWithOrgAndMultiCollection_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
@@ -463,7 +485,7 @@ private fun ItemNameField_Org_MultiCollection_Preview() {
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemNameField_Org_SingleCollection_Folder_Preview() {
|
||||
private fun ItemHeaderWithOrgSingleCollectionAndFolder_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
@@ -485,4 +507,27 @@ private fun ItemNameField_Org_SingleCollection_Folder_Preview() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
private fun ItemHeaderFolderOnly_Preview() {
|
||||
var isExpanded by remember { mutableStateOf(false) }
|
||||
BitwardenTheme {
|
||||
LazyColumn {
|
||||
itemHeader(
|
||||
value = "SSH key in a folder",
|
||||
isFavorite = true,
|
||||
iconData = IconData.Local(
|
||||
iconRes = R.drawable.ic_ssh_key,
|
||||
),
|
||||
relatedLocations = persistentListOf(
|
||||
VaultItemLocation.Folder("Competition"),
|
||||
),
|
||||
isExpanded = isExpanded,
|
||||
onExpandClick = { isExpanded = !isExpanded },
|
||||
applyIconBackground = true,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
//endregion Previews
|
||||
|
||||
Reference in New Issue
Block a user