@momo-kits/native-kits 0.114.2-beta.1 → 0.114.2-beta.3

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 (29) hide show
  1. package/compose/build.gradle.kts +1 -0
  2. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +1 -1
  3. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +28 -30
  4. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +1 -1
  5. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +29 -9
  6. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +1 -1
  7. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +4 -4
  8. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +1 -1
  9. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +3 -3
  10. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +3 -3
  11. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +3 -3
  12. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +1 -1
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +3 -3
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +1 -1
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +4 -4
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +1 -1
  17. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +1 -1
  18. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +3 -2
  19. package/compose/src/commonMain/kotlin/vn/momo/kits/components/dateTimePicker/DateTimePicker.kt +178 -0
  20. package/compose/src/commonMain/kotlin/vn/momo/kits/components/dateTimePicker/DateTimePickerExample.kt +90 -0
  21. package/compose/src/commonMain/kotlin/vn/momo/kits/components/dateTimePicker/DateTimePickerTypes.kt +15 -0
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/components/dateTimePicker/DateTimePickerUtils.kt +226 -0
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/components/dateTimePicker/WheelPicker.kt +201 -0
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +84 -124
  25. package/ios/Application/ApplicationEnvironment.swift +17 -9
  26. package/ios/Application/HeaderRight.swift +29 -30
  27. package/ios/Template/TrustBanner/TrustBanner.swift +75 -144
  28. package/local.properties +2 -2
  29. package/package.json +1 -1
@@ -11,179 +11,110 @@ import SDWebImageSwiftUI
11
11
 
12
12
  let jsonUrl = "https://static.momocdn.net/app/json/component-kits/design_system.json"
13
13
 
