From c73b8ccdc95141f81675a072b3cbe07a6ef74ba1 Mon Sep 17 00:00:00 2001 From: Eric Ampire Date: Sat, 4 Sep 2021 18:23:51 +0200 Subject: [PATCH] Add BlogItemView --- .../screen/home/ui/BlogItemView.kt | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/home/ui/BlogItemView.kt diff --git a/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/home/ui/BlogItemView.kt b/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/home/ui/BlogItemView.kt new file mode 100644 index 0000000..f412652 --- /dev/null +++ b/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/home/ui/BlogItemView.kt @@ -0,0 +1,72 @@ +package com.ericampire.android.androidstudycase.presentation.screen.home.ui + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.dp +import com.ericampire.android.androidstudycase.domain.entity.Blog +import com.ericampire.android.androidstudycase.domain.entity.Lottiefile +import com.ericampire.android.androidstudycase.presentation.custom.CustomImageView +import com.ericampire.android.androidstudycase.presentation.theme.AndroidStudyCaseTheme +import com.ericampire.android.androidstudycase.util.BlogProvider +import com.ericampire.android.androidstudycase.util.LottieFileProvider + +@Composable +fun BlogItemView( + modifier: Modifier = Modifier, + blog: Blog, + onClick: (Blog) -> Unit +) { + Row( + modifier = modifier + .fillMaxWidth() + .clickable { + onClick(blog) + }, + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + content = { + CustomImageView( + modifier = Modifier + .height(80.dp) + .width(130.dp) + .clip(MaterialTheme.shapes.medium), + data = blog.imageUrl, + ) + + Text( + maxLines = 3, + text = blog.title, + style = MaterialTheme.typography.h6, + ) + } + ) +} + +@ExperimentalMaterialApi +@Preview() +@Composable +fun BlogItemViewPreview(@PreviewParameter(BlogProvider::class) data: Blog) { + AndroidStudyCaseTheme(darkTheme = true) { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + content = { + BlogItemView( + blog = data, + onClick = {} + ) + } + ) + } +} \ No newline at end of file