fix: do not show swipe to reply if drawer is present and open

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2025-04-25 21:49:34 +02:00
parent 3c5c7bc30a
commit a8ce409b54
3 changed files with 6 additions and 4 deletions

View File

@ -63,6 +63,7 @@ const val SWIPE_TO_REPLY_THRESHOLD = -450f
fun RegularMessage( fun RegularMessage(
message: Message, message: Message,
channel: Channel?, channel: Channel?,
drawerIsOpen: Boolean,
setDrawerGestureEnabled: (Boolean) -> Unit, setDrawerGestureEnabled: (Boolean) -> Unit,
setDisableScroll: (Boolean) -> Unit, setDisableScroll: (Boolean) -> Unit,
showMessageBottomSheet: (String) -> Unit, showMessageBottomSheet: (String) -> Unit,
@ -76,6 +77,7 @@ fun RegularMessage(
var offsetX by remember { mutableFloatStateOf(0f) } var offsetX by remember { mutableFloatStateOf(0f) }
val animOffsetX by animateFloatAsState( val animOffsetX by animateFloatAsState(
when { when {
drawerIsOpen -> 0f
offsetX > -20f -> 0f offsetX > -20f -> 0f
else -> offsetX else -> offsetX
}, },

View File

@ -941,7 +941,7 @@ fun ChannelNavigator(
useDrawer = useDrawer, useDrawer = useDrawer,
drawerGestureEnabled = drawerGestureEnabled, drawerGestureEnabled = drawerGestureEnabled,
setDrawerGestureEnabled = setDrawerGestureEnabled, setDrawerGestureEnabled = setDrawerGestureEnabled,
drawerState = drawerState, drawerIsOpen = drawerState?.isOpen == true,
) )
} }

View File

@ -197,7 +197,7 @@ fun ChannelScreen(
useBackButton: Boolean = false, useBackButton: Boolean = false,
drawerGestureEnabled: Boolean = true, drawerGestureEnabled: Boolean = true,
setDrawerGestureEnabled: (Boolean) -> Unit = {}, setDrawerGestureEnabled: (Boolean) -> Unit = {},
drawerState: DrawerState? = null, drawerIsOpen: Boolean = false,
backButtonAction: (() -> Unit)? = null, backButtonAction: (() -> Unit)? = null,
useChatUI: Boolean = false, useChatUI: Boolean = false,
viewModel: ChannelScreenViewModel = hiltViewModel() viewModel: ChannelScreenViewModel = hiltViewModel()
@ -205,7 +205,6 @@ fun ChannelScreen(
// <editor-fold desc="State and effects"> // <editor-fold desc="State and effects">
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val context = LocalContext.current val context = LocalContext.current
val haptic = LocalHapticFeedback.current
val config = LocalConfiguration.current val config = LocalConfiguration.current
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
@ -255,7 +254,7 @@ fun ChannelScreen(
} }
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
if (context.resources.configuration.keyboard and Configuration.KEYBOARD_QWERTY != 0) { if (config.keyboard and Configuration.KEYBOARD_QWERTY != 0) {
viewModel.usesPhysicalKeyboard() viewModel.usesPhysicalKeyboard()
} }
} }
@ -709,6 +708,7 @@ fun ChannelScreen(
RegularMessage( RegularMessage(
item.message, item.message,
viewModel.channel, viewModel.channel,
drawerIsOpen = drawerIsOpen,
setDrawerGestureEnabled = { setDrawerGestureEnabled = {
setDrawerGestureEnabled(it) setDrawerGestureEnabled(it)
}, },