Updated on 2026-08-14

This commit is contained in:
Tangem 2025-06-02 14:02:48 +05:00
parent e736f86583
commit 82dcb31881
3 changed files with 45 additions and 0 deletions

View file

@ -19,6 +19,27 @@ import com.tangem.core.ui.message.SnackbarMessage.Duration
@Immutable
sealed interface EventMessage : UiMessage
data class ToastMessage(
val message: TextReference,
val duration: Duration = ToastMessage.Duration.Short,
) : EventMessage {
/**
* The duration of the snackbar.
* */
enum class Duration {
/**
* Shows the toast for a short period of time.
* */
Short,
/**
* Shows the toast for a long period of time.
* */
Long,
}
}
/**
* Shows a snackbar.
*

View file

@ -1,6 +1,7 @@
package com.tangem.core.ui.message
import android.content.Context
import android.widget.Toast
import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.SnackbarResult
@ -24,6 +25,7 @@ fun EventMessageEffect(
onShowSnackbar: suspend (SnackbarMessage, Context) -> Unit = { message, context ->
showSnackbar(snackbarHostState, message, context)
},
onShowToast: (ToastMessage, Context) -> Unit = { message, context -> showToast(message, context) },
) {
val messageEvent by messageHandler.collectAsState()
val context = LocalContext.current
@ -46,6 +48,9 @@ fun EventMessageEffect(
is BottomSheetMessageV2 -> {
bottomSheetMessageV2 = message
}
is ToastMessage -> {
onShowToast(message, context)
}
}
}
@ -162,4 +167,15 @@ private suspend fun showSnackbar(snackbarHostState: SnackbarHostState, message:
SnackbarResult.Dismissed -> message.onDismissRequest()
SnackbarResult.ActionPerformed -> message.action?.invoke()
}
}
private fun showToast(message: ToastMessage, context: Context) {
Toast.makeText(
/* context = */ context,
/* text = */ message.message.resolveReference(context.resources),
/* duration = */ when (message.duration) {
ToastMessage.Duration.Short -> Toast.LENGTH_SHORT
ToastMessage.Duration.Long -> Toast.LENGTH_LONG
},
).show()
}