diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/media/CaptureMediaLauncher.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/media/CaptureMediaLauncher.kt index 1b0f3bf93e2..3d8364380dc 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/media/CaptureMediaLauncher.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/media/CaptureMediaLauncher.kt @@ -19,6 +19,7 @@ package io.getstream.chat.android.compose.ui.messages.attachments.media import androidx.activity.compose.ManagedActivityResultLauncher import androidx.activity.compose.rememberLauncherForActivityResult import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember import io.getstream.chat.android.ui.common.contract.internal.CaptureMediaContract import java.io.File @@ -62,8 +63,10 @@ public fun rememberCaptureMediaLauncher( video: Boolean, onResult: (File) -> Unit, ): ManagedActivityResultLauncher? { - val mode = resolveMediaPickerMode(photo, video) ?: return null - return rememberLauncherForActivityResult(CaptureMediaContract(mode)) { file -> + val contract = remember(photo, video) { + resolveMediaPickerMode(photo, video)?.let { CaptureMediaContract(it) } + } ?: return null + return rememberLauncherForActivityResult(contract) { file -> file?.let(onResult) } }