Skip to content

Instantly share code, notes, and snippets.

View ifucolo's full-sized avatar
🌞
🇧🇷 ➡️ 🇳🇱

Iago Fucolo ifucolo

🌞
🇧🇷 ➡️ 🇳🇱
View GitHub Profile
@Composable
fun PlanRouteComponent(
viewModel: PlanFlowViewModel = koinViewModel(),
planName: String,
subPlanName: String? = null,
onClose: () -> Unit
) {
val backStack = viewModel.backStack
val planUiState by viewModel.planDataUiState.collectAsStateWithLifecycle()
@Composable
fun PrayersRouteComponent(
onShowNavigationBar: (Boolean) -> Unit = {}
) {
val backStack = rememberNavBackStack<PrayersSubRoute>(PrayersSubRoute.PrayersRoute)
NavDisplay(
backStack = backStack,
onBack = { keysToRemove -> repeat(keysToRemove) { backStack.removeLastOrNull() } },
entryDecorators = listOf(
class ChapletFlowViewModel(
private val challengeRepository: ChallengeRepository
) : ViewModel() {
private val _shouldCloseFlow = MutableSharedFlow<Boolean>()
val shouldCloseFlow: SharedFlow<Boolean> = _shouldCloseFlow
val backStack = mutableStateListOf<ChapletRoutes>()
init {
@Composable
fun ChapletFlowRouteComponent(
viewModel: ChapletFlowViewModel = koinViewModel(),
chapletName: String,
onClose: () -> Unit
) {
val backStack = viewModel.backStack
LaunchedEffect(Unit) {
viewModel.shouldCloseFlow.collect { shouldClose ->
@Serializable
sealed interface HomeSubRoute : NavKey {
@Serializable
data object HomeRoute : HomeSubRoute
@Serializable
data object LiturgyRoute : HomeSubRoute
@Serializable
val backStack = rememberNavBackStack<HomeSubRoute>(HomeSubRoute.HomeRoute)
@Composable
fun HomeRouteComponent(
onShowNavigationBar: (Boolean) -> Unit = {}
) {
val backStack = rememberNavBackStack<HomeSubRoute>(HomeSubRoute.HomeRoute)
NavDisplay(
backStack = backStack,
onBack = { keysToRemove -> repeat(keysToRemove) { backStack.removeLastOrNull() } },
entryDecorators = listOf(
@Composable
fun MainContent() {
val bottomBarVisibleState = remember { mutableStateOf(true) }
val backStack = rememberNavBackStack<AppRoutes>(AppRoutes.Home)
val onShowNavigationBar: (Boolean) -> Unit = { show ->
bottomBarVisibleState.value = show
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/main_coordinator"
@Composable
fun NavigationBarForNavDisplay(
currentRoute: AppRoutes?,
onNavigate: (AppRoutes) -> Unit
) {
NavigationBar(
containerColor = MaterialTheme.colorScheme.surface,
contentColor = MaterialTheme.colorScheme.surface,
tonalElevation = SanctusDimensions.elevation
) {