mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 14:07:05 +05:30
common: import toDbModel and implement for LobstersPostDetails
This commit is contained in:
parent
7f54e6ff1b
commit
b7ca16ebe3
5 changed files with 34 additions and 34 deletions
|
@ -1,18 +0,0 @@
|
||||||
package dev.msfjarvis.claw.android.ext
|
|
||||||
|
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
|
||||||
import dev.msfjarvis.claw.model.LobstersPost
|
|
||||||
|
|
||||||
/** Convert a [LobstersPost] object returned by the API into a [SavedPost] for persistence. */
|
|
||||||
fun LobstersPost.toDbModel(): SavedPost {
|
|
||||||
return SavedPost(
|
|
||||||
shortId = shortId,
|
|
||||||
title = title,
|
|
||||||
url = url,
|
|
||||||
createdAt = createdAt,
|
|
||||||
commentsUrl = commentsUrl,
|
|
||||||
submitterName = submitter.username,
|
|
||||||
submitterAvatarUrl = submitter.avatarUrl,
|
|
||||||
tags = tags,
|
|
||||||
)
|
|
||||||
}
|
|
|
@ -13,8 +13,8 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.paging.compose.LazyPagingItems
|
import androidx.paging.compose.LazyPagingItems
|
||||||
import androidx.paging.compose.items
|
import androidx.paging.compose.items
|
||||||
import dev.msfjarvis.claw.android.ext.toDbModel
|
|
||||||
import dev.msfjarvis.claw.common.posts.LobstersCard
|
import dev.msfjarvis.claw.common.posts.LobstersCard
|
||||||
|
import dev.msfjarvis.claw.common.posts.toDbModel
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
import dev.msfjarvis.claw.model.LobstersPost
|
import dev.msfjarvis.claw.model.LobstersPost
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
|
@ -16,6 +16,7 @@ kotlin {
|
||||||
api(compose.foundation)
|
api(compose.foundation)
|
||||||
api(compose.material)
|
api(compose.material)
|
||||||
api(projects.database)
|
api(projects.database)
|
||||||
|
api(projects.model)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceSets["androidMain"].apply {
|
sourceSets["androidMain"].apply {
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package dev.msfjarvis.claw.common.posts
|
||||||
|
|
||||||
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
|
import dev.msfjarvis.claw.model.LobstersPost
|
||||||
|
import dev.msfjarvis.claw.model.LobstersPostDetails
|
||||||
|
|
||||||
|
fun LobstersPost.toDbModel(): SavedPost {
|
||||||
|
return SavedPost(
|
||||||
|
shortId = shortId,
|
||||||
|
title = title,
|
||||||
|
url = url,
|
||||||
|
createdAt = createdAt,
|
||||||
|
commentsUrl = commentsUrl,
|
||||||
|
submitterName = submitter.username,
|
||||||
|
submitterAvatarUrl = submitter.avatarUrl,
|
||||||
|
tags = tags,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun LobstersPostDetails.toDbModel(): SavedPost {
|
||||||
|
return SavedPost(
|
||||||
|
shortId = shortId,
|
||||||
|
title = title,
|
||||||
|
url = url,
|
||||||
|
createdAt = createdAt,
|
||||||
|
commentsUrl = commentsUrl,
|
||||||
|
submitterName = submitter.username,
|
||||||
|
submitterAvatarUrl = submitter.avatarUrl,
|
||||||
|
tags = tags,
|
||||||
|
)
|
||||||
|
}
|
|
@ -14,27 +14,13 @@ import androidx.compose.ui.window.WindowPosition
|
||||||
import androidx.compose.ui.window.application
|
import androidx.compose.ui.window.application
|
||||||
import androidx.compose.ui.window.rememberWindowState
|
import androidx.compose.ui.window.rememberWindowState
|
||||||
import dev.msfjarvis.claw.common.posts.LobstersCard
|
import dev.msfjarvis.claw.common.posts.LobstersCard
|
||||||
|
import dev.msfjarvis.claw.common.posts.toDbModel
|
||||||
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
||||||
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
|
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
|
||||||
import dev.msfjarvis.claw.model.LobstersPost
|
|
||||||
import org.pushingpixels.aurora.component.AuroraVerticalScrollbar
|
import org.pushingpixels.aurora.component.AuroraVerticalScrollbar
|
||||||
import org.pushingpixels.aurora.skin.ceruleanSkin
|
import org.pushingpixels.aurora.skin.ceruleanSkin
|
||||||
import org.pushingpixels.aurora.window.AuroraWindow
|
import org.pushingpixels.aurora.window.AuroraWindow
|
||||||
|
|
||||||
fun LobstersPost.toDbModel(): SavedPost {
|
|
||||||
return SavedPost(
|
|
||||||
shortId = shortId,
|
|
||||||
title = title,
|
|
||||||
url = url,
|
|
||||||
createdAt = createdAt,
|
|
||||||
commentsUrl = commentsUrl,
|
|
||||||
submitterName = submitter.username,
|
|
||||||
submitterAvatarUrl = submitter.avatarUrl,
|
|
||||||
tags = tags,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun main() = application {
|
fun main() = application {
|
||||||
val paging = Paging(rememberCoroutineScope())
|
val paging = Paging(rememberCoroutineScope())
|
||||||
val items = paging.pagingData.collectAsLazyPagingItems()
|
val items = paging.pagingData.collectAsLazyPagingItems()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue