Merge pull request #24 from msfjarvis/ui-improvements

This commit is contained in:
Harsh Shandilya 2020-09-25 02:35:05 +05:30 committed by GitHub
commit c300a85204
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,10 +1,12 @@
package dev.msfjarvis.lobsters.ui package dev.msfjarvis.lobsters.ui
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.Text import androidx.compose.foundation.Text
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ConstraintLayout
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumnFor import androidx.compose.foundation.lazy.LazyColumnFor
@ -16,6 +18,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.ui.tooling.preview.Preview
import dev.msfjarvis.lobsters.model.LobstersPost import dev.msfjarvis.lobsters.model.LobstersPost
import dev.msfjarvis.lobsters.model.Submitter import dev.msfjarvis.lobsters.model.Submitter
@ -30,30 +33,39 @@ fun LazyItemScope.LobstersItem(
.fillParentMaxWidth() .fillParentMaxWidth()
.clickable(onClick = { onClick.invoke(post) }), .clickable(onClick = { onClick.invoke(post) }),
text = { text = {
Column { ConstraintLayout {
val (title, tags, submitter) = createRefs()
Text( Text(
text = post.title, text = post.title,
color = Color(0xFF7395D9), color = Color(0xFF7395D9),
fontWeight = FontWeight.Bold, fontWeight = FontWeight.Bold,
modifier = Modifier.padding(top = 4.dp) modifier = Modifier.padding(top = 4.dp).constrainAs(title) {
top.linkTo(parent.top)
start.linkTo(parent.start)
}
) )
Row( Row(
modifier = Modifier.padding(vertical = 8.dp), modifier = Modifier.padding(vertical = 8.dp).constrainAs(tags) {
top.linkTo(title.bottom)
},
horizontalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp),
) { ) {
post.tags.forEach { tag -> post.tags.forEach { tag ->
Text( Text(
text = tag, text = tag,
modifier = Modifier modifier = Modifier
.border(BorderStroke(1.dp, Color.Gray))
.background(Color(0xFFFFFCD7), RoundedCornerShape(4.dp)) .background(Color(0xFFFFFCD7), RoundedCornerShape(4.dp))
.padding(4.dp), .padding(vertical = 2.dp, horizontal = 4.dp),
color = Color.DarkGray, color = Color.DarkGray,
) )
} }
} }
Text( Text(
text = "submitted by ${post.submitterUser.username}", text = "submitted by ${post.submitterUser.username}",
modifier = Modifier.padding(bottom = 4.dp), modifier = Modifier.padding(bottom = 4.dp).constrainAs(submitter) {
top.linkTo(tags.bottom)
},
) )
} }
} }
@ -61,6 +73,7 @@ fun LazyItemScope.LobstersItem(
} }
@Composable @Composable
@Preview
fun PreviewLobstersItem() { fun PreviewLobstersItem() {
val post = LobstersPost( val post = LobstersPost(
"zqyydb", "zqyydb",