@@ -58,6 +58,8 @@ import io.getstream.chat.android.compose.ui.theme.MessageComposerParams
5858import io.getstream.chat.android.compose.ui.theme.MessageComposerTrailingContentParams
5959import io.getstream.chat.android.compose.ui.theme.StreamTokens
6060import io.getstream.chat.android.compose.ui.util.SnackbarPopup
61+ import io.getstream.chat.android.compose.ui.util.StreamSnackbarVariant
62+ import io.getstream.chat.android.compose.ui.util.StreamSnackbarVisuals
6163import io.getstream.chat.android.compose.util.extensions.toSet
6264import io.getstream.chat.android.compose.viewmodel.messages.MessageComposerViewModel
6365import io.getstream.chat.android.models.Attachment
@@ -159,7 +161,13 @@ public fun MessageComposer(
159161 LaunchedEffect (Unit ) {
160162 viewModel.events.collect { event ->
161163 val message = event.messageResOrNull()?.let (context::getString) ? : return @collect
162- snackbarHostState.showSnackbar(message = message, duration = SnackbarDuration .Short )
164+ snackbarHostState.showSnackbar(
165+ visuals = StreamSnackbarVisuals (
166+ message = message,
167+ duration = SnackbarDuration .Short ,
168+ variant = event.snackbarVariant(),
169+ ),
170+ )
163171 }
164172 }
165173
@@ -333,6 +341,11 @@ private fun MessageComposerViewEvent.messageResOrNull(): Int? = when (this) {
333341 else -> null
334342}
335343
344+ private fun MessageComposerViewEvent.snackbarVariant (): StreamSnackbarVariant = when (this ) {
345+ is MessageComposerViewEvent .CommandUnavailable -> StreamSnackbarVariant .Error
346+ else -> StreamSnackbarVariant .Default
347+ }
348+
336349@Composable
337350private fun MessageComposerSurface (
338351 modifier : Modifier ,
@@ -397,9 +410,12 @@ private fun MessageInputValidationError(validationErrors: List<ValidationError>,
397410 firstValidationError is ValidationError .AttachmentSizeExceeded
398411 ) {
399412 snackbarHostState.showSnackbar(
400- message = errorMessage,
401- actionLabel = context.getString(R .string.stream_compose_ok),
402- duration = SnackbarDuration .Indefinite ,
413+ visuals = StreamSnackbarVisuals (
414+ message = errorMessage,
415+ actionLabel = context.getString(R .string.stream_compose_ok),
416+ duration = SnackbarDuration .Indefinite ,
417+ variant = StreamSnackbarVariant .Error ,
418+ ),
403419 )
404420 } else {
405421 Toast .makeText(context, errorMessage, Toast .LENGTH_SHORT ).show()
0 commit comments