@momo-kits/native-kits 0.167.1-beta.19-debug → 0.167.1-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/ios/native-kits.podspec +1 -1
  2. package/ios-demo/MoMoUIKitsDemo.podspec +1 -1
  3. package/package.json +1 -1
  4. package/build.gradle.kts +0 -11
  5. package/compose/build.gradle.kts +0 -203
  6. package/compose/build.gradle.kts.backup +0 -203
  7. package/compose/compose.podspec +0 -47
  8. package/compose/src/androidMain/kotlin/vn/momo/kits/const/HostFont.android.kt +0 -19
  9. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +0 -6
  10. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/BackGesture.android.kt +0 -12
  11. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/OsFontScale.android.kt +0 -7
  12. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -151
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +0 -52
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -124
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -183
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -207
  17. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -39
  18. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  19. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  20. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  21. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -293
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -831
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Localize.kt +0 -269
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -110
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -378
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/WidgetContainer.kt +0 -56
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -82
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -338
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -175
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -356
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -113
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -89
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -128
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -209
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -542
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -49
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -86
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -125
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -231
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -189
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -475
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -114
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -266
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -240
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -223
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -264
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -185
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -343
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -84
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -328
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -97
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -310
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -59
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +0 -21
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -90
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -323
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -220
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -473
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -122
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -199
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -91
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -552
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -88
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -125
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -207
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -498
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -176
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -182
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -193
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -234
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -188
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -325
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/const/HostFont.kt +0 -16
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitDesignSystem.kt +0 -18
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitFontScale.kt +0 -22
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -194
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -282
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -54
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -51
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -41
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -52
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -66
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -104
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -48
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -299
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/HostBackGestureBridge.kt +0 -58
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -129
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -106
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -201
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -393
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -595
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackTransition.kt +0 -148
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/SwipeBackHaptic.kt +0 -35
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -184
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -217
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -169
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -357
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -83
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderJourney.kt +0 -106
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderLocation.kt +0 -75
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -309
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -39
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -364
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -132
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -127
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/BackGesture.kt +0 -12
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -91
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/OsFontScale.kt +0 -9
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -71
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -55
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -105
  130. package/compose/src/iosMain/kotlin/vn/momo/kits/const/HostFont.ios.kt +0 -40
  131. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/HostBackGesture.ios.kt +0 -45
  132. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -32
  133. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/BackGesture.ios.kt +0 -38
  134. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/OsFontScale.ios.kt +0 -66
  135. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -213
  136. package/gradle/libs.versions.toml +0 -69
  137. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  138. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  139. package/gradle.properties +0 -26
  140. package/gradlew +0 -252
  141. package/gradlew.bat +0 -94
  142. package/ios-demo/README.md +0 -120
  143. package/local.properties +0 -8
  144. package/settings.gradle.kts +0 -64
