From b0c6e10aa7b75bd569be2760a1369a3610bb4646 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Thu, 19 Oct 2023 19:00:58 +0530 Subject: [PATCH] - Allowed to pass dynamic trailing icon in TUIChip --- tarkaui/build.gradle.kts | 2 +- .../com/tarkalabs/uicomponents/TUIChipTest.kt | 5 +++-- .../screenshots/TUIChipScreenshotTest.kt | 8 ++++---- .../tarkalabs/uicomponents/components/TUIChip.kt | 16 +++++++++------- .../uicomponents/components/TUIEmailField.kt | 4 +++- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index bfe8d837..238749e1 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -66,7 +66,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "0.51-alpha" + version = "0.52-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIChipTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIChipTest.kt index e3127fc9..05be157a 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIChipTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIChipTest.kt @@ -10,6 +10,7 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.test.platform.app.InstrumentationRegistry import com.tarkalabs.tarkaicons.CalendarLtr24 +import com.tarkalabs.tarkaicons.Dismiss20 import com.tarkalabs.tarkaicons.TarkaIcons import com.tarkalabs.uicomponents.components.ChipLeadingContent import com.tarkalabs.uicomponents.components.ChipType @@ -68,7 +69,7 @@ class TUIChipTest { val onClick: () -> Unit = mock() composable.setContent { TUIChip( - type = ChipType.Input(null, true, TUITheme.colors.surface), + type = ChipType.Input(null, TarkaIcons.Filled.Dismiss20, TUITheme.colors.surface), label = "Input chip", onClick = onClick, tags = chipTags.copy(parentTag = "Input"), @@ -86,7 +87,7 @@ class TUIChipTest { val bitmap = BitmapFactory.decodeStream(assetManager.open("avatarTest.webp")) composable.setContent { TUIChip( - type = ChipType.Input(content = ChipLeadingContent.Image(bitmap.asImageBitmap()), showTrailingDismiss = true, containerColor = TUITheme.colors.surface), + type = ChipType.Input(content = ChipLeadingContent.Image(bitmap.asImageBitmap()), trailingIcon = TarkaIcons.Filled.Dismiss20, containerColor = TUITheme.colors.surface), label = "Input chip", onClick = { }, ) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIChipScreenshotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIChipScreenshotTest.kt index b48c3917..bbe8aa14 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIChipScreenshotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIChipScreenshotTest.kt @@ -3,9 +3,9 @@ package com.tarkalabs.uicomponents.screenshots import android.graphics.BitmapFactory import androidx.compose.ui.graphics.asImageBitmap import androidx.test.platform.app.InstrumentationRegistry -import com.tarkalabs.tarkaicons.CalendarAdd24 import com.tarkalabs.tarkaicons.CalendarLtr24 import com.tarkalabs.tarkaicons.Checkmark16 +import com.tarkalabs.tarkaicons.Dismiss20 import com.tarkalabs.tarkaicons.TarkaIcons import com.tarkalabs.uicomponents.components.ChipLeadingContent import com.tarkalabs.uicomponents.components.ChipSize @@ -39,9 +39,9 @@ class TUIChipScreenshotTest( val types = leadingContent.map { ChipType.Assist(it) } + filterChipTypes() + leadingContent.map { ChipType.Input( - it, false + it, TarkaIcons.Filled.Dismiss20 ) - } + leadingContent.map { ChipType.Input(it, true) } + listOf( + } + leadingContent.map { ChipType.Input(it, TarkaIcons.Filled.Dismiss20) } + listOf( ChipType.Suggestion(null), ChipType.Suggestion(TarkaIcons.Regular.CalendarLtr24), ) @@ -55,7 +55,7 @@ class TUIChipScreenshotTest( val testName = when (type) { is ChipType.Assist -> "ChipSize_${chipSize}_chipType_${type.javaClass.simpleName}_chipTypeContent_${type.content?.javaClass?.simpleName.toString()}_darkTheme_${darkTheme}" is ChipType.Filter -> "ChipSize_${chipSize}_chipType_${type.javaClass.simpleName}_chipTypeShowLeadingCheck_${type.showLeadingCheck}_chipTypeShowTrailingCaret_${type.showTrailingCaret}_chipTypeShowTrailingDismiss_${type.showTrailingDismiss}_chipTypeSelected_${type.selected}_darkTheme_${darkTheme}" - is ChipType.Input -> "ChipSize_${chipSize}_chipType_${type.javaClass.simpleName}_chipTypeShowTrailingDismiss_${type.showTrailingDismiss}_chipTypeContent_${type.content?.javaClass?.simpleName}_darkTheme_${darkTheme}" + is ChipType.Input -> "ChipSize_${chipSize}_chipType_${type.javaClass.simpleName}_chipTypeShowTrailingDismiss_${type.trailingIcon}_chipTypeContent_${type.content?.javaClass?.simpleName}_darkTheme_${darkTheme}" is ChipType.Suggestion -> "ChipSize_${chipSize}_chipType_${type.javaClass.simpleName}_chipTypeImage_${type.image.toString()}_darkTheme_${darkTheme}" } testData.add( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIChip.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIChip.kt index f1fff38b..2f2f9a44 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIChip.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIChip.kt @@ -4,6 +4,7 @@ import android.util.Log import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.AssistChip @@ -26,6 +27,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import com.tarkalabs.tarkaicons.ArrowSort20 import com.tarkalabs.tarkaicons.CaretDown20 import com.tarkalabs.tarkaicons.Checkmark20 import com.tarkalabs.tarkaicons.Dismiss20 @@ -58,12 +60,12 @@ sealed class ChipType { * Represents an input chip type for TUIChip. * * @param content The optional leading content for the chip. - * @param showTrailingDismiss Whether to show a dismiss icon as a trailing icon. + * @param trailingIcon The drawable resource for the trailing icon * @param containerColor The color of the chip's container. If null, the default color from the theme will be used. */ data class Input( val content: ChipLeadingContent? = null, - val showTrailingDismiss: Boolean = false, + val trailingIcon: TarkaIcon? = null, val containerColor: Color? = null ) : ChipType() @@ -146,10 +148,10 @@ enum class ChipSize(val size: Dp) { label = commonLabel, colors = InputChipDefaults.inputChipColors(containerColor = TUITheme.colors.surface), leadingIcon = { leadingIcon(type.content) }, - trailingIcon = if (type.showTrailingDismiss) { + trailingIcon = if (type.trailingIcon != null) { { TUIIconButton( - icon = TarkaIcons.Filled.Dismiss20, + icon = type.trailingIcon, iconButtonStyle = GHOST, onIconClick = { onDismissClick?.invoke() @@ -262,16 +264,16 @@ data class TUIChipTags( @Preview @Composable fun TUIChipPreview() { - Column { + Column(modifier = Modifier.padding(20.dp)) { TUIChip( type = ChipType.Input( - showTrailingDismiss = true, + trailingIcon = TarkaIcons.Regular.ArrowSort20, containerColor = TUITheme.colors.surfaceVariant ), label = "Something", onClick = { Log.e("TAG_CHIP", "TUIChipPreview: TAG_CLICKED") } ) - + VerticalSpacer(space = 20) TUIChip( type = ChipType.Assist(), label = "Something", diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIEmailField.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIEmailField.kt index 03f321f7..0da49c15 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIEmailField.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIEmailField.kt @@ -42,6 +42,7 @@ import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.tarkalabs.tarkaicons.AddCircle24 +import com.tarkalabs.tarkaicons.Dismiss20 import com.tarkalabs.tarkaicons.TarkaIcon import com.tarkalabs.tarkaicons.TarkaIcons import com.tarkalabs.uicomponents.components.ChipType.Input @@ -127,7 +128,8 @@ import kotlinx.coroutines.launch TUIChip(modifier = Modifier .padding(2.dp) .testTag(email), type = Input( - showTrailingDismiss = true, containerColor = TUITheme.colors.surfaceVariant + trailingIcon = TarkaIcons.Filled.Dismiss20, + containerColor = TUITheme.colors.surfaceVariant ), label = email, tags = tags.chipTags, onClick = { }, onDismissClick = {