@@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
66import androidx.compose.foundation.layout.padding
77import androidx.compose.runtime.Composable
88import androidx.compose.runtime.mutableStateOf
9+ import androidx.compose.runtime.remember
910import androidx.compose.runtime.saveable.rememberSaveable
1011import androidx.compose.ui.Modifier
1112import androidx.compose.ui.graphics.vector.ImageVector
@@ -23,6 +24,7 @@ import net.thunderbird.feature.navigation.drawer.dropdown.domain.entity.DisplayT
2324import net.thunderbird.feature.navigation.drawer.dropdown.domain.entity.DisplayUnifiedFolder
2425import net.thunderbird.feature.navigation.drawer.dropdown.domain.entity.DisplayUnifiedFolderType
2526
27+ @Suppress(" LongMethod" )
2628@Composable
2729internal 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