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.ProficiencyPage
|
||||||
import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.ProficiencyPreview
|
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.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.screens.rolls.RollResult
|
||||||
import com.pixelized.rplexicon.ui.theme.LexiconTheme
|
import com.pixelized.rplexicon.ui.theme.LexiconTheme
|
||||||
import com.pixelized.rplexicon.utilitary.extentions.modifier.lexiconShadow
|
import com.pixelized.rplexicon.utilitary.extentions.modifier.lexiconShadow
|
||||||
|
|
@ -247,13 +248,11 @@ fun CharacterSheetScreen(
|
||||||
errors = viewModel.error,
|
errors = viewModel.error,
|
||||||
)
|
)
|
||||||
|
|
||||||
BackHandler(enabled = sheetState.isVisible) {
|
BackHandler(
|
||||||
scope.launch { sheetState.hide() }
|
sheetState = sheetState,
|
||||||
}
|
overlay = overlay,
|
||||||
|
pagerState = pagerState,
|
||||||
BackHandler(enabled = overlay.isOverlayVisible) {
|
)
|
||||||
overlay.dismiss()
|
|
||||||
}
|
|
||||||
|
|
||||||
KeepOnScreen()
|
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
|
@Composable
|
||||||
@Stable
|
@Stable
|
||||||
private fun rememberHeaderPreview(): State<List<CharacterTabUio>> = remember {
|
private fun rememberHeaderPreview(): State<List<CharacterTabUio>> = remember {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue