From 389bd62ead116c95ff2d9fe1cf01dbbf4b88d3c3 Mon Sep 17 00:00:00 2001 From: Florent Maitre Date: Tue, 26 Jul 2022 15:29:27 +0200 Subject: [PATCH] [#141] Rename ComponentCustomizationChipRow to ComponentChipRow --- .../ui/components/lists/ComponentLists.kt | 28 +++++------ .../components/utilities/ComponentChipRow.kt | 49 +++++++++++++++++++ .../ComponentCustomizationBottomSheet.kt | 27 ---------- 3 files changed, 63 insertions(+), 41 deletions(-) create mode 100644 demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentChipRow.kt diff --git a/demo/src/main/java/com/orange/ods/demo/ui/components/lists/ComponentLists.kt b/demo/src/main/java/com/orange/ods/demo/ui/components/lists/ComponentLists.kt index e6e4da2a0..5b828e56b 100644 --- a/demo/src/main/java/com/orange/ods/demo/ui/components/lists/ComponentLists.kt +++ b/demo/src/main/java/com/orange/ods/demo/ui/components/lists/ComponentLists.kt @@ -35,9 +35,9 @@ import com.orange.ods.compose.component.list.OdsListItemScope import com.orange.ods.compose.component.list.divider import com.orange.ods.compose.component.list.iconType import com.orange.ods.demo.R +import com.orange.ods.demo.ui.components.utilities.ComponentChip +import com.orange.ods.demo.ui.components.utilities.ComponentChipRow import com.orange.ods.demo.ui.components.utilities.ComponentCustomizationBottomSheetScaffold -import com.orange.ods.demo.ui.components.utilities.ComponentCustomizationChip -import com.orange.ods.demo.ui.components.utilities.ComponentCustomizationChipRow import com.orange.ods.demo.ui.utilities.composable.Subtitle import com.orange.ods.demo.ui.utilities.composable.SwitchListItem import com.orange.ods.utilities.extension.orElse @@ -57,25 +57,25 @@ fun ComponentLists() { @Composable private fun ComponentListsBottomSheetContent(variantListsState: VariantListsState) { Subtitle(textRes = R.string.component_list_size, withHorizontalPadding = true) - ComponentCustomizationChipRow(variantListsState.selectedSize) { - ComponentCustomizationChip(textRes = R.string.component_list_size_single_line, value = VariantListsState.Size.SingleLine) - ComponentCustomizationChip(textRes = R.string.component_list_size_two_line, value = VariantListsState.Size.TwoLine) - ComponentCustomizationChip(textRes = R.string.component_list_size_three_line, value = VariantListsState.Size.ThreeLine) + ComponentChipRow(variantListsState.selectedSize) { + ComponentChip(textRes = R.string.component_list_size_single_line, value = VariantListsState.Size.SingleLine) + ComponentChip(textRes = R.string.component_list_size_two_line, value = VariantListsState.Size.TwoLine) + ComponentChip(textRes = R.string.component_list_size_three_line, value = VariantListsState.Size.ThreeLine) } Subtitle(textRes = R.string.component_list_leading, withHorizontalPadding = true) - ComponentCustomizationChipRow(variantListsState.selectedLeading) { - ComponentCustomizationChip(textRes = R.string.component_list_leading_none, value = VariantListsState.Leading.None) - ComponentCustomizationChip(textRes = R.string.component_list_leading_icon, value = VariantListsState.Leading.Icon) - ComponentCustomizationChip(textRes = R.string.component_list_leading_circular_image, value = VariantListsState.Leading.CircularImage) - ComponentCustomizationChip(textRes = R.string.component_list_leading_square_image, value = VariantListsState.Leading.SquareImage) - ComponentCustomizationChip(textRes = R.string.component_list_leading_wide_image, value = VariantListsState.Leading.WideImage) + ComponentChipRow(variantListsState.selectedLeading) { + ComponentChip(textRes = R.string.component_list_leading_none, value = VariantListsState.Leading.None) + ComponentChip(textRes = R.string.component_list_leading_icon, value = VariantListsState.Leading.Icon) + ComponentChip(textRes = R.string.component_list_leading_circular_image, value = VariantListsState.Leading.CircularImage) + ComponentChip(textRes = R.string.component_list_leading_square_image, value = VariantListsState.Leading.SquareImage) + ComponentChip(textRes = R.string.component_list_leading_wide_image, value = VariantListsState.Leading.WideImage) } Subtitle(textRes = R.string.component_list_trailing, withHorizontalPadding = true) - ComponentCustomizationChipRow(variantListsState.selectedTrailing) { + ComponentChipRow(variantListsState.selectedTrailing) { variantListsState.trailings.forEach { trailing -> - ComponentCustomizationChip(textRes = trailing.textResId, value = trailing) + ComponentChip(textRes = trailing.textResId, value = trailing) } } diff --git a/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentChipRow.kt b/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentChipRow.kt new file mode 100644 index 000000000..19d203788 --- /dev/null +++ b/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentChipRow.kt @@ -0,0 +1,49 @@ +/* + * + * Copyright 2021 Orange + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * / + */ + +package com.orange.ods.demo.ui.components.utilities + +import androidx.annotation.StringRes +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.selection.selectableGroup +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.dimensionResource +import androidx.compose.ui.res.stringResource +import com.google.accompanist.flowlayout.FlowRow +import com.orange.ods.compose.component.chip.OdsChip +import com.orange.ods.demo.R + +@Composable +fun ComponentChipRow(selectedChip: MutableState, content: @Composable ComponentChipRowScope.() -> Unit) { + FlowRow( + modifier = Modifier + .fillMaxWidth() + .selectableGroup() + .padding(horizontal = dimensionResource(id = R.dimen.ods_screen_horizontal_margin)), + mainAxisSpacing = dimensionResource(id = R.dimen.spacing_s), + content = { ComponentChipRowScope(selectedChip).content() } + ) +} + +@ExperimentalMaterialApi +@Composable +fun ComponentChipRowScope.ComponentChip(@StringRes textRes: Int, value: T) { + OdsChip( + text = stringResource(id = textRes), + selected = selectedChip.value == value, + onClick = { selectedChip.value = value } + ) +} + +data class ComponentChipRowScope(val selectedChip: MutableState) diff --git a/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentCustomizationBottomSheet.kt b/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentCustomizationBottomSheet.kt index 073cca5d0..021180063 100644 --- a/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentCustomizationBottomSheet.kt +++ b/demo/src/main/java/com/orange/ods/demo/ui/components/utilities/ComponentCustomizationBottomSheet.kt @@ -10,28 +10,21 @@ package com.orange.ods.demo.ui.components.utilities -import androidx.annotation.StringRes import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.selection.selectableGroup import androidx.compose.material.BottomSheetScaffold import androidx.compose.material.BottomSheetScaffoldState import androidx.compose.material.BottomSheetValue import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.Icon import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier -import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.google.accompanist.flowlayout.FlowRow -import com.orange.ods.compose.component.chip.OdsChip import com.orange.ods.compose.component.list.OdsListItem import com.orange.ods.demo.R import kotlinx.coroutines.launch @@ -71,23 +64,3 @@ fun ComponentCustomizationBottomSheetScaffold( Box(modifier = Modifier.padding(innerPadding), content = content) } } - -@Composable -fun ComponentCustomizationChipRow(selectedChip: MutableState, content: @Composable ChipRowScope.() -> Unit) { - FlowRow( - modifier = Modifier - .fillMaxWidth() - .selectableGroup() - .padding(horizontal = dimensionResource(id = R.dimen.ods_screen_horizontal_margin)), - mainAxisSpacing = dimensionResource(id = R.dimen.spacing_s), - content = { ChipRowScope(selectedChip).content() } - ) -} - -@ExperimentalMaterialApi -@Composable -fun ChipRowScope.ComponentCustomizationChip(@StringRes textRes: Int, value: T) { - OdsChip(text = stringResource(id = textRes), selected = selectedChip.value == value, onClick = { selectedChip.value = value }) -} - -data class ChipRowScope(val selectedChip: MutableState)