common: add NetworkImage composable

This commit is contained in:
Harsh Shandilya 2021-08-05 21:32:13 +05:30
parent 450d4836c5
commit a8016391c9
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
5 changed files with 77 additions and 3 deletions

View file

@ -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
}
}

View file

@ -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),
)
}

View file

@ -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,
)

View file

@ -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,
)
}