chore: remove unused meldestelle-portal module

- Deleted obsolete `meldestelle-portal` module, including all associated screens, configurations, tests, and assets.
- Includes removal of Compose multiplatform dependencies in `build.gradle.kts`.
- Cleaned up redundant files such as `AppPreview`, `AuthStatusScreen`, `DashboardScreen`, and associated core implementations.
- Streamlined module references in `settings.gradle.kts`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-03-25 15:46:48 +01:00
parent 9d08cb0f72
commit 3fe850d914
47 changed files with 578 additions and 2814 deletions
@@ -28,8 +28,13 @@ sealed class AppScreen(val route: String) {
data object Funktionaere : AppScreen("/funktionaere")
data object Meisterschaften : AppScreen("/meisterschaften")
data object Cups : AppScreen("/cups")
data object StammdatenImport : AppScreen("/stammdaten/import")
companion object {
private val VERANSTALTUNG_DETAIL = Regex("/veranstaltung/(\\d+)$")
private val TURNIER_DETAIL = Regex("/veranstaltung/(\\d+)/turnier/(\\d+)$")
private val TURNIER_NEU = Regex("/veranstaltung/(\\d+)/turnier/neu$")
fun fromRoute(route: String): AppScreen {
return when (route) {
Routes.HOME -> Landing
@@ -49,7 +54,19 @@ sealed class AppScreen(val route: String) {
"/funktionaere" -> Funktionaere
"/meisterschaften" -> Meisterschaften
"/cups" -> Cups
else -> Landing // Default fallback
"/stammdaten/import" -> StammdatenImport
else -> {
TURNIER_DETAIL.matchEntire(route)?.destructured?.let { (vId, tId) ->
return TurnierDetail(vId.toLong(), tId.toLong())
}
TURNIER_NEU.matchEntire(route)?.destructured?.let { (vId) ->
return TurnierNeu(vId.toLong())
}
VERANSTALTUNG_DETAIL.matchEntire(route)?.destructured?.let { (id) ->
return VeranstaltungDetail(id.toLong())
}
Landing // Default fallback
}
}
}
}
@@ -1,9 +1,18 @@
package at.mocode.frontend.core.navigation
import kotlinx.coroutines.flow.StateFlow
/**
* Minimal navigation abstraction used by core navigation components.
* The actual implementation lives in shells/apps and delegates to the app's router.
* Navigations-Abstraktion für alle Shells.
* Die konkrete Implementierung liegt in der jeweiligen Shell (z.B. DesktopNavigationPort).
*/
interface NavigationPort {
/** Aktuell angezeigter Screen als reaktiver State. */
val currentScreen: StateFlow<AppScreen>
/** Navigation via Route-String (z.B. für Deep-Links). */
fun navigateTo(route: String)
/** Typsichere Navigation direkt via AppScreen-Objekt. */
fun navigateToScreen(screen: AppScreen)
}