app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 3ada037acc2c6a2cd4b0ed0f3b573a5285632be9
parent e1b258e9359809da3e488f3546e4d13a0bb5d0a3
Author: triesap <tyson@radroots.org>
Date:   Sat,  1 Aug 2026 18:22:18 +0000

runtime: separate native and application composition

- keep desktop startup responsible for native window integration
- move root Compose content behind RadrootsApplication
- preserve the centered placeholder through the new boundary
- exercise the application composable through the UI test runtime

Diffstat:
Aapp/desktop/src/main/kotlin/org/radroots/studio/application/RadrootsApplication.kt | 18++++++++++++++++++
Mapp/desktop/src/main/kotlin/org/radroots/studio/desktop/Main.kt | 13++-----------
Mapp/desktop/src/test/kotlin/org/radroots/studio/application/RadrootsApplicationTest.kt | 3+--
3 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/app/desktop/src/main/kotlin/org/radroots/studio/application/RadrootsApplication.kt b/app/desktop/src/main/kotlin/org/radroots/studio/application/RadrootsApplication.kt @@ -0,0 +1,18 @@ +package org.radroots.studio.application + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.text.BasicText +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier + +@Composable +fun RadrootsApplication() { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + BasicText("radroots") + } +} diff --git a/app/desktop/src/main/kotlin/org/radroots/studio/desktop/Main.kt b/app/desktop/src/main/kotlin/org/radroots/studio/desktop/Main.kt @@ -1,11 +1,6 @@ package org.radroots.studio.desktop -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.text.BasicText import androidx.compose.runtime.DisposableEffect -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Window import androidx.compose.ui.window.application @@ -13,6 +8,7 @@ import androidx.compose.ui.window.rememberWindowState import java.awt.Dimension import java.awt.Taskbar import javax.imageio.ImageIO +import org.radroots.studio.application.RadrootsApplication private const val ApplicationName = "Radroots" private const val InitialWindowWidth = 1284 @@ -51,12 +47,7 @@ fun main() { onDispose { } } - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - BasicText("radroots") - } + RadrootsApplication() } } } diff --git a/app/desktop/src/test/kotlin/org/radroots/studio/application/RadrootsApplicationTest.kt b/app/desktop/src/test/kotlin/org/radroots/studio/application/RadrootsApplicationTest.kt @@ -1,6 +1,5 @@ package org.radroots.studio.application -import androidx.compose.foundation.text.BasicText import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.onNodeWithText @@ -12,7 +11,7 @@ class RadrootsApplicationTest { @Test fun composeUiTestRuntimeRendersContent() = runComposeUiTest { setContent { - BasicText("radroots") + RadrootsApplication() } onNodeWithText("radroots").assertIsDisplayed()