diff --git a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/foundation/components/BottomNavigationMenu.kt b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/foundation/components/BottomNavigationMenu.kt index f816d3dd7a..59b6859d26 100644 --- a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/foundation/components/BottomNavigationMenu.kt +++ b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/foundation/components/BottomNavigationMenu.kt @@ -174,18 +174,25 @@ fun BottomNavigationMenu( verticalAlignment = Alignment.CenterVertically ) { if (state is NavPanelState.Default) { - when (state.leftButtonState) { + when (val left = state.leftButtonState) { is NavPanelState.LeftButtonState.AddMembers -> { MenuItem( modifier = Modifier .width(72.dp) - .height(52.dp), + .height(52.dp) + .alpha( + if (left.isActive) + FULL_ALPHA + else + DEFAULT_DISABLED_ALPHA + ) + , contentDescription = stringResource(id = R.string.main_navigation_content_desc_members_button), res = BottomNavigationItem.ADD_MEMBERS.res, - onClick = onShareButtonClicked + onClick = onShareButtonClicked, + enabled = left.isActive ) } - is NavPanelState.LeftButtonState.Comment -> { // TODO } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModel.kt index b11f588079..ff73588efb 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModel.kt @@ -368,15 +368,29 @@ class HomeScreenViewModel( private fun proceedWithNavPanelState() { viewModelScope.launch { - userPermissions - .map { permission -> - NavPanelState.fromPermission( - permission = permission, - forceHome = false - ) - }.collect { - navPanelState.value = it + val spaceAccessType = views + .map { + val space = it.firstOrNull { it is WidgetView.SpaceWidget.View } + if (space is WidgetView.SpaceWidget.View) { + space.space + .spaceAccessType + } else { + null + } } + .distinctUntilChanged() + combine( + spaceAccessType, + userPermissions + ) { type, permission -> + NavPanelState.fromPermission( + permission = permission, + forceHome = false, + spaceAccessType = type + ) + }.collect { + navPanelState.value = it + } } } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/NavPanelState.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/NavPanelState.kt index 5fd319e0b2..d5ae6c5e7b 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/NavPanelState.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/NavPanelState.kt @@ -5,6 +5,7 @@ import com.anytypeio.anytype.analytics.base.EventsDictionary import com.anytypeio.anytype.analytics.base.EventsPropertiesKey import com.anytypeio.anytype.analytics.base.sendEvent import com.anytypeio.anytype.analytics.props.Props +import com.anytypeio.anytype.core_models.multiplayer.SpaceAccessType import com.anytypeio.anytype.core_models.multiplayer.SpaceMemberPermissions sealed class NavPanelState { @@ -26,7 +27,8 @@ sealed class NavPanelState { companion object { fun fromPermission( permission: SpaceMemberPermissions?, - forceHome: Boolean = true + forceHome: Boolean = true, + spaceAccessType: SpaceAccessType? = null ) : NavPanelState { return when(permission) { SpaceMemberPermissions.READER -> { @@ -54,7 +56,7 @@ sealed class NavPanelState { LeftButtonState.Home else LeftButtonState.AddMembers( - isActive = true + isActive = spaceAccessType != SpaceAccessType.DEFAULT ) ) }