common: refactor post interactions

This commit is contained in:
Harsh Shandilya 2021-10-15 13:54:46 +05:30
parent 2cfdf30f05
commit 45db8e8486
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
7 changed files with 66 additions and 34 deletions

View file

@ -40,14 +40,12 @@ import dev.msfjarvis.claw.database.local.SavedPost
fun LobstersCard(
post: SavedPost,
isSaved: Boolean,
viewPost: () -> Unit,
viewComments: (String) -> Unit,
toggleSave: () -> Unit,
postActions: PostActions,
modifier: Modifier = Modifier,
) {
Card(
modifier = Modifier.background(MaterialTheme.colors.primarySurface).then(modifier),
onClick = { viewPost() },
onClick = { postActions.viewPost(post.url, post.commentsUrl) },
) {
Column(
modifier = Modifier.padding(horizontal = 16.dp, vertical = 4.dp).fillMaxWidth(),
@ -63,13 +61,13 @@ fun LobstersCard(
) {
SaveButton(
isSaved = isSaved,
onClick = toggleSave,
onClick = { postActions.toggleSave(post) },
)
Spacer(
modifier = Modifier.width(8.dp),
)
CommentsButton(
onClick = { viewComments(post.shortId) },
onClick = { postActions.viewComments(post.shortId) },
)
}
}

View file

@ -0,0 +1,9 @@
package dev.msfjarvis.claw.common.posts
import dev.msfjarvis.claw.database.local.SavedPost
interface PostActions {
fun viewPost(postUrl: String, commentsUrl: String)
fun viewComments(postId: String)
fun toggleSave(post: SavedPost)
}