14
- struct TrustBannerData: Decodable {
15
- let trustBanner: TrustBanner
16
- }
17
-
18
- struct TrustBanner: Decodable {
19
- let content: Dictionary<String, String>
14
+ public struct TrustBannerData: Decodable {
15
+ let content: [String: String]
16
+ let subContent: [String: String]
20
17
  let pciImage: String
21
18
  let sslImage: String
22
19
  let urlConfig: String
23
- let featureCode: String
24
20
  let icons: [String]
25
21
  let momoImage: String
26
-
22
+
27
23
  enum CodingKeys: String, CodingKey {
28
- case content, pciImage, sslImage, icons, momoImage
24
+ case content
25
+ case subContent
26
+ case pciImage
27
+ case sslImage
28
+ case icons
29
+ case momoImage
29
30
  case urlConfig = "url_config"
30
- case featureCode = "feature_code"
31
31
  }
32
32
  }
33
33
 
34
- let defaultBanner = TrustBanner(
35
- content: ["vi": "Bảo mật thông tin & An toàn tài sản của bạn là ưu tiên hàng đầu của MoMo.",
36
- "en": "Your data security and money safety are MoMo's top priorities."],
34
+ let defaultBanner = TrustBannerData(
35
+ content: ["vi": "An toàn tài sản & Bảo mật thông tin của bạn là ưu tiên hàng đầu của MoMo.",
36
+ "en": "Ensuring financial security and data privacy is MoMo's highest priority."],
37
+ subContent: [
38
+ "vi": "Tìm hiểu thêm",
39
+ "en": "Learn more"
40
+ ],
37
41
  pciImage: "https://static.momocdn.net/app/img/kits/trustBanner/pci.png",
38
42
  sslImage: "https://static.momocdn.net/app/img/kits/trustBanner/ssl.png",
39
- urlConfig: "https://momo.vn/an-toan-bao-mat",
40
- featureCode: "login_and_security",
43
+ urlConfig: "login_and_security",
41
44
  icons: [
42
45
  "https://static.momocdn.net/app/img/kits/trustBanner/ic_viettinbank.png",
43
46
  "https://static.momocdn.net/app/img/kits/trustBanner/ic_agribank.png",
44
47
  "https://static.momocdn.net/app/img/kits/trustBanner/ic_vietcombank.png",
45
48
  "https://static.momocdn.net/app/img/kits/trustBanner/ic_bidv.png"
46
49
  ],
47
- momoImage: "https://static.momocdn.net/app/img/kits/trustBanner/ic_momo_secu.png"
50
+ momoImage: "https://static.momocdn.net/app/img/kits/trustBanner/ic_secu.png"
48
51
  )
49
52
 
50
- let defaultData = TrustBannerData(trustBanner: defaultBanner)
51
-
52
- class TrustBannerViewModel: ObservableObject {
53
- @Published var trustBanner: TrustBannerData?
54
-
55
- init() {
56
- fetchData(from: jsonUrl)
57
- }
58
-
59
- func fetchData(from urlString: String) {
60
- guard let url = URL(string: urlString) else { return }
61
-
62
- URLSession.shared.dataTask(with: url) { [weak self] data, response, error in
63
- guard let self = self else { return }
64
-
65
- if let error = error {
66
- print("Data fetching error: \(error)")
67
- return
68
- }
69
-
70
- guard let data = data else {
71
- print("No data received")
72
- return
73
- }
74
- do {
75
- let decodedData = try JSONDecoder().decode(TrustBannerData.self, from: data)
76
- DispatchQueue.main.async {
77
- self.trustBanner = decodedData
78
- }
79
- } catch {
80
- print("Decoding error: \(error)")
81
- }
82
- }.resume()
83
- }
84
- }
85
-
86
- public struct TrustBannerView: View {
87
- var serviceName: String? = ""
88
- var screenName: String? = ""
89
- var onPress: ((_ params: NSDictionary) -> Void)?
90
- var trackEvent: ((_ eventName: String, _ params: NSDictionary) -> Void)?
91
- var language: String?
92
-
93
- @ObservedObject private var viewModel = TrustBannerViewModel()
94
-
95
- public init(serviceName: String?,
96
- screenName: String?,
97
- onPress: ((_ params: NSDictionary) -> Void)?,
98
- trackEvent: ((_ eventName: String,_ params: NSDictionary) -> Void)?, language: String? = "vi") {
99
- if let trackEvent = trackEvent {
100
- trackEvent("service_component_displayed", ["service_name": serviceName ?? "", "screen_name": screenName ?? "", "component_name": "logo_trust"])
101
- }
53
+ public struct TrustBanner: View {
54
+ @EnvironmentObject var applicationEnvironment: ApplicationEnvironment
55
+
56
+ var onPress: ((String)->Void)?
57
+
58
+ public init(onPress: ((String)->Void)?) {
102
59
  self.onPress = onPress
103
- self.trackEvent = trackEvent
104
- self.screenName = screenName
105
- self.serviceName = serviceName
106
- self.language = language
107
60
  }
108
-
109
- public var body: some View {
110
- if let trustBanner = viewModel.trustBanner {
111
- TrustBannerContentView(trustBanner: trustBanner.trustBanner, onPress: onPress, trackEvent: trackEvent, serviceName: serviceName, screenName: screenName, language: language)
61
+
62
+ var language: String? = "vi"
63
+
64
+ func onPressSecurity() {
65
+ if (onPress != nil) {
66
+ onPress!(applicationEnvironment.config?.trustBanner?.urlConfig ?? defaultBanner.urlConfig)
112
67
  }
113
68
  }
114
- }
115
-
116
- struct TrustBannerContentView: View {
117
- var trustBanner: TrustBanner
118
- var onPress: ((_ params: NSDictionary) -> Void)?
119
- var trackEvent: ((_ eventName: String, _ params: NSDictionary) -> Void)?
120
- var serviceName: String?
121
- var screenName: String?
122
- var language: String?
123
69
 
124
- var body: some View {
125
- GeometryReader { geo in
126
- HStack(alignment: .center, spacing: 8) {
127
- WebImage(url: URL(string: trustBanner.momoImage))
128
- .resizable()
129
- .scaledToFit()
130
- .frame(width: 64, height: 64)
131
- VStack(alignment: .leading, spacing: 8){
132
- Text(trustBanner.content[language ?? "vi"] ?? "")
133
- .foregroundColor(Color(hex: 0xFF484848))
134
- .lineLimit(2)
135
- .font(.system(size: 12, weight: Font.Weight.regular))
136
- .frame(width: geo.size.width - 24 - 64 - 8, height: 40,alignment: .leading)
70
+
71
+ public var body: some View {
72
+ HStack(alignment: .center, spacing: 8) {
73
+ WebImage(url: URL(string: applicationEnvironment.config?.trustBanner?.momoImage ?? defaultBanner.momoImage))
74
+ .resizable()
75
+ .scaledToFit()
76
+ .frame(width: 64, height: 64)
77
+ VStack(alignment: .leading){
78
+ Text(applicationEnvironment.config?.trustBanner?.content[language ?? "vi"] as? String ?? defaultBanner.content[language ?? "vi"])
79
+ .foregroundColor(Color(hex: "484848"))
80
+ .lineLimit(2)
81
+ .font(.system(size: 13, weight: Font.Weight.regular))
82
+ .lineSpacing(3)
83
+ .padding(.bottom, 8)
84
+ HStack {
85
+ HStack(spacing: 0) {
86
+ Text(applicationEnvironment.config?.trustBanner?.subContent[language ?? "vi"] as? String ?? defaultBanner.subContent[language ?? "vi"])
87
+ .foregroundColor(Colors.pink03)
88
+ .font(.system(size: 13, weight: .bold))
89
+ .padding(.trailing, 4)
90
+
91
+ Icon(source: "arrow_chevron_right_small", color: Colors.pink03)
92
+ }.onTapGesture {
93
+ onPressSecurity()
94
+ }
95
+
96
+ Spacer()
137
97
  HStack{
138
- HStack{
139
- WebImage(url: URL(string: trustBanner.pciImage))
140
- .resizable()
141
- .scaledToFit()
142
- .frame(width: 52, height: 20)
143
- WebImage(url: URL(string: trustBanner.sslImage))
144
- .resizable()
145
- .scaledToFit()
146
- .frame(width: 52, height: 20)
147
- }
148
- Spacer()
149
- HStack(spacing: -6){
150
- ForEach(trustBanner.icons, id: \.self) { iconURL in
151
- WebImage(url: URL(string: iconURL))
152
- .resizable()
153
- .scaledToFit()
154
- .frame(width:24, height: 24)
155
- .background(Color.white)
156
- .cornerRadius(12)
157
- .overlay(
158
- Circle().stroke(Color(hex: 0xFFE8E8E8), lineWidth: 1)
159
- )
160
- }
161
- Text("36+")
162
- .font(.system(size: 10, weight: Font.Weight.regular))
163
- .frame(width: 24, height: 24, alignment: .center)
164
- .foregroundColor(Color(hex: 0xFFEB2F96))
165
- .background(Color(hex: 0xFFFDEAF4))
166
- .cornerRadius(12)
167
- .overlay(
168
- Circle()
169
- .stroke(Color(hex: 0xFFE8E8E8), lineWidth: 1)
170
- )
171
- }.frame(width: 96, height: 24)
98
+ WebImage(url: URL(string: applicationEnvironment.config?.trustBanner?.pciImage ?? defaultBanner.pciImage))
99
+ .resizable()
100
+ .scaledToFit()
101
+ .frame(width: 24, height: 20)
102
+ WebImage(url: URL(string: applicationEnvironment.config?.trustBanner?.sslImage ?? defaultBanner.sslImage))
103
+ .resizable()
104
+ .scaledToFit()
105
+ .frame(width: 52, height: 20)
172
106
  }
173
107
  }
108
+
174
109
  }
175
- .frame(width: geo.size.width - 24)
176
- .padding(EdgeInsets(top: 12, leading: 12, bottom: 12, trailing: 12))
177
- .background(Color(hex: 0xFFF2F8FF))
178
- .cornerRadius(12)
179
- .onTapGesture {
180
- if let trackEvent = trackEvent {
181
- trackEvent("service_component_clicked", ["service_name": self.serviceName ?? "", "screen_name": self.screenName ?? "", "component_name": "logo_trust", "url_config": trustBanner.urlConfig])
182
- }
183
- if let onPress = onPress {
184
- onPress(["service_name": self.serviceName ?? "", "screen_name": self.screenName ?? "", "component_name": "logo_trust", "url_config": trustBanner.urlConfig, "feature_code": trustBanner.featureCode])
185
- }
186
- }
110
+
111
+ }
112
+ .padding(.all, 12)
113
+ .background(Color(hex: "F2F8FF"))
114
+ .cornerRadius(12)
115
+ .onTapGesture {
116
+ onPressSecurity()
187
117
  }
118
+ .frame(maxWidth: UIScreen.main.bounds.size.width)
188
119
  }
189
120
  }
package/local.properties CHANGED
@@ -4,5 +4,5 @@
4
4
  # Location of the SDK. This is only used by Gradle.
5
5
  # For customization when using a Version Control System, please read the
6
6
  # header note.
7
- #Wed Aug 21 14:20:12 ICT 2024
8
- sdk.dir=/Users/huynhdung/Library/Android/sdk
7
+ #Tue Apr 23 16:40:15 ICT 2024
8
+ sdk.dir=/Users/hung.dao1/Library/Android/sdk
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/native-kits",
3
- "version": "0.114.2-beta.1",
3
+ "version": "0.114.2-beta.3",
4
4
  "private": false,
5
5
  "dependencies": {},
6
6
  "devDependencies": {},