NTP-13754 | Venkat Praneeth Reddy | Lazy row match parent functionality (#646)
This commit is contained in:
committed by
GitHub
parent
d461cf0ae1
commit
82375d11f4
@@ -7,6 +7,9 @@
|
||||
|
||||
package com.navi.uitron.model.ui
|
||||
|
||||
import android.os.Parcelable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
class LazyRowProperty(
|
||||
var arrangementData: ArrangementData? = null,
|
||||
var verticalAlignment: String? = null,
|
||||
@@ -21,3 +24,5 @@ class LazyRowProperty(
|
||||
rowProperty?.repeat?.let { repeat = it }
|
||||
}
|
||||
}
|
||||
|
||||
@Parcelize data class LazyRowConstraints(val fillWidth: Boolean? = null) : Parcelable
|
||||
|
||||
@@ -126,7 +126,8 @@ class UiTronShapeData : UiTronShape()
|
||||
data class ParentConstraints(
|
||||
var rowConstraints: RowConstraints? = null,
|
||||
var columnConstraints: ColumnConstraints? = null,
|
||||
var boxConstraints: BoxConstraints? = null
|
||||
var boxConstraints: BoxConstraints? = null,
|
||||
var lazyRowConstraints: LazyRowConstraints? = null
|
||||
) : Parcelable
|
||||
|
||||
@Parcelize
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
package com.navi.uitron.render
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.lazy.LazyRow
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
@@ -29,6 +30,7 @@ import com.navi.uitron.modifer.ModifierBuilder
|
||||
import com.navi.uitron.utils.alfredMaskSensitiveComposable
|
||||
import com.navi.uitron.utils.applyImpressionTracking
|
||||
import com.navi.uitron.utils.clip
|
||||
import com.navi.uitron.utils.constraintsToModifier
|
||||
import com.navi.uitron.utils.customClickable
|
||||
import com.navi.uitron.utils.customCombinedClick
|
||||
import com.navi.uitron.utils.customOffset
|
||||
@@ -150,15 +152,22 @@ class LazyRowRenderer(
|
||||
}
|
||||
) {
|
||||
items(childrenComposeViews) { childrenView ->
|
||||
if (childrenView.data.isNullOrEmpty()) {
|
||||
uiTronRenderer.Render(listOf(childrenView))
|
||||
} else {
|
||||
UiTronRenderer(
|
||||
childrenView.data,
|
||||
uiTronViewModel,
|
||||
uiTronRenderer.customUiTronRenderer
|
||||
Box(
|
||||
modifier =
|
||||
constraintsToModifier(
|
||||
childrenView.property?.parentConstraints?.lazyRowConstraints
|
||||
)
|
||||
.Render(listOf(childrenView))
|
||||
) {
|
||||
if (childrenView.data.isNullOrEmpty()) {
|
||||
uiTronRenderer.Render(listOf(childrenView))
|
||||
} else {
|
||||
UiTronRenderer(
|
||||
childrenView.data,
|
||||
uiTronViewModel,
|
||||
uiTronRenderer.customUiTronRenderer
|
||||
)
|
||||
.Render(listOf(childrenView))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.widthIn
|
||||
import androidx.compose.foundation.layout.wrapContentHeight
|
||||
import androidx.compose.foundation.layout.wrapContentWidth
|
||||
import androidx.compose.foundation.lazy.LazyItemScope
|
||||
import androidx.compose.foundation.lazy.LazyListState
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
@@ -117,6 +118,7 @@ import com.navi.uitron.model.ui.HorizontalAlignmentType
|
||||
import com.navi.uitron.model.ui.HorizontalArrangementType
|
||||
import com.navi.uitron.model.ui.InputTransformationType
|
||||
import com.navi.uitron.model.ui.InteractionType
|
||||
import com.navi.uitron.model.ui.LazyRowConstraints
|
||||
import com.navi.uitron.model.ui.Offset as UiTronOffset
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldKeyBoardOptions
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldTextStyle
|
||||
@@ -797,6 +799,15 @@ fun BoxScope.boxConstraintsToModifier(boxConstraints: BoxConstraints?): Modifier
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ModifierFactoryExtensionFunction")
|
||||
fun LazyItemScope.constraintsToModifier(lazyRowConstraints: LazyRowConstraints?): Modifier {
|
||||
return Modifier.conditional(
|
||||
lazyRowConstraints?.fillWidth != null && lazyRowConstraints.fillWidth == true
|
||||
) {
|
||||
fillParentMaxWidth()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun getBorderStrokeBrushData(
|
||||
borderStrokeData: BorderStrokeData?,
|
||||
|
||||
Reference in New Issue
Block a user