JS-spezifische Module und Dateien entfernt, Multiplattform-Targets korrigiert

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-18 14:16:22 +02:00
parent 7bbb991e69
commit e91b10daa3
169 changed files with 2128 additions and 824 deletions
@@ -10,12 +10,12 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import at.mocode.desktop.navigation.DesktopNavigationPort
import at.mocode.desktop.screens.layout.DesktopMainLayout
import at.mocode.desktop.screens.onboarding.SettingsManager
import at.mocode.frontend.core.auth.data.AuthTokenManager
import at.mocode.frontend.core.auth.presentation.LoginScreen
import at.mocode.frontend.core.auth.presentation.LoginViewModel
import at.mocode.frontend.core.designsystem.theme.AppTheme
import at.mocode.frontend.core.navigation.AppScreen
import at.mocode.frontend.features.deviceinitialization.domain.DeviceInitializationSettingsManager
import org.koin.compose.koinInject
import org.koin.compose.viewmodel.koinViewModel
@@ -37,7 +37,7 @@ fun DesktopApp() {
// DeviceInitialization-Check beim Start
LaunchedEffect(Unit) {
if (!SettingsManager.isConfigured()) {
if (!DeviceInitializationSettingsManager.isConfigured()) {
nav.navigateToScreen(AppScreen.DeviceInitialization)
}
}
@@ -12,6 +12,7 @@ import at.mocode.frontend.core.localdb.localDbModule
import at.mocode.frontend.core.network.networkModule
import at.mocode.frontend.core.sync.di.syncModule
import at.mocode.frontend.features.billing.di.billingModule
import at.mocode.frontend.features.deviceinitialization.di.deviceInitializationModule
import at.mocode.frontend.features.nennung.di.nennungFeatureModule
import at.mocode.frontend.features.pferde.di.pferdeModule
import at.mocode.frontend.features.profile.di.profileModule
@@ -43,6 +44,7 @@ fun main() = application {
reiterModule,
vereinFeatureModule,
turnierFeatureModule,
deviceInitializationModule,
desktopModule,
)
}
@@ -24,9 +24,6 @@ import at.mocode.desktop.screens.management.VeranstalterAuswahl
import at.mocode.desktop.screens.management.VeranstalterDetail
import at.mocode.desktop.screens.management.VeranstalterVerwaltungScreen
import at.mocode.desktop.screens.nennung.NennungsEingangScreen
import at.mocode.desktop.screens.onboarding.OnboardingScreen
import at.mocode.desktop.screens.onboarding.OnboardingSettings
import at.mocode.desktop.screens.onboarding.SettingsManager
import at.mocode.desktop.screens.profile.FunktionaerProfil
import at.mocode.desktop.screens.veranstaltung.*
import at.mocode.frontend.core.designsystem.theme.AppColors
@@ -37,6 +34,10 @@ import at.mocode.frontend.core.network.ConnectivityTracker
import at.mocode.frontend.core.network.discovery.NetworkDiscoveryService
import at.mocode.frontend.features.billing.presentation.BillingScreen
import at.mocode.frontend.features.billing.presentation.BillingViewModel
import at.mocode.frontend.features.deviceinitialization.domain.DeviceInitializationSettings
import at.mocode.frontend.features.deviceinitialization.domain.DeviceInitializationSettingsManager
import at.mocode.frontend.features.deviceinitialization.presentation.DeviceInitializationScreen
import at.mocode.frontend.features.deviceinitialization.presentation.DeviceInitializationViewModel
import at.mocode.frontend.features.nennung.presentation.NennungViewModel
import at.mocode.frontend.features.nennung.presentation.NennungsMaske
import at.mocode.frontend.features.pferde.presentation.PferdeScreen
@@ -79,7 +80,11 @@ fun DesktopMainLayout(
) {
println("[Navigation] Rendering Screen: ${currentScreen::class.simpleName} (Details: $currentScreen)")
// DeviceInitialization-Daten (On-the-fly geladen oder Default)
var onboardingSettings by remember { mutableStateOf(SettingsManager.loadSettings() ?: OnboardingSettings()) }
var onboardingSettings by remember {
mutableStateOf(
DeviceInitializationSettingsManager.loadSettings() ?: DeviceInitializationSettings()
)
}
// Automatische Umleitung zum DeviceInitialization, wenn Setup fehlt (außer wir sind bereits dort)
LaunchedEffect(onboardingSettings) {
@@ -111,7 +116,7 @@ fun DesktopMainLayout(
onBack = onBack,
onSettingsChange = {
onboardingSettings = it
SettingsManager.saveSettings(it)
DeviceInitializationSettingsManager.saveSettings(it)
},
settings = onboardingSettings,
)
@@ -518,25 +523,25 @@ private fun DesktopContentArea(
currentScreen: AppScreen,
onNavigate: (AppScreen) -> Unit,
onBack: () -> Unit,
settings: OnboardingSettings,
onSettingsChange: (OnboardingSettings) -> Unit,
settings: DeviceInitializationSettings,
onSettingsChange: (DeviceInitializationSettings) -> Unit,
) {
when (currentScreen) {
// DeviceInitialization (Geräte-Setup)
is AppScreen.DeviceInitialization -> {
println("[Screen] Rendering DeviceInitialization")
OnboardingScreen(
settings = settings,
onSettingsChange = onSettingsChange,
onContinue = { finalSettings: OnboardingSettings ->
SettingsManager.saveSettings(finalSettings)
val viewModel = koinViewModel<DeviceInitializationViewModel> {
org.koin.core.parameter.parametersOf({ finalSettings: DeviceInitializationSettings ->
DeviceInitializationSettingsManager.saveSettings(finalSettings)
// Vision_04: Sicherheitsschlüssel als Token setzen, damit Cloud-Suche funktioniert
val authTokenManager =
org.koin.core.context.GlobalContext.get().get<at.mocode.frontend.core.auth.data.AuthTokenManager>()
authTokenManager.setToken(finalSettings.sharedKey)
onSettingsChange(finalSettings)
onNavigate(AppScreen.VeranstaltungVerwaltung)
}
)
})
}
DeviceInitializationScreen(viewModel = viewModel)
}
// Haupt-Zentrale: Veranstaltung-Verwaltung
@@ -871,7 +876,7 @@ private fun DesktopContentArea(
@Composable
private fun DesktopFooterBar(
settings: OnboardingSettings,
settings: DeviceInitializationSettings,
onSetupClick: () -> Unit = {}
) {
val connectivityTracker = koinInject<ConnectivityTracker>()
@@ -881,7 +886,7 @@ private fun DesktopFooterBar(
val online by connectivityTracker.isOnline.collectAsState()
val znsState = znsImporter.state
val discoveredServices = remember { mutableStateOf(discoveryService.getDiscoveredServices()) }
val deviceName = settings.geraetName.ifBlank { "Unbekannt" }
val deviceName = settings.deviceName.ifBlank { "Unbekannt" }
// Periodisches Update der LAN-Geräte (mDNS)
LaunchedEffect(Unit) {