Refactor on the Keyboard handlers.
This commit is contained in:
parent
edbb508f6a
commit
2b37dc2529
4 changed files with 78 additions and 44 deletions
|
|
@ -60,16 +60,11 @@ fun RollOverlay(
|
|||
else -> Box(
|
||||
modifier = Modifier.fillMaxSize()
|
||||
) {
|
||||
KeyHandler {
|
||||
when {
|
||||
it.type == KeyEventType.KeyUp && it.key == Key.Escape -> {
|
||||
roll.action(result = viewModel.lastRollResult)
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
RollOverlayKeyHandler(
|
||||
onDismissRequest = {
|
||||
roll.action(result = viewModel.lastRollResult)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
RollPage(
|
||||
viewModel = viewModel,
|
||||
|
|
@ -85,4 +80,20 @@ fun RollOverlay(
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun RollOverlayKeyHandler(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
KeyHandler {
|
||||
when {
|
||||
it.type == KeyEventType.KeyUp && it.key == Key.Escape -> {
|
||||
onDismissRequest()
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -35,14 +35,14 @@ import com.pixelized.desktop.lwa.ui.composable.character.characteristic.Characte
|
|||
import com.pixelized.desktop.lwa.ui.composable.key.KeyHandler
|
||||
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
|
||||
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.navigateToLevelScreen
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.CampaignChat
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.CampaignChatViewModel
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.npc.NpcRibbon
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailPanel
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailViewModel
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDiminishedViewModel
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.rememberTransitionAnimation
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.npc.NpcRibbon
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.player.PlayerRibbon
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.CampaignChat
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.CampaignChatViewModel
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.CampaignToolbar
|
||||
import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.CampaignToolbarViewModel
|
||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.dialog.DiminishedStatDialog
|
||||
|
|
@ -66,18 +66,6 @@ fun CampaignScreen(
|
|||
val blurController = rememberBlurContentController()
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
KeyHandler {
|
||||
when {
|
||||
it.type == KeyEventType.KeyUp && it.key == Key.Escape -> {
|
||||
playerDetailViewModel.hideCharacter()
|
||||
npcDetailViewModel.hideCharacter()
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
Surface(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
) {
|
||||
|
|
@ -191,6 +179,13 @@ fun CampaignScreen(
|
|||
},
|
||||
)
|
||||
}
|
||||
|
||||
CampaignKeyHandler(
|
||||
onDismissRequest = {
|
||||
playerDetailViewModel.hideCharacter()
|
||||
npcDetailViewModel.hideCharacter()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
|
|
@ -280,6 +275,29 @@ private fun CampaignLayout(
|
|||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun CampaignKeyHandler(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
KeyHandler {
|
||||
when {
|
||||
it.type == KeyEventType.KeyUp && it.key == Key.Escape -> {
|
||||
onDismissRequest()
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun IntSize.toDp(density: Density) = with(density) {
|
||||
DpSize(
|
||||
width = width.toDp(),
|
||||
height = height.toDp(),
|
||||
)
|
||||
}
|
||||
|
||||
@Stable
|
||||
data class CampaignLayoutScope(
|
||||
val leftOverlay: State<DpSize>,
|
||||
|
|
@ -288,10 +306,3 @@ data class CampaignLayoutScope(
|
|||
val rightPanel: State<DpSize>,
|
||||
val chatOverlay: State<DpSize>,
|
||||
)
|
||||
|
||||
private fun IntSize.toDp(density: Density) = with(density) {
|
||||
DpSize(
|
||||
width = width.toDp(),
|
||||
height = height.toDp(),
|
||||
)
|
||||
}
|
||||
|
|
@ -202,7 +202,7 @@ private fun GameMasterContent(
|
|||
items = tags.value,
|
||||
) { tag ->
|
||||
GMTag(
|
||||
style = MaterialTheme.lwa.typography.base.body1,
|
||||
style = MaterialTheme.lwa.typography.base.caption,
|
||||
tag = tag,
|
||||
onTag = { onTag(tag.id) },
|
||||
)
|
||||
|
|
|
|||
|
|
@ -53,17 +53,6 @@ fun SettingsScreen(
|
|||
) {
|
||||
val screen = LocalScreenController.current
|
||||
|
||||
KeyHandler {
|
||||
when {
|
||||
it.type == KeyEventType.KeyUp && it.key == Key.Escape -> {
|
||||
screen.navigateBack()
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
Surface {
|
||||
SettingsContent(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
|
|
@ -74,6 +63,12 @@ fun SettingsScreen(
|
|||
onReset = viewModel::onReset
|
||||
)
|
||||
}
|
||||
|
||||
SettingsKeyHandler(
|
||||
onDismissRequest = {
|
||||
screen.navigateBack()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
|
|
@ -114,8 +109,9 @@ private fun SettingsContent(
|
|||
content = { paddingValues ->
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.verticalScroll(state = state)
|
||||
.padding(paddingValues = paddingValues)
|
||||
.verticalScroll(state = state),
|
||||
.padding(bottom = spacing),
|
||||
verticalArrangement = Arrangement.spacedBy(space = spacing),
|
||||
) {
|
||||
items.forEach {
|
||||
|
|
@ -130,6 +126,22 @@ private fun SettingsContent(
|
|||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun SettingsKeyHandler(
|
||||
onDismissRequest: () -> Unit,
|
||||
) {
|
||||
KeyHandler {
|
||||
when {
|
||||
it.type == KeyEventType.KeyUp && it.key == Key.Escape -> {
|
||||
onDismissRequest()
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun NavHostController.navigateBack() = popBackStack(
|
||||
route = SettingsDestination.baseRoute(),
|
||||
inclusive = true,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue