CharacterSheet pager back handler.
This commit is contained in:
parent
2c5337f3dc
commit
1ab9047b40
1 changed files with 34 additions and 7 deletions
|
|
@ -91,6 +91,7 @@ import com.pixelized.rplexicon.ui.screens.character.pages.inventory.item_list.It
|
|||
import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.ProficiencyPage
|
||||
import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.ProficiencyPreview
|
||||
import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.ProficiencyViewModel
|
||||
import com.pixelized.rplexicon.ui.screens.rolls.BlurredOverlayHostState
|
||||
import com.pixelized.rplexicon.ui.screens.rolls.RollResult
|
||||
import com.pixelized.rplexicon.ui.theme.LexiconTheme
|
||||
import com.pixelized.rplexicon.utilitary.extentions.modifier.lexiconShadow
|
||||
|
|
@ -247,13 +248,11 @@ fun CharacterSheetScreen(
|
|||
errors = viewModel.error,
|
||||
)
|
||||
|
||||
BackHandler(enabled = sheetState.isVisible) {
|
||||
scope.launch { sheetState.hide() }
|
||||
}
|
||||
|
||||
BackHandler(enabled = overlay.isOverlayVisible) {
|
||||
overlay.dismiss()
|
||||
}
|
||||
BackHandler(
|
||||
sheetState = sheetState,
|
||||
overlay = overlay,
|
||||
pagerState = pagerState,
|
||||
)
|
||||
|
||||
KeepOnScreen()
|
||||
}
|
||||
|
|
@ -491,6 +490,34 @@ private fun CharacterScreenPreview(
|
|||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterialApi::class)
|
||||
@Composable
|
||||
private fun BackHandler(
|
||||
sheetState: ModalBottomSheetState,
|
||||
overlay: BlurredOverlayHostState,
|
||||
pagerState: PagerState,
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
BackHandler(
|
||||
enabled = pagerState.currentPage != 0
|
||||
) {
|
||||
scope.launch {
|
||||
pagerState.animateScrollToPage(page = 0)
|
||||
}
|
||||
}
|
||||
|
||||
BackHandler(enabled = sheetState.isVisible) {
|
||||
scope.launch {
|
||||
sheetState.hide()
|
||||
}
|
||||
}
|
||||
|
||||
BackHandler(enabled = overlay.isOverlayVisible) {
|
||||
overlay.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Stable
|
||||
private fun rememberHeaderPreview(): State<List<CharacterTabUio>> = remember {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue