mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 17:37:05 +05:30
common: add NetworkImage composable
This commit is contained in:
parent
450d4836c5
commit
a8016391c9
5 changed files with 77 additions and 3 deletions
|
@ -27,13 +27,21 @@ kotlin {
|
|||
api(compose.foundation)
|
||||
api(compose.material)
|
||||
api(projects.database)
|
||||
implementation("com.alialbaali.kamel:kamel-image:0.2.1")
|
||||
}
|
||||
}
|
||||
val commonTest by getting
|
||||
val androidMain by getting { dependencies { implementation(libs.androidx.browser) } }
|
||||
val androidMain by getting {
|
||||
dependencies {
|
||||
implementation(libs.androidx.browser)
|
||||
implementation(libs.coil.compose)
|
||||
}
|
||||
}
|
||||
val androidTest by getting { dependsOn(androidAndroidTestRelease) }
|
||||
val desktopMain by getting
|
||||
val desktopMain by getting {
|
||||
dependencies {
|
||||
implementation(libs.kamel.image)
|
||||
}
|
||||
}
|
||||
val desktopTest by getting
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package dev.msfjarvis.claw.common.ui
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import coil.annotation.ExperimentalCoilApi
|
||||
import coil.compose.rememberImagePainter
|
||||
import coil.transform.CircleCropTransformation
|
||||
|
||||
@Composable
|
||||
@OptIn(ExperimentalCoilApi::class)
|
||||
actual fun NetworkImage(
|
||||
url: String,
|
||||
contentDescription: String,
|
||||
modifier: Modifier,
|
||||
) {
|
||||
Image(
|
||||
painter = rememberImagePainter(
|
||||
data = url,
|
||||
builder = {
|
||||
transformations(CircleCropTransformation())
|
||||
crossfade(true)
|
||||
},
|
||||
),
|
||||
contentDescription = contentDescription,
|
||||
modifier = Modifier.then(modifier),
|
||||
)
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package dev.msfjarvis.claw.common.ui
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
|
||||
@Composable
|
||||
expect fun NetworkImage(
|
||||
url: String,
|
||||
contentDescription: String,
|
||||
modifier: Modifier,
|
||||
)
|
|
@ -0,0 +1,24 @@
|
|||
package dev.msfjarvis.claw.common.ui
|
||||
|
||||
import androidx.compose.foundation.layout.requiredSize
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.kamel.image.KamelImage
|
||||
import io.kamel.image.lazyImageResource
|
||||
|
||||
@Composable
|
||||
actual fun NetworkImage(
|
||||
url: String,
|
||||
contentDescription: String,
|
||||
modifier: Modifier,
|
||||
) {
|
||||
KamelImage(
|
||||
resource = lazyImageResource(url),
|
||||
contentDescription = contentDescription,
|
||||
modifier = Modifier.then(modifier),
|
||||
crossfade = true,
|
||||
)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue