@@ -6,6 +6,7 @@ package com.kiko.kige.ui.components
66
77import android.graphics.Bitmap
88import android.graphics.BitmapFactory
9+ import android.graphics.drawable.Drawable
910import android.net.Uri
1011import androidx.compose.foundation.Image
1112import androidx.compose.foundation.clickable
@@ -31,7 +32,9 @@ import androidx.compose.ui.graphics.painter.Painter
3132import androidx.compose.ui.layout.ContentScale
3233import androidx.compose.ui.platform.LocalContext
3334import androidx.compose.ui.unit.dp
35+ import coil.ImageLoader
3436import coil.compose.rememberAsyncImagePainter
37+ import coil.request.ImageRequest
3538import com.kiko.kige.data.remembers.rememberKigeState
3639import com.kiko.kige.data.state.GalleryState
3740import com.kiko.kige.data.state.KigeState
@@ -40,6 +43,9 @@ import com.skydoves.landscapist.ImageOptions
4043import com.skydoves.landscapist.coil.CoilImage
4144import com.skydoves.landscapist.components.rememberImageComponent
4245import com.skydoves.landscapist.placeholder.shimmer.ShimmerPlugin
46+ import com.skydoves.landscapist.rememberDrawablePainter
47+ import kotlinx.coroutines.delay
48+ import kotlinx.coroutines.launch
4349import java.io.File
4450
4551@OptIn(ExperimentalMaterial3Api ::class )
@@ -52,9 +58,11 @@ internal fun GallerySheet(
5258 val coroutineScope = rememberCoroutineScope()
5359
5460 var selectedPhotoUri by remember { mutableStateOf(" " ) }
61+
62+
5563 val selectedPainter = rememberAsyncImagePainter(
56- model = selectedPhotoUri,
57- onSuccess = { rememberKigeState.hide(coroutineScope) } )
64+ model = selectedPhotoUri
65+ )
5866
5967 if (rememberGalleryState.visibleState.value) {
6068 ModalBottomSheet (
@@ -84,8 +92,19 @@ internal fun GallerySheet(
8492 CoilImage (
8593 modifier = rememberGalleryState.galleryUIState.imagesModifier
8694 .clickable {
87- selectedPhotoUri = photoUri
88- onSelect(selectedPainter, Uri .fromFile(File (photoUri)))
95+ coroutineScope.launch {
96+ selectedPhotoUri = photoUri
97+ val uri = Uri .fromFile(File (photoUri))
98+
99+ onSelect(
100+ selectedPainter,
101+ uri
102+ )
103+
104+ delay(500 ) // Костыль надо придумать как возвращать hide при получении изображения
105+
106+ rememberKigeState.hide(coroutineScope)
107+ }
89108 },
90109 component = rememberImageComponent {
91110 // shows a shimmering effect when loading an image.
0 commit comments