diff --git a/desktop/src/jvmMain/kotlin/main.kt b/desktop/src/jvmMain/kotlin/main.kt index 158bf273..957ac593 100644 --- a/desktop/src/jvmMain/kotlin/main.kt +++ b/desktop/src/jvmMain/kotlin/main.kt @@ -1,33 +1,50 @@ -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.layout.padding -import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.foundation.verticalScroll import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication +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.common.posts.LobstersCard import dev.msfjarvis.claw.common.posts.TEST_POST import dev.msfjarvis.claw.common.theme.LobstersTheme import dev.msfjarvis.claw.common.urllauncher.UrlLauncher +import org.pushingpixels.aurora.component.AuroraVerticalScrollbar +import org.pushingpixels.aurora.skin.ceruleanSkin +import org.pushingpixels.aurora.window.AuroraWindow -fun main() = singleWindowApplication { +fun main() = application { val urlLauncher = UrlLauncher() - LobstersTheme(darkTheme = false) { - Box( - modifier = Modifier.fillMaxSize(), - ) { - val stateVertical = rememberScrollState(0) + val state = + rememberWindowState( + placement = WindowPlacement.Floating, + position = WindowPosition.Aligned(Alignment.Center), + ) + val itemsList = (0 until 10).toList() + AuroraWindow( + skin = ceruleanSkin(), + title = "Claw", + state = state, + undecorated = true, + onCloseRequest = ::exitApplication, + ) { + LobstersTheme(darkTheme = false) { Box( - modifier = Modifier.fillMaxSize().verticalScroll(stateVertical), + modifier = Modifier.fillMaxSize(), ) { - Column { - repeat(10) { + val listState = rememberLazyListState() + LazyColumn( + state = listState, + ) { + itemsIndexed(itemsList) { _, _ -> LobstersCard( post = TEST_POST, isSaved = false, @@ -38,11 +55,11 @@ fun main() = singleWindowApplication { ) } } + AuroraVerticalScrollbar( + adapter = rememberScrollbarAdapter(listState), + modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(), + ) } - VerticalScrollbar( - modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(), - adapter = rememberScrollbarAdapter(stateVertical), - ) } } }