JS-spezifische Module und Dateien entfernt, Multiplattform-Targets korrigiert
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
@@ -10,13 +10,13 @@ import java.util.*
|
||||
* Setzt alle Core- und Feature-Module zu einer lauffähigen Desktop-Anwendung zusammen.
|
||||
*
|
||||
* Packaging:
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageDeb → Linux .deb
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageMsi → Windows .msi
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageDmg → macOS .dmg
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageDeb → Linux .deb
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageMsi → Windows .msi
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageDmg → macOS .dmg
|
||||
* ./gradlew :frontend:shells:meldestelle-desktop:packageReleaseDistributables → alle Plattformen
|
||||
*
|
||||
* Version: wird automatisch aus version.properties im Root-Projekt gelesen (SemVer).
|
||||
* Icons: src/jvmMain/resources/icon.png / icon.ico / icon.icns
|
||||
* Version: Wird automatisch aus version.properties im Root-Projekt gelesen (SemVer).
|
||||
* Icons: src/jvmMain/resources/icon.png / icon.ico / icon.icns
|
||||
* → siehe ICONS_PLACEHOLDER.md für Anforderungen
|
||||
*/
|
||||
plugins {
|
||||
@@ -42,15 +42,6 @@ val packageVer = "$vMajor.$vMinor.$vPatch"
|
||||
kotlin {
|
||||
jvm()
|
||||
|
||||
js(IR) {
|
||||
binaries.library()
|
||||
browser {
|
||||
testTask {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wasmJs {
|
||||
binaries.library()
|
||||
browser {
|
||||
@@ -86,6 +77,7 @@ kotlin {
|
||||
implementation(projects.frontend.features.vereinFeature)
|
||||
implementation(projects.frontend.features.turnierFeature)
|
||||
implementation(projects.frontend.features.billingFeature)
|
||||
implementation(projects.frontend.features.deviceInitialization)
|
||||
|
||||
// Compose Desktop
|
||||
implementation(compose.desktop.currentOs)
|
||||
|
||||
+2
-2
@@ -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,
|
||||
)
|
||||
}
|
||||
|
||||
+21
-16
@@ -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) {
|
||||
|
||||
@@ -15,15 +15,6 @@ kotlin {
|
||||
jvm()
|
||||
|
||||
if (isWasmEnabled) {
|
||||
js(IR) {
|
||||
binaries.library()
|
||||
browser {
|
||||
testTask {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wasmJs {
|
||||
browser {
|
||||
testTask {
|
||||
|
||||
Reference in New Issue
Block a user