feat: add screen transitions and rebrand to MyIce
- AnimatedContent with fade transitions between screens (300ms) - Desktop window title 'MyIce' (dropped 'K' codename)
This commit is contained in:
@@ -17,6 +17,11 @@
|
||||
|
||||
package ch.parano.myicek
|
||||
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.animation.fadeIn
|
||||
import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.animation.togetherWith
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
@@ -83,24 +88,32 @@ fun App(
|
||||
}
|
||||
|
||||
MyIceTheme {
|
||||
when (val screen = currentScreen) {
|
||||
Screen.Login -> LoginScreen(viewModel = authViewModel)
|
||||
Screen.Schedule -> ScheduleScreen(
|
||||
scheduleViewModel = scheduleViewModel,
|
||||
authViewModel = authViewModel,
|
||||
onEventClick = { gameId, account, eventTitle, eventStart, eventEnd ->
|
||||
currentScreen = Screen.EventDetail(gameId, account, eventTitle, eventStart, eventEnd)
|
||||
},
|
||||
)
|
||||
is Screen.EventDetail -> EventDetailScreen(
|
||||
gameId = screen.gameId,
|
||||
account = screen.account,
|
||||
eventTitle = screen.eventTitle,
|
||||
eventStart = screen.eventStart,
|
||||
eventEnd = screen.eventEnd,
|
||||
viewModel = eventDetailViewModel,
|
||||
onBack = { currentScreen = Screen.Schedule },
|
||||
)
|
||||
AnimatedContent(
|
||||
targetState = currentScreen,
|
||||
transitionSpec = {
|
||||
fadeIn(tween(300)) togetherWith fadeOut(tween(300))
|
||||
},
|
||||
label = "screenTransition",
|
||||
) { screen ->
|
||||
when (screen) {
|
||||
Screen.Login -> LoginScreen(viewModel = authViewModel)
|
||||
Screen.Schedule -> ScheduleScreen(
|
||||
scheduleViewModel = scheduleViewModel,
|
||||
authViewModel = authViewModel,
|
||||
onEventClick = { gameId, account, eventTitle, eventStart, eventEnd ->
|
||||
currentScreen = Screen.EventDetail(gameId, account, eventTitle, eventStart, eventEnd)
|
||||
},
|
||||
)
|
||||
is Screen.EventDetail -> EventDetailScreen(
|
||||
gameId = screen.gameId,
|
||||
account = screen.account,
|
||||
eventTitle = screen.eventTitle,
|
||||
eventStart = screen.eventStart,
|
||||
eventEnd = screen.eventEnd,
|
||||
viewModel = eventDetailViewModel,
|
||||
onBack = { currentScreen = Screen.Schedule },
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import androidx.compose.ui.window.application
|
||||
import ch.parano.myicek.auth.DesktopOAuthClient
|
||||
|
||||
fun main() = application {
|
||||
Window(onCloseRequest = ::exitApplication, title = "MyIceK") {
|
||||
Window(onCloseRequest = ::exitApplication, title = "MyIce") {
|
||||
App(oauthClient = DesktopOAuthClient())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user