LevelUp feature.
This commit is contained in:
parent
84515e6d57
commit
16b2b49f03
75 changed files with 2532 additions and 777 deletions
|
|
@ -37,6 +37,9 @@ import coil3.compose.setSingletonImageLoaderFactory
|
|||
import coil3.request.crossfade
|
||||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
||||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository.Status
|
||||
import com.pixelized.desktop.lwa.ui.composable.blur.BlurContent
|
||||
import com.pixelized.desktop.lwa.ui.composable.blur.BlurContentController
|
||||
import com.pixelized.desktop.lwa.ui.composable.blur.rememberBlurContentController
|
||||
import com.pixelized.desktop.lwa.ui.composable.key.KeyEventHandler
|
||||
import com.pixelized.desktop.lwa.ui.composable.key.LocalKeyEventHandlers
|
||||
import com.pixelized.desktop.lwa.ui.navigation.screen.MainNavHost
|
||||
|
|
@ -56,6 +59,8 @@ import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.PlayerRibbon
|
|||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.CharacterSheetMainNavHost
|
||||
import com.pixelized.desktop.lwa.ui.screen.network.NetworkPage
|
||||
import com.pixelized.desktop.lwa.ui.screen.network.NetworkViewModel
|
||||
import com.pixelized.desktop.lwa.ui.overlay.roll.RollHostState
|
||||
import com.pixelized.desktop.lwa.ui.overlay.roll.RollOverlay
|
||||
import com.pixelized.desktop.lwa.ui.screen.rollhistory.RollHistoryPage
|
||||
import com.pixelized.desktop.lwa.ui.screen.rollhistory.RollHistoryViewModel
|
||||
import com.pixelized.desktop.lwa.ui.theme.LwaTheme
|
||||
|
|
@ -65,6 +70,7 @@ import lwacharactersheet.composeapp.generated.resources.Res
|
|||
import lwacharactersheet.composeapp.generated.resources.app_name
|
||||
import lwacharactersheet.composeapp.generated.resources.network__connect__message
|
||||
import lwacharactersheet.composeapp.generated.resources.network__disconnect__message
|
||||
import lwacharactersheet.composeapp.generated.resources.network__message__action
|
||||
import org.jetbrains.compose.resources.getString
|
||||
import org.jetbrains.compose.ui.tooling.preview.Preview
|
||||
import org.koin.compose.koinInject
|
||||
|
|
@ -86,6 +92,14 @@ val LocalApplicationScope = compositionLocalOf<ApplicationScope> {
|
|||
error("Local application scope is not yet ready")
|
||||
}
|
||||
|
||||
val LocalRollHostState = compositionLocalOf<RollHostState> {
|
||||
error("Local Roll Host State is not yet ready")
|
||||
}
|
||||
|
||||
val LocalBlurController = compositionLocalOf<BlurContentController> {
|
||||
error("Local Blur Controller is not yet ready")
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview
|
||||
fun ApplicationScope.App() {
|
||||
|
|
@ -94,6 +108,8 @@ fun ApplicationScope.App() {
|
|||
val errorSnackHostState = remember { SnackbarHostState() }
|
||||
val windowController = remember { WindowController(maxWindowHeight) }
|
||||
val keyEventHandlers = remember { mutableStateListOf<KeyEventHandler>() }
|
||||
val rollHostState = remember { RollHostState() }
|
||||
val blurController = rememberBlurContentController()
|
||||
val windowsState = rememberWindowState(
|
||||
size = DpSize(
|
||||
width = 800.dp,
|
||||
|
|
@ -117,6 +133,8 @@ fun ApplicationScope.App() {
|
|||
LocalErrorSnackHost provides errorSnackHostState,
|
||||
LocalWindowController provides windowController,
|
||||
LocalKeyEventHandlers provides keyEventHandlers,
|
||||
LocalRollHostState provides rollHostState,
|
||||
LocalBlurController provides blurController,
|
||||
LocalWindowState provides windowsState,
|
||||
) {
|
||||
Window(
|
||||
|
|
@ -147,6 +165,8 @@ private fun MainWindowScreen(
|
|||
val snackHostState = LocalSnackHost.current
|
||||
val errorSnackHostState = LocalErrorSnackHost.current
|
||||
val windowController = LocalWindowController.current
|
||||
val rollHostState = LocalRollHostState.current
|
||||
val blurController = LocalBlurController.current
|
||||
|
||||
LwaTheme {
|
||||
Surface(
|
||||
|
|
@ -163,6 +183,9 @@ private fun MainWindowScreen(
|
|||
snackbar = {
|
||||
Snackbar(
|
||||
snackbarData = it,
|
||||
backgroundColor = MaterialTheme.colors.surface,
|
||||
contentColor = MaterialTheme.colors.onSurface,
|
||||
actionColor = MaterialTheme.colors.onSurface,
|
||||
)
|
||||
}
|
||||
)
|
||||
|
|
@ -180,10 +203,18 @@ private fun MainWindowScreen(
|
|||
}
|
||||
},
|
||||
content = {
|
||||
MainNavHost(
|
||||
campaignViewModel = campaignViewModel,
|
||||
networkViewModel = networkViewModel,
|
||||
campaignChatViewModel = campaignChatViewModel,
|
||||
BlurContent(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
controller = blurController
|
||||
) {
|
||||
MainNavHost(
|
||||
campaignViewModel = campaignViewModel,
|
||||
networkViewModel = networkViewModel,
|
||||
campaignChatViewModel = campaignChatViewModel,
|
||||
)
|
||||
}
|
||||
RollOverlay(
|
||||
hostState = rollHostState,
|
||||
)
|
||||
}
|
||||
)
|
||||
|
|
@ -209,7 +240,7 @@ private fun WindowsHandler(
|
|||
when (window) {
|
||||
is CharacterSheetWindow -> CharacterSheetMainNavHost(
|
||||
startDestination = CharacterSheetDestination.navigationRoute(
|
||||
id = window.characterId,
|
||||
characterInstanceId = window.characterId,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -247,6 +278,7 @@ private fun NetworkSnackHandler(
|
|||
}
|
||||
snack.showSnackbar(
|
||||
message = message,
|
||||
actionLabel = getString(Res.string.network__message__action),
|
||||
duration = SnackbarDuration.Short,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue