Need to provide a LocalAsyncImagePreviewHandler for previews to work correctly with coil3

https://coil-kt.github.io/coil/compose/#previews
This commit is contained in:
Benoit Marty 2025-03-03 14:56:20 +01:00
parent 3a09d1c4ca
commit 42fcf31080

View file

@ -9,9 +9,14 @@ package io.element.android.libraries.designsystem.preview
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import coil3.annotation.ExperimentalCoilApi
import coil3.compose.AsyncImagePreviewHandler
import coil3.compose.LocalAsyncImagePreviewHandler
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Surface
@OptIn(ExperimentalCoilApi::class)
@Composable @Composable
@Suppress("ModifierMissing") @Suppress("ModifierMissing")
fun ElementPreview( fun ElementPreview(
@ -19,6 +24,7 @@ fun ElementPreview(
showBackground: Boolean = true, showBackground: Boolean = true,
content: @Composable () -> Unit content: @Composable () -> Unit
) { ) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides AsyncImagePreviewHandler { null }) {
ElementTheme(darkTheme = darkTheme) { ElementTheme(darkTheme = darkTheme) {
if (showBackground) { if (showBackground) {
// If we have a proper contentColor applied we need a Surface instead of a Box // If we have a proper contentColor applied we need a Surface instead of a Box
@ -28,3 +34,4 @@ fun ElementPreview(
} }
} }
} }
}