@@ -114,6 +114,7 @@ data class ChatMessageListUiState(
114114 val isChannel : Boolean ,
115115 val isAdmin : Boolean ,
116116 val canWrite : Boolean ,
117+ val canSendAnything : Boolean ,
117118 val highlightedMessageId : Long? ,
118119 val fontSize : Float ,
119120 val letterSpacing : Float ,
@@ -677,60 +678,6 @@ private fun MessageBubbleSwitcher(
677678 newerMsg?.suppressRootReply(state.rootMessage?.id)
678679 }
679680
680- val canWriteText by remember(state.isAdmin, state.permissions.canSendBasicMessages) {
681- derivedStateOf { state.isAdmin || state.permissions.canSendBasicMessages }
682- }
683- val canSendPhotos by remember(state.isAdmin, state.permissions.canSendPhotos) {
684- derivedStateOf { state.isAdmin || state.permissions.canSendPhotos }
685- }
686- val canSendVideos by remember(state.isAdmin, state.permissions.canSendVideos) {
687- derivedStateOf { state.isAdmin || state.permissions.canSendVideos }
688- }
689- val canSendDocuments by remember(state.isAdmin, state.permissions.canSendDocuments) {
690- derivedStateOf { state.isAdmin || state.permissions.canSendDocuments }
691- }
692- val canSendAudios by remember(state.isAdmin, state.permissions.canSendAudios) {
693- derivedStateOf { state.isAdmin || state.permissions.canSendAudios }
694- }
695- val canUseMediaPicker by remember(canSendPhotos, canSendVideos) {
696- derivedStateOf { canSendPhotos || canSendVideos }
697- }
698- val canUseDocumentPicker by remember(canSendDocuments, canSendAudios) {
699- derivedStateOf { canSendDocuments || canSendAudios }
700- }
701- val canSendPolls by remember(state.isAdmin, state.permissions.canSendPolls) {
702- derivedStateOf { state.isAdmin || state.permissions.canSendPolls }
703- }
704- val canOpenAttachSheet by remember(
705- canUseMediaPicker,
706- canUseDocumentPicker,
707- canSendPolls,
708- state.attachMenuBots
709- ) {
710- derivedStateOf { canUseMediaPicker || canUseDocumentPicker || canSendPolls || state.attachMenuBots.isNotEmpty() }
711- }
712- val canSendStickers by remember(state.isAdmin, state.permissions.canSendOtherMessages) {
713- derivedStateOf { state.isAdmin || state.permissions.canSendOtherMessages }
714- }
715- val canSendVoice by remember(state.isAdmin, state.permissions.canSendVoiceNotes) {
716- derivedStateOf { state.isAdmin || state.permissions.canSendVoiceNotes }
717- }
718- val canSendVideoNotes by remember(state.isAdmin, state.permissions.canSendVideoNotes) {
719- derivedStateOf { state.isAdmin || state.permissions.canSendVideoNotes }
720- }
721- val canSendAnything by remember(
722- canWriteText,
723- canOpenAttachSheet,
724- canSendStickers,
725- canSendVoice,
726- canSendVideoNotes,
727- canSendPolls
728- ) {
729- derivedStateOf {
730- canWriteText || canOpenAttachSheet || canSendStickers || canSendVoice || canSendVideoNotes || canSendPolls
731- }
732- }
733-
734681 when (sanitizedItem) {
735682 is GroupedMessageItem .Single -> {
736683 if (sanitizedItem.message.content is MessageContent .Service ) {
@@ -827,7 +774,7 @@ private fun MessageBubbleSwitcher(
827774 onCommentsClick = { component.onCommentsClick(it) },
828775 toProfile = toProfile,
829776 onViaBotClick = onViaBotClick,
830- canReply = state.canWrite && ! isSelectionMode && canSendAnything,
777+ canReply = state.canWrite && ! isSelectionMode && state. canSendAnything,
831778 onReplySwipe = { component.onReplyMessage(it) },
832779 onYouTubeClick = { component.onOpenYouTube(it) },
833780 onInstantViewClick = { component.onOpenInstantView(it) },
@@ -932,7 +879,7 @@ private fun MessageBubbleSwitcher(
932879 onPositionChange = { _, pos, size -> onMessagePositionChange(pos, size) },
933880 toProfile = toProfile,
934881 onViaBotClick = onViaBotClick,
935- canReply = state.canWrite && ! isSelectionMode && (! isTopicClosed || state.isAdmin) && canSendAnything,
882+ canReply = state.canWrite && ! isSelectionMode && (! isTopicClosed || state.isAdmin) && state. canSendAnything,
936883 onReplySwipe = { component.onReplyMessage(it) },
937884 swipeEnabled = ! isSelectionMode,
938885 downloadUtils = downloadUtils,
@@ -1000,7 +947,7 @@ private fun MessageBubbleSwitcher(
1000947 onCommentsClick = { component.onCommentsClick(it) },
1001948 toProfile = toProfile,
1002949 onViaBotClick = onViaBotClick,
1003- canReply = state.canWrite && ! isSelectionMode && (! isTopicClosed || state.isAdmin) && canSendAnything,
950+ canReply = state.canWrite && ! isSelectionMode && (! isTopicClosed || state.isAdmin) && state. canSendAnything,
1004951 onReplySwipe = { component.onReplyMessage(it) },
1005952 swipeEnabled = ! isSelectionMode,
1006953 downloadUtils = downloadUtils,
0 commit comments