desktop: sort everything under packages

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-03-14 20:01:45 +05:30
parent 704e59afdf
commit c5fafba7b5
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
6 changed files with 13 additions and 1 deletions

View file

@ -1,74 +0,0 @@
import androidx.compose.desktop.Window
import androidx.compose.foundation.VerticalScrollbar
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.rememberScrollbarAdapter
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Text
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import dev.msfjarvis.lobsters.data.local.SavedPost
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import dev.msfjarvis.lobsters.model.LobstersPost
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
val repository = ApiRepository()
@OptIn(ExperimentalStdlibApi::class)
fun main() = Window(title = "Claw for lobste.rs") {
val coroutineScope = rememberCoroutineScope()
var items by remember { mutableStateOf(emptyList<SavedPost>()) }
coroutineScope.launch {
withContext(Dispatchers.IO) {
items = repository.loadPosts(0).map(::toDbModel)
}
}
LobstersTheme {
Box(
modifier = Modifier.fillMaxSize(),
) {
val stateVertical = rememberScrollState(0)
Box(
modifier = Modifier
.fillMaxSize()
.verticalScroll(stateVertical),
) {
if (items.isEmpty()) {
Text("Loading...")
} else {
Column {
items.forEach {
LobstersItem(it)
}
}
}
}
VerticalScrollbar(
modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(),
adapter = rememberScrollbarAdapter(stateVertical),
)
}
}
}
fun toDbModel(post: LobstersPost): SavedPost {
return SavedPost(
shortId = post.shortId,
title = post.title,
url = post.url,
createdAt = post.createdAt,
commentsUrl = post.commentsUrl,
submitterName = post.submitterUser.username,
submitterAvatarUrl = post.submitterUser.avatarUrl,
tags = post.tags,
)
}