Refactor: Remove drawer and update navigation
This commit removes the drawer functionality from the chat screens and updates navigation accordingly. - Removed `drawerIsOpen` parameter and related logic from `RegularMessage.kt` and `ChannelScreen.kt`. - Updated `ChannelScreen.kt` to navigate back to the channels screen or invoke a custom back action instead of toggling the drawer. - Removed `onToggleDrawer` parameter from `ChannelScreen` invocation in `MainActivity.kt`. - Simplified navigation logic in `ChatRouterScreen.kt` by removing drawer state handling and updating conditions for selected bottom navigation items. - Updated styling for `ChannelSideDrawer.kt` by replacing `MaterialTheme.shapes.medium.copy` with `RoundedCornerShape` for top start corner rounding.
This commit is contained in:
parent
b5159450d7
commit
858d9d0e07
|
|
@ -693,7 +693,6 @@ fun AppEntrypoint(
|
|||
val channelId = backStackEntry.arguments?.getString("channelId") ?: ""
|
||||
ChannelScreen(
|
||||
channelId = channelId,
|
||||
onToggleDrawer = {},
|
||||
useDrawer = false,
|
||||
useBackButton = true,
|
||||
backToChannelsScreen = {
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@ const val SWIPE_TO_REPLY_THRESHOLD = -450f
|
|||
fun RegularMessage(
|
||||
message: Message,
|
||||
channel: Channel?,
|
||||
drawerIsOpen: Boolean,
|
||||
setDrawerGestureEnabled: (Boolean) -> Unit,
|
||||
setDisableScroll: (Boolean) -> Unit,
|
||||
showMessageBottomSheet: (String) -> Unit,
|
||||
|
|
@ -77,7 +76,6 @@ fun RegularMessage(
|
|||
var offsetX by remember { mutableFloatStateOf(0f) }
|
||||
val animOffsetX by animateFloatAsState(
|
||||
when {
|
||||
drawerIsOpen -> 0f
|
||||
offsetX > -20f -> 0f
|
||||
else -> offsetX
|
||||
},
|
||||
|
|
@ -103,7 +101,7 @@ fun RegularMessage(
|
|||
label = "Swipe to Reply indicator foreground"
|
||||
)
|
||||
|
||||
var onFingerMoveHandler: (List<PointerInputChange>) -> Unit =
|
||||
val onFingerMoveHandler: (List<PointerInputChange>) -> Unit =
|
||||
{ changeList: List<PointerInputChange> ->
|
||||
changeList.firstOrNull()
|
||||
?.let {
|
||||
|
|
|
|||
|
|
@ -421,13 +421,9 @@ fun ChannelSideDrawer(
|
|||
}
|
||||
Column(
|
||||
Modifier
|
||||
.clip(
|
||||
MaterialTheme.shapes.medium.copy(
|
||||
topStart = CornerSize(24.dp),
|
||||
)
|
||||
)
|
||||
.background(MaterialTheme.colorScheme.surfaceContainer)
|
||||
.weight(1f)
|
||||
.clip(shape = RoundedCornerShape(topStart = 24.dp))
|
||||
.background(color = MaterialTheme.colorScheme.surfaceContainer)
|
||||
.weight(weight = 1f)
|
||||
.fillMaxHeight()
|
||||
) {
|
||||
Box(
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ import androidx.compose.material.icons.filled.Home
|
|||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.BottomAppBar
|
||||
import androidx.compose.material3.DrawerState
|
||||
import androidx.compose.material3.DrawerValue
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -823,10 +822,8 @@ fun ChannelNavigator(
|
|||
currentServer: String?,
|
||||
toggleDrawer: () -> Unit,
|
||||
isTouchExplorationEnabled: Boolean,
|
||||
drawerState: DrawerState? = null,
|
||||
setDrawerGestureEnabled: (Boolean) -> Unit = {},
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
when (dest) {
|
||||
is ChatRouterDestination.Channel -> {
|
||||
ChannelScreen(
|
||||
|
|
@ -838,19 +835,11 @@ fun ChannelNavigator(
|
|||
serverID = currentServer
|
||||
)
|
||||
)
|
||||
}
|
||||
},
|
||||
onToggleDrawer = {
|
||||
scope.launch {
|
||||
if (drawerState?.isOpen == true) {
|
||||
drawerState.close()
|
||||
} else {
|
||||
drawerState?.open()
|
||||
}
|
||||
}
|
||||
} ?: viewModel.setSaveDestination(
|
||||
ChatRouterDestination.Home
|
||||
)
|
||||
},
|
||||
setDrawerGestureEnabled = setDrawerGestureEnabled,
|
||||
drawerIsOpen = drawerState?.isOpen == true,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -869,7 +858,13 @@ fun ChannelNavigator(
|
|||
label = {
|
||||
Text(text = "you")
|
||||
},
|
||||
selected = dest is ChatRouterDestination.Home,
|
||||
selected = when(dest){
|
||||
is ChatRouterDestination.ServersChannels,
|
||||
is ChatRouterDestination.NoCurrentChannel,
|
||||
ChatRouterDestination.Home,
|
||||
ChatRouterDestination.Discover -> true
|
||||
else -> false
|
||||
} ,
|
||||
enabled = true,
|
||||
onClick = {
|
||||
viewModel.setSaveDestination(ChatRouterDestination.Home)
|
||||
|
|
@ -947,8 +942,7 @@ fun ChannelNavigator(
|
|||
)
|
||||
}
|
||||
|
||||
is ChatRouterDestination.Channel -> {
|
||||
}
|
||||
is ChatRouterDestination.Channel -> {}
|
||||
|
||||
is ChatRouterDestination.NoCurrentChannel -> {
|
||||
NoCurrentChannelScreen(onDrawerClicked = toggleDrawer)
|
||||
|
|
|
|||
|
|
@ -189,12 +189,10 @@ private const val NOT_ENOUGH_SPACE_FOR_PANES_THRESHOLD = 500
|
|||
@Composable
|
||||
fun ChannelScreen(
|
||||
channelId: String,
|
||||
onToggleDrawer: () -> Unit,
|
||||
useDrawer: Boolean = false,
|
||||
backToChannelsScreen: (() -> Unit)?,
|
||||
useBackButton: Boolean = false,
|
||||
setDrawerGestureEnabled: (Boolean) -> Unit = {},
|
||||
drawerIsOpen: Boolean = false,
|
||||
backButtonAction: (() -> Unit)? = null,
|
||||
useChatUI: Boolean = false,
|
||||
viewModel: ChannelScreenViewModel = hiltViewModel()
|
||||
|
|
@ -629,7 +627,9 @@ fun ChannelScreen(
|
|||
windowInsets = if (useChatUI) WindowInsets.statusBars else WindowInsets.zero,
|
||||
navigationIcon = {
|
||||
if (useDrawer) {
|
||||
IconButton(onClick = onToggleDrawer) {
|
||||
IconButton(onClick = {
|
||||
backToChannelsScreen?.invoke()
|
||||
}) {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.icn_menu_24dp),
|
||||
contentDescription = stringResource(id = R.string.menu)
|
||||
|
|
@ -650,7 +650,7 @@ fun ChannelScreen(
|
|||
}
|
||||
) { pv ->
|
||||
if (viewModel.showGeoGate) {
|
||||
ChannelScreenGeoGate { onToggleDrawer() }
|
||||
ChannelScreenGeoGate { backToChannelsScreen?.invoke() }
|
||||
} else {
|
||||
Crossfade(
|
||||
targetState = viewModel.ageGateUnlocked,
|
||||
|
|
@ -665,10 +665,11 @@ fun ChannelScreen(
|
|||
}
|
||||
},
|
||||
onDeny = {
|
||||
onToggleDrawer()
|
||||
backToChannelsScreen?.invoke()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
null -> {
|
||||
Box(
|
||||
contentAlignment = Alignment.Center,
|
||||
|
|
@ -677,6 +678,7 @@ fun ChannelScreen(
|
|||
CircularProgressIndicator(modifier = Modifier.size(48.dp))
|
||||
}
|
||||
}
|
||||
|
||||
true -> {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
|
|
@ -731,7 +733,6 @@ fun ChannelScreen(
|
|||
RegularMessage(
|
||||
item.message,
|
||||
viewModel.channel,
|
||||
drawerIsOpen = drawerIsOpen,
|
||||
setDrawerGestureEnabled = {
|
||||
setDrawerGestureEnabled(it)
|
||||
},
|
||||
|
|
@ -972,7 +973,11 @@ fun ChannelScreen(
|
|||
ReplyManager(
|
||||
replies = viewModel.draftReplyTo,
|
||||
onToggleMention = {
|
||||
scope.launch { viewModel.toggleMentionOnReply(it.id) }
|
||||
scope.launch {
|
||||
viewModel.toggleMentionOnReply(
|
||||
it.id
|
||||
)
|
||||
}
|
||||
},
|
||||
onRemove = {
|
||||
viewModel.draftReplyTo.remove(it)
|
||||
|
|
@ -1027,7 +1032,9 @@ fun ChannelScreen(
|
|||
trailingIcon = {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.icn_close_24dp),
|
||||
contentDescription = stringResource(R.string.message_field_editing_message_cancel_alt),
|
||||
contentDescription = stringResource(
|
||||
R.string.message_field_editing_message_cancel_alt
|
||||
),
|
||||
tint = MaterialTheme.colorScheme.onSurface,
|
||||
modifier = Modifier.alpha(0.8f)
|
||||
)
|
||||
|
|
@ -1090,7 +1097,8 @@ fun ChannelScreen(
|
|||
DropdownMenu(
|
||||
expanded = viewModel.activePane == ChannelScreenActivePane.AttachmentPicker && notEnoughSpaceForPanes,
|
||||
onDismissRequest = {
|
||||
viewModel.activePane = ChannelScreenActivePane.None
|
||||
viewModel.activePane =
|
||||
ChannelScreenActivePane.None
|
||||
}
|
||||
) {
|
||||
DropdownMenuItem(
|
||||
|
|
|
|||
Loading…
Reference in New Issue