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

@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.rememberScrollbarAdapter
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@ -13,10 +14,13 @@ import androidx.compose.ui.window.WindowPlacement
import androidx.compose.ui.window.WindowPosition
import androidx.compose.ui.window.application
import androidx.compose.ui.window.rememberWindowState
import dev.msfjarvis.claw.api.LobstersApi
import dev.msfjarvis.claw.common.posts.LobstersCard
import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.common.posts.toDbModel
import dev.msfjarvis.claw.common.theme.LobstersTheme
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
import dev.msfjarvis.claw.database.local.SavedPost
import org.pushingpixels.aurora.component.AuroraVerticalScrollbar
import org.pushingpixels.aurora.skin.ceruleanSkin
import org.pushingpixels.aurora.window.AuroraWindow
@ -30,6 +34,19 @@ fun main() = application {
placement = WindowPlacement.Floating,
position = WindowPosition.Aligned(Alignment.Center),
)
val postActions = remember {
object : PostActions {
override fun viewPost(postUrl: String, commentsUrl: String) {
urlLauncher.launch(postUrl.ifEmpty { commentsUrl })
}
override fun viewComments(postId: String) {
urlLauncher.launch("${LobstersApi.BASE_URL}/s/${postId}")
}
override fun toggleSave(post: SavedPost) {}
}
}
AuroraWindow(
skin = ceruleanSkin(),
title = "Claw",
@ -53,9 +70,7 @@ fun main() = application {
LobstersCard(
post = item.toDbModel(),
isSaved = false,
viewPost = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) },
viewComments = { urlLauncher.launch(item.commentsUrl) },
toggleSave = {},
postActions = postActions,
modifier = Modifier.padding(bottom = 16.dp, start = 16.dp, end = 16.dp),
)
}