Slackbot
03/22/2023, 8:08 AMchanjungskim
03/22/2023, 8:08 AMconst val vitaminGraphRoutePattern = "vitamin_graph"
const val vitaminRoute = "vitamin_route"
fun NavController.navigateToVitamin(
managerToken: String,
managerId: Int,
navOptions: NavOptions? = null
) {
this.navigate(
route = "$vitaminGraphRoutePattern?$MANAGER_TOKEN=$managerToken&$MANAGER_ID=$managerId",
navOptions
)
}
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.vitaminGraph(
nestedGraphs: NavGraphBuilder.() -> Unit
) {
navigation(
route = vitaminGraphRoutePattern,
startDestination = "$vitaminRoute?$MANAGER_TOKEN=${MANAGER_TOKEN}&$MANAGER_ID=${MANAGER_ID}",
arguments = listOf(
navArgument(MANAGER_TOKEN) {
type = NavType.StringType
defaultValue = "no value"
},
navArgument(MANAGER_ID) {
type = NavType.IntType
defaultValue = -1
}
)
) {
nestedGraphs()
}
}
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.vitaminScreen(
moveToWelcomeSurvey: (surveyToken: String, answerData: QuestionAnswerData, managerToken: String, managerId: Int) -> Unit,
moveToResult: (surveyToken: String, managerToken: String, managerId: Int) -> Unit
) {
composable(
route = "$vitaminRoute?" +
"$MANAGER_TOKEN=${MANAGER_TOKEN}" +
"&$MANAGER_ID=${MANAGER_ID}",
arguments = listOf(
navArgument(MANAGER_TOKEN) {
type = NavType.StringType
defaultValue = "no value"
},
navArgument(MANAGER_ID) {
type = NavType.IntType
defaultValue = -1
}
)
) { backStackEntry ->
VitaminRoute(
moveToWelcomeSurvey = { surveyToken, answerData ->
moveToWelcomeSurvey(
surveyToken,
answerData,
backStackEntry.arguments?.getString(MANAGER_TOKEN) ?: "",
backStackEntry.arguments?.getInt(MANAGER_ID) ?: -1
)
},
moveToResult = { surveyToken ->
moveToResult(
surveyToken,
backStackEntry.arguments?.getString(MANAGER_TOKEN) ?: "",
backStackEntry.arguments?.getInt(MANAGER_ID) ?: -1
)
}
)
}
}
here's my code..Zaki Shaikh
03/22/2023, 9:15 AMchanjungskim
03/22/2023, 9:16 AMephemient
03/23/2023, 5:14 AM• Please refrain from crossposting the same message on multiple channels.
chanjungskim
03/23/2023, 5:15 AM