Package-level declarations

Types

Link copied to clipboard
Link copied to clipboard
class JchuDetailsScaffoldConfig(val colors: JchuScaffoldColors = JchuScaffoldColors( contentColor = androidx.compose.ui.graphics.Color.Black, containerColor = androidx.compose.ui.graphics.Color.White ), val itemSpacing: Dp = 10.dp, val contentHorizontalPadding: Dp = 15.dp, val contentBottomPadding: Dp = 20.dp)
Link copied to clipboard
class JchuFloatingButtonConfig(val isActive: Boolean = false, val settings: FloatingButtonSettings = FloatingButtonSettings(), val contentDescription: String? = null, val onClick: () -> Unit = {})
Link copied to clipboard
class JchuPurchaseHeaderConfig(val isAllFavourites: Boolean = false, val isCompletedByHiddenFavorites: Boolean = false, val markAllContent: @Composable () -> Unit? = null, val progressContent: @Composable () -> Unit? = null)
Link copied to clipboard
class JchuPurchaseScaffoldColors(val contentColor: Color = Color.Black, val containerColor: Color = Color.White)
Link copied to clipboard
class JchuPurchaseScaffoldConfig(val headerConfig: JchuPurchaseHeaderConfig = JchuPurchaseHeaderConfig(), val searchConfig: JchuPurchaseSearchConfig = JchuPurchaseSearchConfig(), val emptyContent: @Composable () -> Unit = { JchuDefaultEmptyContent() }, val errorContent: @Composable (String?) -> Unit = { JchuDefaultEmptyContent("Unable to load content") }, val hiddenFavoritesContent: @Composable () -> Unit = { JchuDefaultEmptyContent("All achieved") }, val scaffoldColors: JchuPurchaseScaffoldColors = JchuPurchaseScaffoldColors())
Link copied to clipboard
class JchuPurchaseSearchConfig(val isActive: Boolean = true, val label: String = "Search", val contentColor: Color = Color.Black, val containerColor: Color = Color.White, val query: MutableState<String> = mutableStateOf(""))
Link copied to clipboard
class JchuPurchaseTabColors(val selectedContentColor: Color = Color.Black, val unselectedContentColor: Color = Color.Black.copy(alpha = 0.6f), val containerColor: Color = Color.White, val selectedContainerColor: Color = Color.Black.copy(alpha = 0.1f))
Link copied to clipboard
class JchuPurchaseTabScaffoldConfig(val searchConfig: JchuPurchaseSearchConfig = JchuPurchaseSearchConfig(), val tabColors: JchuPurchaseTabColors = JchuPurchaseTabColors(), val scaffoldColors: JchuPurchaseScaffoldColors = JchuPurchaseScaffoldColors())
Link copied to clipboard
class JchuScaffoldColors(val contentColor: Color, val containerColor: Color, @DrawableRes val navigationIcon: Int = R.drawable.ic_arrow_left)
Link copied to clipboard
class JchuScaffoldTabItem(val label: String, val icon: @Composable () -> Unit = {}, val alwaysShowLabel: Boolean = true)
Link copied to clipboard
data class JchuScreenColorTheme(val primary: Color, val secondary: Color, val primaryVariant: Color = primary.copy(alpha = 0.2f), val secondaryVariant: Color = secondary.copy(alpha = 0.1f))
Link copied to clipboard
class JchuShareBarColors(val containerColor: Color = Color.White, val shareContentColor: Color = Color.White, val shareContainerColor: Color = Color.Black, val downloadContentColor: Color = Color.White, val downloadContainerColor: Color = Color.Black)
Link copied to clipboard
class JchuShareScaffoldConfig(val shareBarColors: JchuShareBarColors = JchuShareBarColors(), val scaffoldColors: JchuPurchaseScaffoldColors = JchuPurchaseScaffoldColors())

Functions