@@ -1,207 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.animation.core.animateFloatAsState
4
- import androidx.compose.foundation.background
5
- import androidx.compose.foundation.border
6
- import androidx.compose.foundation.clickable
7
- import androidx.compose.foundation.layout.*
8
- import androidx.compose.foundation.shape.RoundedCornerShape
9
- import androidx.compose.runtime.*
10
- import androidx.compose.ui.Alignment
11
- import androidx.compose.ui.Modifier
12
- import androidx.compose.ui.graphics.Color
13
- import androidx.compose.ui.graphics.graphicsLayer
14
- import androidx.compose.ui.text.style.TextAlign
15
- import androidx.compose.ui.unit.Dp
16
- import androidx.compose.ui.unit.dp
17
- import androidx.compose.ui.zIndex
18
- import kotlinx.coroutines.flow.distinctUntilChanged
19
- import kotlinx.coroutines.flow.map
20
- import vn.momo.kits.components.Icon
21
- import vn.momo.kits.components.InputSearch
22
- import vn.momo.kits.components.InputSearchProps
23
- import vn.momo.kits.const.AppTheme
24
- import vn.momo.kits.const.Colors
25
- import vn.momo.kits.const.Spacing
26
- import vn.momo.kits.modifier.conditional
27
- import vn.momo.kits.modifier.setAutomationId
28
- import vn.momo.kits.utils.getAppStatusBarHeight
29
-
30
- data class HeaderColor(val tintIconColor: Color, val backgroundButton: Color, val borderColor: Color)
31
- fun getHeaderColor(animatedHeader: AnimatedHeader?, opacity: Float, tintColor: Color?, defaultColor: Color): HeaderColor{
32
- return if(animatedHeader !== null)
33
- if (opacity == 1f || !animatedHeader.isSurface)
34
- HeaderColor(
35
- tintIconColor = Colors.black_17,
36
- backgroundButton = Colors.black_01.copy(alpha = 0.6f),
37
- borderColor = Colors.black_20.copy(alpha = 0.2f)
38
- )
39
- else
40
- HeaderColor(
41
- tintIconColor = Colors.black_01,
42
- backgroundButton = Colors.black_20.copy(alpha = 0.6f),
43
- borderColor = Color.Transparent
44
- )
45
- else
46
- if (tintColor == Colors.black_01)
47
- HeaderColor(
48
- tintIconColor = tintColor,
49
- backgroundButton = Colors.black_20.copy(alpha = 0.6f),
50
- borderColor = Colors.black_01.copy(alpha = 0.2f)
51
- )
52
- else
53
- HeaderColor(
54
- tintIconColor = tintColor ?: defaultColor,
55
- backgroundButton = Colors.black_01.copy(alpha = 0.6f),
56
- borderColor = Colors.black_20.copy(alpha = 0.2f)
57
- )
58
- }
59
-
60
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
61
- @Composable
62
- internal fun Header(
63
- headerType: HeaderType = HeaderType.DEFAULT,
64
- titlePosition: TitlePosition,
65
- title: String,
66
- headerRight: @Composable (() -> Unit)? = null,
67
- goBack: (() -> Unit)? = null,
68
- opacity: Float = 1f,
69
- animatedHeader: AnimatedHeader? = null,
70
- scrollState: Int = 0,
71
- inputSearchProps: InputSearchProps? = null,
72
- headerRightWidth: Dp = 0.dp,
73
- useAnimationSearch: Boolean = false,
74
- tintColor: Color? = null
75
- ) {
76
- val statusBarHeight = getAppStatusBarHeight()
77
- val color = getHeaderColor(animatedHeader, opacity, tintColor, AppTheme.current.colors.text.default)
78
- val tintIconColor = color.tintIconColor
79
- val backgroundButton = color.backgroundButton
80
- val borderColor = color.borderColor
81
-
82
- var colorFraction by remember { mutableStateOf(0f) }
83
-
84
- LaunchedEffect(scrollState) {
85
- snapshotFlow { scrollState }
86
- .map { (it / 50f).coerceIn(0f, 1f) }
87
- .distinctUntilChanged()
88
- .collect { fraction -> colorFraction = fraction }
89
- }
90
- val animations = useHeaderSearchAnimation(
91
- opacityAni = opacity,
92
- scrollState = scrollState,
93
- headerRightWidth = headerRightWidth,
94
- isBack = goBack != null
95
- )
96
-
97
- val backgroundSearch = animateColor(
98
- Colors.black_01,
99
- AppTheme.current.colors.background.default,
100
- colorFraction
101
- )
102
-
103
- val searchAnimationEnable =
104
- inputSearchProps != null && useAnimationSearch && headerType == HeaderType.EXTENDED
105
- val animatedAlpha by animateFloatAsState(targetValue = opacity, label = "BackgroundAlpha")
106
-
107
- if (headerType != HeaderType.NONE) {
108
- BoxWithConstraints(
109
- Modifier.height(statusBarHeight + HEADER_HEIGHT.dp)
110
- .fillMaxWidth()
111
- .conditional(animatedHeader !== null) { background(Color.White.copy(alpha = animatedAlpha)) }
112
- .zIndex(10f),
113
- contentAlignment = Alignment.BottomCenter
114
- ) {
115
- Row(
116
- modifier = Modifier.height(HEADER_HEIGHT.dp)
117
- .fillMaxWidth()
118
- .padding(horizontal = Spacing.M),
119
- verticalAlignment = Alignment.CenterVertically,
120
- horizontalArrangement = Arrangement.SpaceBetween
121
- ) {
122
- Box {
123
- if (goBack != null) {
124
- Box(
125
- modifier = Modifier
126
- .size(28.dp)
127
- .then(
128
- Modifier.border(
129
- 0.2.dp,
130
- borderColor,
131
- RoundedCornerShape(100)
132
- )
133
- )
134
- .background(
135
- backgroundButton,
136
- RoundedCornerShape(100)
137
- )
138
- .clickable(
139
- onClick = goBack
140
- )
141
- .padding(Spacing.XS)
142
- .setAutomationId("btn_navigation_back"),
143
- contentAlignment = Alignment.Center
144
- ) {
145
- Icon(
146
- source = "arrow-back",
147
- color = tintIconColor,
148
- size = 20.dp,
149
- )
150
- }
151
- }
152
- }
153
-
154
- if (useAnimationSearch || inputSearchProps == null) {
155
- if(headerRight == null){
156
- HeaderRight(opacity = opacity, animatedHeader = animatedHeader, tintColor = tintColor)
157
- } else {
158
- headerRight.invoke()
159
- }
160
- }
161
- }
162
-
163
- // Title
164
- Row(
165
- modifier = Modifier.height(HEADER_HEIGHT.dp)
166
- .fillMaxWidth()
167
- .padding(horizontal = Spacing.M),
168
- verticalAlignment = Alignment.CenterVertically,
169
- ) {
170
- if (goBack != null && titlePosition == TitlePosition.LEFT) {
171
- Spacer(Modifier.width(40.dp))
172
- }
173
- if (inputSearchProps != null && !useAnimationSearch) {
174
- InputSearch(inputSearchProps = inputSearchProps.copy(backgroundColor = backgroundSearch))
175
- } else {
176
- Box(
177
- Modifier.weight(1f).graphicsLayer {
178
- alpha = if (useAnimationSearch) {
179
- 1f - (opacity)
180
- } else {
181
- 1f
182
- }
183
- },
184
- contentAlignment = if (titlePosition == TitlePosition.LEFT) Alignment.TopStart else Alignment.Center
185
- ) {
186
- HeaderTitle(
187
- title = title,
188
- color = tintIconColor,
189
- modifier = Modifier
190
- .setAutomationId("title_navigation_header")
191
- .fillMaxWidth(fraction = if(titlePosition == TitlePosition.LEFT) 0.7f else 0.5f)
192
- ,
193
- textAlign = if(titlePosition == TitlePosition.LEFT) TextAlign.Start else TextAlign.Center
194
- )
195
- }
196
- }
197
- }
198
-
199
- if (searchAnimationEnable) {
200
- AnimationSearchInput(
201
- animations = animations,
202
- inputSearchProps = inputSearchProps
203
- )
204
- }
205
- }
206
- }
207
- }
@@ -1,39 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.animation.core.animateFloatAsState
4
- import androidx.compose.foundation.layout.Box
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.height
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.runtime.getValue
9
- import androidx.compose.ui.Modifier
10
- import androidx.compose.ui.graphics.graphicsLayer
11
- import androidx.compose.ui.unit.dp
12
- import vn.momo.kits.components.Image
13
-
14
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
15
- @Composable
16
- internal fun HeaderAnimated(image: String, scrollState: Int = 0) {
17
- // Scale animation
18
- val scale by animateFloatAsState(
19
- targetValue = when {
20
- scrollState < 0 -> (-(scrollState / 300f)).coerceIn(1f, 4f)
21
- scrollState.toFloat() in 0f..300f -> 1f
22
- else -> 1f
23
- }
24
- )
25
-
26
- // Translation Y animation
27
-
28
- Box(modifier = Modifier.fillMaxWidth().height(200.dp)
29
- .graphicsLayer {
30
- scaleX = scale
31
- scaleY = scale
32
- }) {
33
- if (image.isEmpty()) return
34
- Image(
35
- source = image,
36
- modifier = Modifier.fillMaxWidth().height(200.dp)
37
- )
38
- }
39
- }
@@ -1,86 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.animation.animateColorAsState
4
- import androidx.compose.animation.core.animateFloatAsState
5
- import androidx.compose.foundation.layout.Box
6
- import androidx.compose.foundation.layout.fillMaxWidth
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.runtime.getValue
9
- import androidx.compose.ui.Modifier
10
- import androidx.compose.ui.graphics.Color
11
- import vn.momo.kits.const.AppTheme
12
- import vn.momo.kits.utils.getAppStatusBarHeight
13
-
14
- enum class TitlePosition {
15
- LEFT, CENTER,
16
- }
17
-
18
- enum class AnimatedHeaderRatio(val value: Float){
19
- RATIO_16_9(16f / 9f),
20
- RATIO_1_1(1f),
21
- RATIO_3_2(3f / 2f)
22
- }
23
-
24
- data class AnimatedHeader(
25
- val aspectRatio: AnimatedHeaderRatio = AnimatedHeaderRatio.RATIO_16_9,
26
- val isSurface: Boolean = true,
27
- val composable: @Composable (scrollState: Int) -> Unit = {}
28
- )
29
-
30
- internal fun animateColor(start: Color, stop: Color, fraction: Float): Color {
31
- return Color(
32
- red = start.red + fraction * (stop.red - start.red),
33
- green = start.green + fraction * (stop.green - start.green),
34
- blue = start.blue + fraction * (stop.blue - start.blue),
35
- alpha = start.alpha + fraction * (stop.alpha - start.alpha)
36
- )
37
- }
38
-
39
- @Deprecated("Use vn.momo.kits.navigation.component.HeaderBackground instead", ReplaceWith("vn.momo.kits.navigation.component.HeaderBackground"))
40
- @Composable
41
- internal fun HeaderBackground(
42
- headerType: HeaderType = HeaderType.DEFAULT,
43
- scrollState: Int,
44
- headerTransparent: Boolean = false,
45
- ) {
46
- val statusBarHeight = getAppStatusBarHeight()
47
-
48
- val opacityAni by animateFloatAsState(
49
- targetValue = (1 - (scrollState / HEADER_HEIGHT * 1f)).coerceIn(0f, 1f),
50
- )
51
-
52
- val backgroundColor by animateColorAsState(
53
- targetValue = if (headerTransparent) {
54
- Color.Transparent
55
- } else {
56
- animateColor(
57
- Color.Transparent,
58
- AppTheme.current.colors.background.surface,
59
- opacityAni
60
- )
61
- }
62
- )
63
-
64
- when (headerType) {
65
- HeaderType.DEFAULT -> {
66
- HeaderDefault(
67
- opacityAni = opacityAni,
68
- statusBarHeight = statusBarHeight,
69
- backgroundColor = backgroundColor,
70
- headerTransparent = headerTransparent
71
- )
72
- }
73
-
74
- HeaderType.EXTENDED -> {
75
- HeaderExtended(
76
- opacityAni = opacityAni,
77
- statusBarHeight = statusBarHeight,
78
- backgroundColor = backgroundColor,
79
- )
80
- }
81
-
82
- else -> {
83
- Box(modifier = Modifier.fillMaxWidth())
84
- }
85
- }
86
- }
@@ -1,76 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.layout.Box
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.height
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.ui.Modifier
9
- import androidx.compose.ui.draw.alpha
10
- import androidx.compose.ui.geometry.Offset
11
- import androidx.compose.ui.graphics.Brush
12
- import androidx.compose.ui.graphics.Color
13
- import androidx.compose.ui.layout.ContentScale
14
- import androidx.compose.ui.platform.LocalDensity
15
- import androidx.compose.ui.unit.Dp
16
- import androidx.compose.ui.unit.dp
17
- import vn.momo.kits.components.Image
18
- import vn.momo.kits.components.Options
19
- import vn.momo.kits.const.AppTheme
20
- import vn.momo.kits.utils.bottomBorder
21
-
22
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
23
- @Composable
24
- internal fun HeaderDefault(
25
- opacityAni: Float,
26
- statusBarHeight: Dp,
27
- backgroundColor: Color?,
28
- headerTransparent: Boolean = false
29
- ) {
30
- val height = statusBarHeight + HEADER_HEIGHT.dp
31
- Box(
32
- modifier = Modifier.fillMaxWidth().height(height)
33
- .background(if(headerTransparent && backgroundColor != null) backgroundColor else AppTheme.current.colors.background.surface)
34
- .bottomBorder(
35
- strokeWidth = 1.dp,
36
- color = if(headerTransparent && backgroundColor != null) backgroundColor else AppTheme.current.colors.border.default
37
- )
38
- ) {
39
- Box(
40
- modifier = Modifier
41
- .height(height)
42
- .fillMaxWidth()
43
- .alpha(opacityAni)
44
- .background(
45
- if (headerTransparent)
46
- Brush.linearGradient(
47
- colors = listOf(
48
- Color.Transparent,
49
- Color.Transparent,
50
- ),
51
- start = Offset(0f, 0f),
52
- end = Offset(0f, with(LocalDensity.current) { 154.dp.toPx() })
53
- )
54
- else
55
- Brush.linearGradient(
56
- colors = listOf(
57
- Color(0xFFFDCADE),
58
- Color(0x00FDCADE)
59
- ),
60
- start = Offset(0f, 0f),
61
- end = Offset(0f, with(LocalDensity.current) { 154.dp.toPx() })
62
- )
63
- )
64
- )
65
- if (AppTheme.current.assets.headerBackground != null) {
66
- Image(
67
- loading = false,
68
- source = AppTheme.current.assets.headerBackground!!,
69
- modifier = Modifier.fillMaxWidth().height(height),
70
- options = Options(
71
- contentScale = ContentScale.FillWidth
72
- )
73
- )
74
- }
75
- }
76
- }
@@ -1,76 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.layout.Box
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.height
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.ui.Modifier
9
- import androidx.compose.ui.draw.alpha
10
- import androidx.compose.ui.geometry.Offset
11
- import androidx.compose.ui.graphics.Brush
12
- import androidx.compose.ui.graphics.Color
13
- import androidx.compose.ui.layout.ContentScale
14
- import androidx.compose.ui.platform.LocalDensity
15
- import androidx.compose.ui.unit.Dp
16
- import androidx.compose.ui.unit.dp
17
- import vn.momo.kits.components.Image
18
- import vn.momo.kits.components.Options
19
- import vn.momo.kits.const.AppTheme
20
- import vn.momo.kits.utils.bottomBorder
21
-
22
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
23
- @Composable
24
- internal fun HeaderExtended(
25
- opacityAni: Float,
26
- statusBarHeight: Dp,
27
- backgroundColor: Color
28
- ) {
29
- Box(
30
- modifier = Modifier
31
- .fillMaxWidth()
32
- .height(154.dp)
33
- .alpha(opacityAni)
34
- .background(
35
- Brush.linearGradient(
36
- colors = listOf(
37
- Color(0xFFFDCADE),
38
- Color(0x00FDCADE)
39
- ),
40
- start = Offset(0f, 0f),
41
- end = Offset(0f, with(LocalDensity.current) { 154.dp.toPx() })
42
- )
43
- )
44
- ) {
45
- if (AppTheme.current.assets.headerBackground != null) {
46
- Box(
47
- modifier = Modifier
48
- .fillMaxWidth()
49
- .background(backgroundColor)
50
- ) {
51
- Image(
52
- loading = false,
53
- source = AppTheme.current.assets.headerBackground!!,
54
- modifier = Modifier.fillMaxWidth().height(154.dp),
55
- options = Options(
56
- contentScale = ContentScale.FillWidth
57
- )
58
- )
59
- }
60
- }
61
- }
62
-
63
- Box(
64
- modifier = Modifier
65
- .fillMaxWidth()
66
- .alpha(1f - opacityAni)
67
- .height(statusBarHeight + HEADER_HEIGHT.dp)
68
- .background(
69
- AppTheme.current.colors.background.surface
70
- )
71
- .bottomBorder(
72
- strokeWidth = 1.dp,
73
- color = AppTheme.current.colors.border.default
74
- )
75
- )
76
- }