Skip to content

Commit 815170f

Browse files
authored
Merge pull request #9082 from shamim-emon/fix-issue-9081
Fixes Navigation Drawer Email Folder Click Bug
2 parents 345b2a2 + 01b2c88 commit 815170f

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

  • feature/navigation/drawer/dropdown/src/main/kotlin/net/thunderbird/feature/navigation/drawer/dropdown/ui/folder

feature/navigation/drawer/dropdown/src/main/kotlin/net/thunderbird/feature/navigation/drawer/dropdown/ui/folder/FolderListItem.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
66
import androidx.compose.foundation.layout.padding
77
import androidx.compose.runtime.Composable
88
import androidx.compose.runtime.mutableStateOf
9+
import androidx.compose.runtime.remember
910
import androidx.compose.runtime.saveable.rememberSaveable
1011
import androidx.compose.ui.Modifier
1112
import androidx.compose.ui.graphics.vector.ImageVector
@@ -23,6 +24,7 @@ import net.thunderbird.feature.navigation.drawer.dropdown.domain.entity.DisplayT
2324
import net.thunderbird.feature.navigation.drawer.dropdown.domain.entity.DisplayUnifiedFolder
2425
import net.thunderbird.feature.navigation.drawer.dropdown.domain.entity.DisplayUnifiedFolderType
2526

27+
@Suppress("LongMethod")
2628
@Composable
2729
internal fun FolderListItem(
2830
displayFolder: DisplayFolder,
@@ -50,10 +52,17 @@ internal fun FolderListItem(
5052
.fillMaxWidth()
5153
.animateContentSize(),
5254
) {
55+
val hasExpandableItems = remember { treeFolder !== null && treeFolder.children.isNotEmpty() }
5356
NavigationDrawerItem(
5457
label = mapFolderName(displayFolder, folderNameFormatter, parentPrefix),
5558
selected = selected,
56-
onClick = { onClick(displayFolder) },
59+
onClick = {
60+
if (hasExpandableItems) {
61+
isExpanded.value = !isExpanded.value
62+
} else {
63+
onClick(displayFolder)
64+
}
65+
},
5766
modifier = Modifier.fillMaxWidth(),
5867
icon = {
5968
Icon(
@@ -65,7 +74,7 @@ internal fun FolderListItem(
6574
unreadCount = unreadCount,
6675
starredCount = starredCount,
6776
showStarredCount = showStarredCount,
68-
expandableState = if (treeFolder !== null && treeFolder.children.isNotEmpty()) isExpanded else null,
77+
expandableState = if (hasExpandableItems) isExpanded else null,
6978
)
7079
},
7180
)

0 commit comments

Comments
 (0)