Link copied to clipboard
fun JchuDefaultEmptyContent(text: String = "No items", modifier: Modifier = Modifier)
Link copied to clipboard
Link copied to clipboard
fun <T> JchuDetailsScaffold(title: String, details: T?, isLoading: Boolean, onBackClick: () -> Unit, modifier: Modifier = Modifier, error: String? = null, bottomBar: @Composable () -> Unit = {}, listState: LazyListState = rememberLazyListState(), config: JchuDetailsScaffoldConfig = JchuDetailsScaffoldConfig(), onEmpty: @Composable (PaddingValues) -> Unit = { JchuDefaultEmptyContent() }, onLoading: @Composable (PaddingValues) -> Unit = { JchuDefaultLoadingContent() }, content: LazyListScope.(T) -> Unit = {})
Link copied to clipboard
fun <T> JchuGridScaffold(title: String, items: List<T>, onBackClick: () -> Unit, modifier: Modifier = Modifier, gridState: LazyGridState = rememberLazyGridState(), contentHorizontalPadding: Dp = 0.dp, floatingButton: JchuFloatingButtonConfig = JchuFloatingButtonConfig(), colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), content: @Composable (PaddingValues, LazyGridState, List<T>) -> Unit = { _, _, _ -> })
Link copied to clipboard
fun <T> JchuListScaffold(title: String, items: List<T>, onBackClick: () -> Unit, modifier: Modifier = Modifier, listState: LazyListState = rememberLazyListState(), contentHorizontalPadding: Dp = 0.dp, floatingButton: JchuFloatingButtonConfig = JchuFloatingButtonConfig(), colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), content: @Composable (PaddingValues, LazyListState, List<T>) -> Unit = { _, _, _ -> })
Link copied to clipboard
fun <T> JchuPurchaseElementsScaffold(title: String, items: List<T>?, isLoading: Boolean, onBackClick: () -> Unit, modifier: Modifier = Modifier, cells: Int = 2, key: (item: T) -> Any? = null, error: String? = null, filtered: (List<T>) -> List<T> = { it }, listState: LazyListState = rememberLazyListState(), gridState: LazyGridState = rememberLazyGridState(), isColumnList: Boolean = false, config: JchuPurchaseScaffoldConfig = JchuPurchaseScaffoldConfig(), topContent: @Composable () -> Unit? = null, headerContent: @Composable () -> Unit? = null, content: @Composable (JchuPurchaseItemType, T) -> Unit = { _, _ -> })
Link copied to clipboard
fun <T> JchuPurchaseStates(cells: Int = 2, items: List<T>?, isLoading: Boolean, error: String?, key: (item: T) -> Any? = null, paddingValues: PaddingValues, modifier: Modifier = Modifier, filtered: (List<T>) -> List<T> = { it }, headerContent: @Composable () -> Unit? = null, listState: LazyListState = rememberLazyListState(), gridState: LazyGridState = rememberLazyGridState(), isColumnList: Boolean = false, config: JchuPurchaseScaffoldConfig = JchuPurchaseScaffoldConfig(), content: @Composable (JchuPurchaseItemType, T) -> Unit = { _, _ -> })
Link copied to clipboard
fun JchuPurchaseTabBar(selectedIndex: Int, tabs: List<JchuScaffoldTabItem>, onSelected: (Int) -> Unit, colors: JchuPurchaseTabColors = JchuPurchaseTabColors())
Link copied to clipboard
fun JchuPurchaseTabItemsScaffold(title: String, tabs: List<JchuScaffoldTabItem>, isLoading: Boolean, error: String?, onBackClick: () -> Unit, modifier: Modifier = Modifier, selectedTabIndex: Int = 0, isScroll: Boolean = false, config: JchuPurchaseTabScaffoldConfig = JchuPurchaseTabScaffoldConfig(), onTabSelected: (Int) -> Unit = {}, tabBar: @Composable (Int, List<JchuScaffoldTabItem>, (Int) -> Unit) -> Unit = { index, items, onSelected -> JchuPurchaseTabBar( selectedIndex = index, tabs = items, onSelected = onSelected, colors = config.tabColors ) }, content: @Composable (PaddingValues, Int) -> Unit = { _, _ -> })
Link copied to clipboard
fun JchuRemoteScreenContent(isLoading: Boolean, error: String?, onLoading: @Composable () -> Unit, onSuccess: @Composable () -> Unit, onFailure: @Composable (String?) -> Unit)
fun <T> JchuRemoteScreenContent(data: T?, isLoading: Boolean, error: String?, onLoading: @Composable () -> Unit, onSuccess: @Composable (T) -> Unit, onFailure: @Composable (String?) -> Unit)
Link copied to clipboard
fun JchuScaffold(modifier: Modifier = Modifier, topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, floatingActionButton: @Composable () -> Unit = {}, contentHorizontalPadding: Dp = 0.dp, colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), content: @Composable (PaddingValues) -> Unit = {})
fun JchuScaffold(title: String, onBackClick: () -> Unit, modifier: Modifier = Modifier, contentHorizontalPadding: Dp = 0.dp, bottomBar: @Composable () -> Unit = {}, floatingActionButton: @Composable () -> Unit = {}, colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), content: @Composable (PaddingValues) -> Unit = {})
Link copied to clipboard
fun JchuScrollableScaffold(title: String, onBackClick: () -> Unit, modifier: Modifier = Modifier, scrollState: ScrollState = rememberScrollState(), contentHorizontalPadding: Dp = 0.dp, floatingButton: JchuFloatingButtonConfig = JchuFloatingButtonConfig(), colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), content: @Composable (PaddingValues, ScrollState) -> Unit = { _, _ -> })
Link copied to clipboard
fun JchuShareBottomBar(onShareClick: () -> Unit, onDownloadClick: () -> Unit, modifier: Modifier = Modifier, colors: JchuShareBarColors = JchuShareBarColors(), shareText: String = "Share", downloadContentDescription: String = "Download", downloadIcon: ImageVector = ImageVector.vectorResource(R.drawable.ic_btn_share))
Link copied to clipboard
fun JchuShareScaffold(title: String, isLoading: Boolean, onBackClick: () -> Unit, onShareClick: () -> Unit, onDownloadClick: () -> Unit, modifier: Modifier = Modifier, error: String? = null, config: JchuShareScaffoldConfig = JchuShareScaffoldConfig(), onLoading: @Composable (PaddingValues) -> Unit = { JchuDefaultLoadingContent() }, onFailure: @Composable (PaddingValues, String?) -> Unit = { _, _ -> JchuDefaultEmptyContent("Unable to load content") }, content: @Composable (PaddingValues) -> Unit = {})
Link copied to clipboard
fun <T> JchuStateScaffold(title: String, items: List<T>, isLoading: Boolean, onBackClick: () -> Unit, modifier: Modifier = Modifier, contentHorizontalPadding: Dp = 0.dp, colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), onSuccess: @Composable (PaddingValues, List<T>) -> Unit = { _, _ -> }, onEmpty: @Composable (PaddingValues) -> Unit = {}, onLoading: @Composable (PaddingValues) -> Unit = {})
fun <T> JchuStateScaffold(title: String, item: T?, isLoading: Boolean, onBackClick: () -> Unit, modifier: Modifier = Modifier, scrollState: ScrollState = rememberScrollState(), contentHorizontalPadding: Dp = 0.dp, colors: JchuScaffoldColors = JchuScaffoldColors.materialDefaults(), onSuccess: @Composable (PaddingValues, ScrollState, T) -> Unit = { _, _, _ -> }, onEmpty: @Composable (PaddingValues) -> Unit = {}, onLoading: @Composable (PaddingValues) -> Unit = {})
Link copied to clipboard
fun <T> ScaffoldStates(modifier: Modifier = Modifier, scaffoldState: ScaffoldState = rememberScaffoldState(), topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, snackbarHost: @Composable (SnackbarHostState) -> Unit = { SnackbarHost(it) }, floatingActionButton: @Composable () -> Unit = {}, floatingActionButtonPosition: FabPosition = FabPosition.End, isFloatingActionButtonDocked: Boolean = false, backgroundColor: Color = MaterialTheme.colors.background, contentColor: Color = contentColorFor(backgroundColor), isLoading: Boolean = false, items: List<T> = emptyList(), onSuccess: @Composable (PaddingValues, List<T>) -> Unit, onFailed: @Composable (PaddingValues) -> Unit = {}, onLoading: @Composable (PaddingValues) -> Unit = {})

Author: @Jeluchu

Link copied to clipboard
fun JchuScreenColorTheme.toPurchaseScaffoldConfig(query: MutableState<String> = mutableStateOf(""), labelSearch: String = "Search", isSearchActive: Boolean = true, headerConfig: JchuPurchaseHeaderConfig = JchuPurchaseHeaderConfig()): JchuPurchaseScaffoldConfig
Link copied to clipboard
fun JchuScreenColorTheme.toPurchaseTabScaffoldConfig(query: MutableState<String> = mutableStateOf(""), labelSearch: String = "Search", isSearchActive: Boolean = true): JchuPurchaseTabScaffoldConfig