ExamerNavigationScaffold

@ExperimentalCoilApi
@Composable
fun ExamerNavigationScaffold(    currentlyLoggedInUser: ExamerUser,     imagePainter: ImagePainter,     modifier: Modifier = Modifier,     scaffoldState: ScaffoldState = rememberScaffoldState(),     isTopAppBarVisible: Boolean = true,     navigationIconImageVector: ImageVector = Icons.Filled.Menu,     onNavigationIconClick: () -> Unit? = null,     isDrawerGesturesEnabled: Boolean = true,     isNavigationDrawerDestinationSelected: (NavigationDrawerDestination) -> Boolean? = null,     navigationDrawerDestinations: List<NavigationDrawerDestination>,     onSignOutButtonClick: () -> Unit? = null,     content: @Composable (PaddingValues) -> Unit)

A scaffold that manages the topAppbar and NavigationDrawer.

Parameters

currentlyLoggedInUser

the currently authenticated user. The name and email of the user will be displayed in the header of the navigation drawer.

imagePainter

the painter to use for drawing the profile picture in the header. A shimmer animation will be automatically added when the value of the 'state' member variable of the image painter is ImagePainter.State.Loading.

modifier

the Modifier to be applied to the composable.

scaffoldState

state of this scaffold widget. It contains the state of the screen, e.g. variables to provide manual control over the drawer behavior, sizes of components, etc.

onNavigationIconClick

callback that will be executed when the navigation icon is clicked.

isNavigationDrawerDestinationSelected

the lambda that will be executed in-order to resolve whether an item in the navigation drawer is selected.

navigationDrawerDestinations

a list of NavigationDrawerDestinations that are to be added to the navigation drawer.

onSignOutButtonClick

the callback that will be executed when the sign out button located at the bottom of the navigation drawer is clicked.

content

content of the current screen. The lambda receives an implementation of PaddingValuesthat should be applied to the content root via Modifier.padding to properly offset top and bottom bars. If you're using VerticalScroller,apply this modifier to the child of the scroller, and not on the scroller itself.