Coverage Summary for Class: ClientsNavigationKt (com.imecatro.demosales.navigation.clients)

Class Method, % Branch, % Line, % Instruction, %
ClientsNavigationKt 0% (0/1) 0% (0/1) 0% (0/10)
ClientsNavigationKt$clientsNavigation$1 0% (0/1) 0% (0/4) 0% (0/48)
ClientsNavigationKt$clientsNavigation$1$1 0% (0/1) 0% (0/1) 0% (0/42)
ClientsNavigationKt$clientsNavigation$1$1$1$1 0% (0/1) 0% (0/2) 0% (0/5) 0% (0/46)
ClientsNavigationKt$clientsNavigation$1$1$1$1$1$1 0% (0/1) 0% (0/1) 0% (0/6)
ClientsNavigationKt$clientsNavigation$1$2 0% (0/1) 0% (0/7) 0% (0/111)
ClientsNavigationKt$clientsNavigation$1$2$1$1 0% (0/1) 0% (0/1) 0% (0/6)
ClientsNavigationKt$clientsNavigation$1$2$1$1$1 0% (0/1) 0% (0/1) 0% (0/5)
ClientsNavigationKt$clientsNavigation$1$2$1$1$1$1 0% (0/1) 0% (0/1) 0% (0/3)
ClientsNavigationKt$clientsNavigation$1$2$2$1 0% (0/1) 0% (0/1) 0% (0/14)
ClientsNavigationKt$clientsNavigation$1$2$viewModel$1$1 0% (0/1) 0% (0/1) 0% (0/5)
ClientsNavigationKt$clientsNavigation$1$3 0% (0/1) 0% (0/2) 0% (0/67)
ClientsNavigationKt$clientsNavigation$1$3$1$1 0% (0/1) 0% (0/1) 0% (0/6)
ClientsNavigationKt$clientsNavigation$1$3$1$1$1 0% (0/1) 0% (0/1) 0% (0/5)
ClientsNavigationKt$clientsNavigation$1$3$1$1$1$1 0% (0/1) 0% (0/1) 0% (0/3)
ClientsNavigationKt$clientsNavigation$1$3$2$1 0% (0/1) 0% (0/1) 0% (0/6)
ClientsNavigationKt$clientsNavigation$1$3$2$1$1 0% (0/1) 0% (0/1) 0% (0/5)
ClientsNavigationKt$clientsNavigation$1$3$2$1$1$1 0% (0/1) 0% (0/1) 0% (0/3)
ClientsNavigationKt$clientsNavigation$1$4 0% (0/1) 0% (0/5) 0% (0/106)
ClientsNavigationKt$clientsNavigation$1$4$1$1 0% (0/1) 0% (0/1) 0% (0/6)
ClientsNavigationKt$clientsNavigation$1$4$1$1$1 0% (0/1) 0% (0/1) 0% (0/5)
ClientsNavigationKt$clientsNavigation$1$4$1$1$1$1 0% (0/1) 0% (0/1) 0% (0/3)
ClientsNavigationKt$clientsNavigation$1$4$2$1 0% (0/1) 0% (0/1) 0% (0/6)
ClientsNavigationKt$clientsNavigation$1$4$2$1$1 0% (0/1) 0% (0/1) 0% (0/5)
ClientsNavigationKt$clientsNavigation$1$4$2$1$1$1 0% (0/1) 0% (0/1) 0% (0/3)
ClientsNavigationKt$clientsNavigation$1$4$viewModel$1$1 0% (0/1) 0% (0/1) 0% (0/5)
Total 0% (0/26) 0% (0/2) 0% (0/44) 0% (0/530)


 package com.imecatro.demosales.navigation.clients
 
 import androidx.hilt.navigation.compose.hiltViewModel
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavHostController
 import androidx.navigation.compose.composable
 import androidx.navigation.navigation
 import androidx.navigation.toRoute
 import com.imecatro.demosales.ui.clients.add.views.AddClientComposableImpl
 import com.imecatro.demosales.ui.clients.details.viewmodel.ClientDetailsViewModel
 import com.imecatro.demosales.ui.clients.details.views.ClientDetailsComposableImpl
 import com.imecatro.demosales.ui.clients.edit.viewmodel.EditClientViewModel
 import com.imecatro.demosales.ui.clients.edit.views.EditClientComposableImpl
 import com.imecatro.demosales.ui.clients.list.views.ClientListImpl
 
 /**
  * Defines the navigation graph for the Clients feature.
  *
  * This includes routes for listing clients, adding a new client, editing a client,
  * and viewing client details.
  *
  * @param T The type of the root destination for this feature.
  * @param navController The [NavHostController] used for navigation between screens.
  */
 /**
  * Defines the navigation graph for the Clients feature.
  *
  * This includes routes for listing clients, adding a new client, editing a client,
  * and viewing client details.
  *
  * @param T The type of the root destination for this feature.
  * @param navController The [NavHostController] used for navigation between screens.
  */
 inline fun <reified T : Any> NavGraphBuilder.clientsNavigation(navController: NavHostController) {
     navigation<T>(startDestination = ClientsList) {
 
         composable<ClientsList> {
             ClientListImpl(hiltViewModel()) { clientId ->
                 clientId?.let {
                     navController.navigate(ClientDetails(clientId)) {
                         popUpTo(ClientsList)
                     }
                 } ?: run {
                     navController.navigate(AddClient)
                 }
             }
         }
         composable<ClientDetails> { backStackEntry ->
             val navArgs: ClientDetails = backStackEntry.toRoute()
             val viewModel: ClientDetailsViewModel =
                 hiltViewModel(creationCallback = { factory: ClientDetailsViewModel.Factory ->
                     factory.create(navArgs.id)
                 })
 
             ClientDetailsComposableImpl(
                 viewModel,
                 onBackToList = {
                     navController.navigate(ClientsList) {
                         popUpTo(ClientsList) { inclusive = true }
                     }
                 },
                 onEditClicked = { navController.navigate(EditClient(navArgs.id)) })
         }
         composable<AddClient> {
             AddClientComposableImpl(hiltViewModel(), onBackToList = {
                 navController.navigate(ClientsList) {
                     popUpTo(ClientsList) { inclusive = true }
                 }
             }) {
                 navController.navigate(ClientsList) {
                     popUpTo(ClientsList) { inclusive = true }
                 }
             }
         }
         composable<EditClient> { backStackEntry ->
             val navArgs: EditClient = backStackEntry.toRoute()
 
             val viewModel: EditClientViewModel =
                 hiltViewModel(creationCallback = { factory: EditClientViewModel.Factory ->
                     factory.create(navArgs.id)
                 })
 
             EditClientComposableImpl(viewModel, onBackClicked = {
                 navController.navigate(ClientsList) {
                     popUpTo(ClientsList) { inclusive = true }
                 }
             }) {
                 navController.navigate(ClientsList) {
                     popUpTo(ClientsList) { inclusive = true }
                 }
             }
         }
 
     }
 }