@eohjsc/react-native-smart-city 0.2.23 → 0.2.26
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.
- package/README.md +1 -1
- package/assets/images/OneTap@1x.svg +14 -0
- package/index.js +0 -2
- package/package.json +11 -3
- package/src/Images/Common/arrow-back.png +0 -0
- package/src/Images/Common/checked@2x.png +0 -0
- package/src/Images/Common/checked@3x.png +0 -0
- package/src/Images/Common/file.png +0 -0
- package/src/Images/Common/fullscreen.png +0 -0
- package/src/Images/Common/refresh.png +0 -0
- package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
- package/src/commons/ActionGroup/OnOffTemplate/index.js +4 -4
- package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +1 -1
- package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
- package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
- package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
- package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -46
- package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
- package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
- package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
- package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
- package/src/commons/ActionGroup/__test__/index.test.js +39 -107
- package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
- package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
- package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
- package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
- package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
- package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
- package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
- package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
- package/src/commons/ActionTemplate/index.js +69 -0
- package/src/commons/Automate/ItemAutomate.js +1 -31
- package/src/commons/Automate/ItemAutomateStyles.js +10 -7
- package/src/commons/Automate/ItemScriptAction.js +9 -5
- package/src/commons/Automate/ItemScriptActionStyles.js +4 -0
- package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
- package/src/commons/Device/DeviceAlertStatus.js +3 -1
- package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
- package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
- package/src/commons/Device/FlatListItems.js +1 -1
- package/src/commons/Device/ItemAddNew/index.js +6 -1
- package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
- package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
- package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
- package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
- package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -6
- package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
- package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
- package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
- package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
- package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
- package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
- package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
- package/src/commons/Explore/__test__/CityItem.test.js +13 -15
- package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
- package/src/commons/Header/HeaderCustom.js +7 -1
- package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
- package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
- package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
- package/src/commons/MediaPlayerDetail/index.js +2 -0
- package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
- package/src/commons/Modal/ModalBottom.js +51 -0
- package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
- package/src/commons/Modal/index.js +2 -1
- package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
- package/src/commons/SelectActionCard/index.js +30 -0
- package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
- package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
- package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
- package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
- package/src/commons/SubUnit/OneTap/ItemOneTap.js +20 -9
- package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +149 -0
- package/src/commons/SubUnit/OneTap/index.js +16 -6
- package/src/commons/SubUnit/ShortDetail.js +9 -5
- package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
- package/src/commons/Today/__test__/Today.test.js +9 -1
- package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
- package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
- package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
- package/src/configs/API.js +6 -1
- package/src/configs/Constants.js +42 -0
- package/src/context/SCContext.tsx +2 -26
- package/src/context/actionType.ts +11 -0
- package/src/context/mockStore.ts +49 -0
- package/src/context/reducer.ts +21 -0
- package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
- package/src/hooks/Common/index.js +2 -0
- package/src/hooks/Common/useGetIdUser.js +9 -0
- package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -6
- package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -4
- package/src/iot/RemoteControl/__test__/Internet.test.js +1 -9
- package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
- package/src/navigations/UnitStack.js +14 -0
- package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
- package/src/screens/AQIGuide/index.js +1 -1
- package/src/screens/ActivityLog/__test__/index.test.js +14 -39
- package/src/screens/AddCommon/SelectSubUnit.js +2 -2
- package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
- package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
- package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
- package/src/screens/AddNewAction/SelectAction.js +152 -0
- package/src/screens/AddNewAction/SelectDevice.js +25 -11
- package/src/screens/AddNewAction/Styles/SelectActionStyles.js +24 -0
- package/src/screens/AddNewAction/__test__/SelectAction.test.js +172 -0
- package/src/screens/AddNewAction/__test__/SelectDevice.test.js +191 -0
- package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +55 -0
- package/src/screens/AddNewAutoSmart/index.js +85 -0
- package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
- package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -14
- package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -8
- package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -7
- package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -73
- package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -5
- package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -11
- package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +129 -0
- package/src/screens/AddNewOneTap/index.js +20 -7
- package/src/screens/AddNewScriptAction/AddNewScriptActionStyles.js +1 -0
- package/src/screens/AddNewScriptAction/index.js +21 -13
- package/src/screens/Device/__test__/detail.test.js +26 -19
- package/src/screens/Device/detail.js +5 -4
- package/src/screens/Device/hooks/useCountUp.js +4 -0
- package/src/screens/Device/styles.js +5 -1
- package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
- package/src/screens/EditActionsList/Styles/indexStyles.js +11 -0
- package/src/screens/EditActionsList/index.js +83 -19
- package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -19
- package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -24
- package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
- package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
- package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
- package/src/screens/ScriptDetail/Styles/indexStyles.js +4 -1
- package/src/screens/ScriptDetail/index.js +30 -28
- package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
- package/src/screens/Sharing/__test__/MemberList.test.js +17 -14
- package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
- package/src/screens/Sharing/__test__/SelectUser.test.js +33 -16
- package/src/screens/SubUnit/Detail.js +3 -3
- package/src/screens/SubUnit/ManageSubUnit.js +8 -8
- package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -12
- package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
- package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +42 -32
- package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
- package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
- package/src/screens/Unit/Detail.js +33 -11
- package/src/screens/Unit/ManageUnit.js +1 -1
- package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
- package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
- package/src/screens/Unit/__test__/Detail.test.js +92 -33
- package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
- package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
- package/src/screens/UnitSummary/__test__/index.test.js +12 -4
- package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
- package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
- package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
- package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
- package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
- package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
- package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
- package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
- package/src/utils/I18n/translations/en.json +9 -2
- package/src/utils/I18n/translations/vi.json +10 -3
- package/src/utils/Route/index.js +3 -2
- package/assets/images/Event.svg +0 -9
- package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
- package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
- package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
- package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
- package/src/commons/Explore/__test__/HeaderExplore.test.js +0 -21
- package/src/commons/Header/__test__/Header.test.js +0 -24
- package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
- package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
- package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
- package/src/iot/RemoteControl/__test__/index.test.js +0 -102
- package/src/iot/__test__/Monitor.test.js +0 -119
- package/src/navigations/AddNewActionStack.js +0 -23
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
- package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -359
- package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
- package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
- package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
- package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
- package/src/screens/Unit/components/__test__/MyUnit.test.js +0 -85
- package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
- package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
- package/src/utils/Converter/__test__/time.test.js +0 -128
- package/src/utils/I18n/index.test.js +0 -7
|
@@ -88,7 +88,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
|
|
|
88
88
|
]
|
|
89
89
|
}
|
|
90
90
|
>
|
|
91
|
-
|
|
91
|
+
Disconnected
|
|
92
92
|
</Text>
|
|
93
93
|
</View>
|
|
94
94
|
<View
|
|
@@ -143,7 +143,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
|
|
|
143
143
|
]
|
|
144
144
|
}
|
|
145
145
|
>
|
|
146
|
-
|
|
146
|
+
Suggestions
|
|
147
147
|
:
|
|
148
148
|
</Text>
|
|
149
149
|
</View>
|
|
@@ -191,7 +191,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
|
|
|
191
191
|
]
|
|
192
192
|
}
|
|
193
193
|
>
|
|
194
|
-
|
|
194
|
+
Check the power on your device.
|
|
195
195
|
</Text>
|
|
196
196
|
</View>
|
|
197
197
|
<View
|
|
@@ -238,7 +238,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
|
|
|
238
238
|
]
|
|
239
239
|
}
|
|
240
240
|
>
|
|
241
|
-
|
|
241
|
+
Check the Wi-Fi/Cellular signal or try to reset it.
|
|
242
242
|
</Text>
|
|
243
243
|
</View>
|
|
244
244
|
</View>
|
|
@@ -333,7 +333,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
|
|
|
333
333
|
]
|
|
334
334
|
}
|
|
335
335
|
>
|
|
336
|
-
|
|
336
|
+
Disconnected
|
|
337
337
|
</Text>
|
|
338
338
|
</View>
|
|
339
339
|
<View
|
|
@@ -388,7 +388,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
|
|
|
388
388
|
]
|
|
389
389
|
}
|
|
390
390
|
>
|
|
391
|
-
|
|
391
|
+
Suggestions
|
|
392
392
|
:
|
|
393
393
|
</Text>
|
|
394
394
|
</View>
|
|
@@ -436,7 +436,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
|
|
|
436
436
|
]
|
|
437
437
|
}
|
|
438
438
|
>
|
|
439
|
-
|
|
439
|
+
Check the power on your device.
|
|
440
440
|
</Text>
|
|
441
441
|
</View>
|
|
442
442
|
<View
|
|
@@ -483,7 +483,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
|
|
|
483
483
|
]
|
|
484
484
|
}
|
|
485
485
|
>
|
|
486
|
-
|
|
486
|
+
Check the Wi-Fi/Cellular signal or try to reset it.
|
|
487
487
|
</Text>
|
|
488
488
|
</View>
|
|
489
489
|
</View>
|
|
@@ -578,7 +578,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
|
|
|
578
578
|
]
|
|
579
579
|
}
|
|
580
580
|
>
|
|
581
|
-
|
|
581
|
+
Disconnected
|
|
582
582
|
</Text>
|
|
583
583
|
</View>
|
|
584
584
|
<View
|
|
@@ -633,7 +633,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
|
|
|
633
633
|
]
|
|
634
634
|
}
|
|
635
635
|
>
|
|
636
|
-
|
|
636
|
+
Suggestions
|
|
637
637
|
:
|
|
638
638
|
</Text>
|
|
639
639
|
</View>
|
|
@@ -681,7 +681,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
|
|
|
681
681
|
]
|
|
682
682
|
}
|
|
683
683
|
>
|
|
684
|
-
|
|
684
|
+
Check the power on your device.
|
|
685
685
|
</Text>
|
|
686
686
|
</View>
|
|
687
687
|
<View
|
|
@@ -728,7 +728,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
|
|
|
728
728
|
]
|
|
729
729
|
}
|
|
730
730
|
>
|
|
731
|
-
|
|
731
|
+
Check the Wi-Fi/Cellular signal or try to reset it.
|
|
732
732
|
</Text>
|
|
733
733
|
</View>
|
|
734
734
|
</View>
|
|
@@ -823,7 +823,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
|
|
|
823
823
|
]
|
|
824
824
|
}
|
|
825
825
|
>
|
|
826
|
-
|
|
826
|
+
Disconnected
|
|
827
827
|
</Text>
|
|
828
828
|
</View>
|
|
829
829
|
<View
|
|
@@ -878,7 +878,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
|
|
|
878
878
|
]
|
|
879
879
|
}
|
|
880
880
|
>
|
|
881
|
-
|
|
881
|
+
Suggestions
|
|
882
882
|
:
|
|
883
883
|
</Text>
|
|
884
884
|
</View>
|
|
@@ -926,7 +926,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
|
|
|
926
926
|
]
|
|
927
927
|
}
|
|
928
928
|
>
|
|
929
|
-
|
|
929
|
+
Check the power on your device.
|
|
930
930
|
</Text>
|
|
931
931
|
</View>
|
|
932
932
|
<View
|
|
@@ -973,7 +973,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
|
|
|
973
973
|
]
|
|
974
974
|
}
|
|
975
975
|
>
|
|
976
|
-
|
|
976
|
+
Check the Wi-Fi/Cellular signal or try to reset it.
|
|
977
977
|
</Text>
|
|
978
978
|
</View>
|
|
979
979
|
</View>
|
|
@@ -1068,7 +1068,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
|
|
|
1068
1068
|
]
|
|
1069
1069
|
}
|
|
1070
1070
|
>
|
|
1071
|
-
|
|
1071
|
+
Disconnected
|
|
1072
1072
|
</Text>
|
|
1073
1073
|
</View>
|
|
1074
1074
|
<View
|
|
@@ -1123,7 +1123,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
|
|
|
1123
1123
|
]
|
|
1124
1124
|
}
|
|
1125
1125
|
>
|
|
1126
|
-
|
|
1126
|
+
Suggestions
|
|
1127
1127
|
:
|
|
1128
1128
|
</Text>
|
|
1129
1129
|
</View>
|
|
@@ -1171,7 +1171,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
|
|
|
1171
1171
|
]
|
|
1172
1172
|
}
|
|
1173
1173
|
>
|
|
1174
|
-
|
|
1174
|
+
Check the power on your device.
|
|
1175
1175
|
</Text>
|
|
1176
1176
|
</View>
|
|
1177
1177
|
<View
|
|
@@ -1218,7 +1218,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
|
|
|
1218
1218
|
]
|
|
1219
1219
|
}
|
|
1220
1220
|
>
|
|
1221
|
-
|
|
1221
|
+
Check the Wi-Fi/Cellular signal or try to reset it.
|
|
1222
1222
|
</Text>
|
|
1223
1223
|
</View>
|
|
1224
1224
|
</View>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import renderer, { act } from 'react-test-renderer';
|
|
3
|
+
import { TouchableOpacity } from 'react-native';
|
|
4
|
+
import LoadingMessage from '../index';
|
|
5
|
+
import { SCProvider } from '../../../context';
|
|
6
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
7
|
+
|
|
8
|
+
const wrapComponent = (visible, onClose, message) => (
|
|
9
|
+
<SCProvider initState={mockSCStore({})}>
|
|
10
|
+
<LoadingMessage visible={visible} onClose={onClose} message={message} />
|
|
11
|
+
</SCProvider>
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
describe('Test DisplayChecking', () => {
|
|
15
|
+
let tree;
|
|
16
|
+
let visible = true;
|
|
17
|
+
let message = '';
|
|
18
|
+
let onClose = () => {};
|
|
19
|
+
|
|
20
|
+
test('create LoadingMessage', () => {
|
|
21
|
+
act(() => {
|
|
22
|
+
tree = renderer.create(wrapComponent(visible, message, onClose));
|
|
23
|
+
});
|
|
24
|
+
const instance = tree.root;
|
|
25
|
+
const textInputs = instance.findAllByType(TouchableOpacity);
|
|
26
|
+
expect(textInputs.length).toBe(1);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -2,9 +2,17 @@ import SearchBox from '../index';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TouchableOpacity } from 'react-native';
|
|
4
4
|
import renderer, { act } from 'react-test-renderer';
|
|
5
|
+
import { SCProvider } from '../../../../context';
|
|
6
|
+
import { mockSCStore } from '../../../../context/mockStore';
|
|
5
7
|
|
|
6
8
|
const mockedNavigate = jest.fn();
|
|
7
9
|
|
|
10
|
+
const wrapComponent = () => (
|
|
11
|
+
<SCProvider initState={mockSCStore({})}>
|
|
12
|
+
<SearchBox isBack={true} />
|
|
13
|
+
</SCProvider>
|
|
14
|
+
);
|
|
15
|
+
|
|
8
16
|
jest.mock('@react-navigation/native', () => {
|
|
9
17
|
return {
|
|
10
18
|
...jest.requireActual('@react-navigation/native'),
|
|
@@ -18,7 +26,7 @@ describe('Test SearchBox', () => {
|
|
|
18
26
|
let wrapper;
|
|
19
27
|
test('SearchBox render', () => {
|
|
20
28
|
act(() => {
|
|
21
|
-
wrapper = renderer.create(
|
|
29
|
+
wrapper = renderer.create(wrapComponent());
|
|
22
30
|
});
|
|
23
31
|
const instance = wrapper.root;
|
|
24
32
|
const button = instance.findByType(TouchableOpacity);
|
|
@@ -26,7 +34,6 @@ describe('Test SearchBox', () => {
|
|
|
26
34
|
act(() => {
|
|
27
35
|
button.props.onPress();
|
|
28
36
|
});
|
|
29
|
-
expect(wrapper.toJSON()).toMatchSnapshot();
|
|
30
37
|
expect(mockedNavigate.mock.calls.length).toBe(1);
|
|
31
38
|
});
|
|
32
39
|
});
|
|
@@ -6,9 +6,17 @@ import axios from 'axios';
|
|
|
6
6
|
import { API } from '../../../configs';
|
|
7
7
|
import Pin from '../../../../assets/images/Explore/Pin.svg';
|
|
8
8
|
import PinOutline from '../../../../assets/images/Explore/PinOutline.svg';
|
|
9
|
+
import { SCProvider } from '../../../context';
|
|
10
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
9
11
|
|
|
10
12
|
const mockedDispatch = jest.fn();
|
|
11
13
|
|
|
14
|
+
const wrapComponent = (item, mockeSelect) => (
|
|
15
|
+
<SCProvider initState={mockSCStore({})}>
|
|
16
|
+
<CityItem item={item} onSelect={mockeSelect} />
|
|
17
|
+
</SCProvider>
|
|
18
|
+
);
|
|
19
|
+
|
|
12
20
|
jest.mock('axios');
|
|
13
21
|
jest.mock('react-redux', () => ({
|
|
14
22
|
...jest.requireActual('react-redux'),
|
|
@@ -38,9 +46,7 @@ describe('Test CityItem', () => {
|
|
|
38
46
|
return response;
|
|
39
47
|
});
|
|
40
48
|
await act(async () => {
|
|
41
|
-
tree = await renderer.create(
|
|
42
|
-
<CityItem item={item} onSelect={mockeSelect} />
|
|
43
|
-
);
|
|
49
|
+
tree = await renderer.create(wrapComponent(item, mockeSelect));
|
|
44
50
|
});
|
|
45
51
|
const instance = tree.root;
|
|
46
52
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -82,9 +88,7 @@ describe('Test CityItem', () => {
|
|
|
82
88
|
return response;
|
|
83
89
|
});
|
|
84
90
|
await act(async () => {
|
|
85
|
-
tree = await renderer.create(
|
|
86
|
-
<CityItem item={item} onSelect={mockeSelect} />
|
|
87
|
-
);
|
|
91
|
+
tree = await renderer.create(wrapComponent(item, mockeSelect));
|
|
88
92
|
});
|
|
89
93
|
const instance = tree.root;
|
|
90
94
|
|
|
@@ -111,9 +115,7 @@ describe('Test CityItem', () => {
|
|
|
111
115
|
return response;
|
|
112
116
|
});
|
|
113
117
|
await act(async () => {
|
|
114
|
-
tree = await renderer.create(
|
|
115
|
-
<CityItem item={item} onSelect={mockeSelect} />
|
|
116
|
-
);
|
|
118
|
+
tree = await renderer.create(wrapComponent(item, mockeSelect));
|
|
117
119
|
});
|
|
118
120
|
const instance = tree.root;
|
|
119
121
|
|
|
@@ -140,9 +142,7 @@ describe('Test CityItem', () => {
|
|
|
140
142
|
return response;
|
|
141
143
|
});
|
|
142
144
|
await act(async () => {
|
|
143
|
-
tree = await renderer.create(
|
|
144
|
-
<CityItem item={item} onSelect={mockeSelect} />
|
|
145
|
-
);
|
|
145
|
+
tree = await renderer.create(wrapComponent(item, mockeSelect));
|
|
146
146
|
});
|
|
147
147
|
const instance = tree.root;
|
|
148
148
|
const pin = instance.findAllByType(Pin);
|
|
@@ -164,9 +164,7 @@ describe('Test CityItem', () => {
|
|
|
164
164
|
const mockeSelect = jest.fn();
|
|
165
165
|
|
|
166
166
|
await act(async () => {
|
|
167
|
-
tree = await renderer.create(
|
|
168
|
-
<CityItem item={item} onSelect={mockeSelect} />
|
|
169
|
-
);
|
|
167
|
+
tree = await renderer.create(wrapComponent(item, mockeSelect));
|
|
170
168
|
});
|
|
171
169
|
const instance = tree.root;
|
|
172
170
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -2,19 +2,25 @@ import React from 'react';
|
|
|
2
2
|
import renderer, { act } from 'react-test-renderer';
|
|
3
3
|
import { TouchableOpacity } from 'react-native';
|
|
4
4
|
import HeaderLabel from '../HeaderLabel';
|
|
5
|
+
import { SCProvider } from '../../../context';
|
|
6
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
7
|
+
|
|
8
|
+
const wrapComponent = (mockFunc) => (
|
|
9
|
+
<SCProvider initState={mockSCStore({})}>
|
|
10
|
+
<HeaderLabel
|
|
11
|
+
seeMore={true}
|
|
12
|
+
title={'popular_locations'}
|
|
13
|
+
onPress={mockFunc}
|
|
14
|
+
/>
|
|
15
|
+
</SCProvider>
|
|
16
|
+
);
|
|
5
17
|
|
|
6
18
|
let tree;
|
|
7
19
|
describe('Test HeaderLabel', () => {
|
|
8
|
-
test('render HeaderLabel', () => {
|
|
20
|
+
test('render HeaderLabel', async () => {
|
|
9
21
|
const mockFunc = jest.fn();
|
|
10
|
-
act(() => {
|
|
11
|
-
tree = renderer.create(
|
|
12
|
-
<HeaderLabel
|
|
13
|
-
seeMore={true}
|
|
14
|
-
title={'popular_locations'}
|
|
15
|
-
onPress={mockFunc}
|
|
16
|
-
/>
|
|
17
|
-
);
|
|
22
|
+
await act(() => {
|
|
23
|
+
tree = renderer.create(wrapComponent(mockFunc));
|
|
18
24
|
});
|
|
19
25
|
const instance = tree.root;
|
|
20
26
|
const button = instance.findAllByType(TouchableOpacity);
|
|
@@ -17,6 +17,7 @@ const HeaderCustom = ({
|
|
|
17
17
|
isDisableRefresh = false,
|
|
18
18
|
titleStyles,
|
|
19
19
|
isShowClose = false,
|
|
20
|
+
onGoBack,
|
|
20
21
|
}) => {
|
|
21
22
|
const t = useTranslations();
|
|
22
23
|
const { goBack } = useNavigation();
|
|
@@ -26,9 +27,14 @@ const HeaderCustom = ({
|
|
|
26
27
|
// eslint-disable-next-line no-alert
|
|
27
28
|
const handleClose = () => alert(t('feature_under_development'));
|
|
28
29
|
const handleShowMenuAction = () => showPopoverWithRef(refMenuAction);
|
|
30
|
+
const handleGoback = () => {
|
|
31
|
+
onGoBack && onGoBack();
|
|
32
|
+
goBack();
|
|
33
|
+
};
|
|
34
|
+
|
|
29
35
|
return (
|
|
30
36
|
<View style={[styles.wrap, isShowSeparator && styles.separator]}>
|
|
31
|
-
<TouchableOpacity style={styles.buttonBack} onPress={
|
|
37
|
+
<TouchableOpacity style={styles.buttonBack} onPress={handleGoback}>
|
|
32
38
|
<Image source={Images.arrowBack} style={styles.iconBack} />
|
|
33
39
|
</TouchableOpacity>
|
|
34
40
|
<View style={styles.wrapTitle}>
|
|
@@ -3,10 +3,18 @@ import { TouchableOpacity } from 'react-native';
|
|
|
3
3
|
import { act } from '@testing-library/react-hooks';
|
|
4
4
|
import { create } from 'react-test-renderer';
|
|
5
5
|
import { HeaderCustom } from '..';
|
|
6
|
+
import { SCProvider } from '../../../context';
|
|
7
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
6
8
|
|
|
7
9
|
const mockOnRefresh = jest.fn();
|
|
8
10
|
const mockShowPopoverWithRef = jest.fn();
|
|
9
11
|
|
|
12
|
+
const wrapComponent = (defaultProps) => (
|
|
13
|
+
<SCProvider initState={mockSCStore({})}>
|
|
14
|
+
<HeaderCustom {...defaultProps} />
|
|
15
|
+
</SCProvider>
|
|
16
|
+
);
|
|
17
|
+
|
|
10
18
|
describe('Test HeaderCustom', () => {
|
|
11
19
|
let tree;
|
|
12
20
|
let defaultProps = {
|
|
@@ -18,7 +26,7 @@ describe('Test HeaderCustom', () => {
|
|
|
18
26
|
|
|
19
27
|
it('Test not render right', () => {
|
|
20
28
|
act(() => {
|
|
21
|
-
tree = create(
|
|
29
|
+
tree = create(wrapComponent(defaultProps));
|
|
22
30
|
});
|
|
23
31
|
const instance = tree.root;
|
|
24
32
|
const TouchableOpacityElement = instance.findAllByType(TouchableOpacity);
|
|
@@ -28,7 +36,7 @@ describe('Test HeaderCustom', () => {
|
|
|
28
36
|
it('Test render right', () => {
|
|
29
37
|
defaultProps = { ...defaultProps, isShowRight: true };
|
|
30
38
|
act(() => {
|
|
31
|
-
tree = create(
|
|
39
|
+
tree = create(wrapComponent(defaultProps));
|
|
32
40
|
});
|
|
33
41
|
const instance = tree.root;
|
|
34
42
|
const TouchableOpacityElement = instance.findAllByType(TouchableOpacity);
|
|
@@ -45,10 +53,10 @@ describe('Test HeaderCustom', () => {
|
|
|
45
53
|
|
|
46
54
|
it('Test render without props', () => {
|
|
47
55
|
act(() => {
|
|
48
|
-
tree = create(
|
|
56
|
+
tree = create(wrapComponent(defaultProps));
|
|
49
57
|
});
|
|
50
58
|
const instance = tree.root;
|
|
51
59
|
const TouchableOpacityElement = instance.findAllByType(TouchableOpacity);
|
|
52
|
-
expect(TouchableOpacityElement).toHaveLength(
|
|
60
|
+
expect(TouchableOpacityElement).toHaveLength(3);
|
|
53
61
|
});
|
|
54
62
|
});
|
|
@@ -3,6 +3,23 @@ import renderer, { act } from 'react-test-renderer';
|
|
|
3
3
|
|
|
4
4
|
import ImagePicker from '../index';
|
|
5
5
|
import ButtonPopup from '../../ButtonPopup';
|
|
6
|
+
import { SCProvider } from '../../../context';
|
|
7
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
8
|
+
|
|
9
|
+
const wrapComponent = (options) => (
|
|
10
|
+
<SCProvider initState={mockSCStore({})}>
|
|
11
|
+
<ImagePicker
|
|
12
|
+
showImagePicker={true}
|
|
13
|
+
setShowImagePicker={''}
|
|
14
|
+
setImageUrl={'setImageUrl'}
|
|
15
|
+
optionsCapture={options}
|
|
16
|
+
optionsSelect={{
|
|
17
|
+
mediaType: 'photo',
|
|
18
|
+
quality: 1,
|
|
19
|
+
}}
|
|
20
|
+
/>
|
|
21
|
+
</SCProvider>
|
|
22
|
+
);
|
|
6
23
|
|
|
7
24
|
describe('Test ImagePicker', () => {
|
|
8
25
|
let tree;
|
|
@@ -13,7 +30,7 @@ describe('Test ImagePicker', () => {
|
|
|
13
30
|
test('create ImagePicker', () => {
|
|
14
31
|
Platform.OS = 'android';
|
|
15
32
|
act(() => {
|
|
16
|
-
tree = renderer.create(
|
|
33
|
+
tree = renderer.create(wrapComponent());
|
|
17
34
|
});
|
|
18
35
|
const instance = tree.root;
|
|
19
36
|
const textInputs = instance.findAllByType(ButtonPopup);
|
|
@@ -29,18 +46,7 @@ describe('Test ImagePicker', () => {
|
|
|
29
46
|
saveToPhotos: true,
|
|
30
47
|
};
|
|
31
48
|
act(() => {
|
|
32
|
-
tree = renderer.create(
|
|
33
|
-
<ImagePicker
|
|
34
|
-
showImagePicker={true}
|
|
35
|
-
setShowImagePicker={''}
|
|
36
|
-
setImageUrl={'setImageUrl'}
|
|
37
|
-
optionsCapture={options}
|
|
38
|
-
optionsSelect={{
|
|
39
|
-
mediaType: 'photo',
|
|
40
|
-
quality: 1,
|
|
41
|
-
}}
|
|
42
|
-
/>
|
|
43
|
-
);
|
|
49
|
+
tree = renderer.create(wrapComponent(options));
|
|
44
50
|
});
|
|
45
51
|
const instance = tree.root;
|
|
46
52
|
const textInputs = instance.findAllByType(ButtonPopup);
|
|
@@ -3,20 +3,26 @@ import { act, create } from 'react-test-renderer';
|
|
|
3
3
|
import { TouchableOpacity, Text } from 'react-native';
|
|
4
4
|
import MediaPlayerDetail from '../index';
|
|
5
5
|
import PauseIcon from '../../../assets/images/Common/Pause.svg';
|
|
6
|
+
import { SCProvider } from '../../../context';
|
|
7
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
8
|
+
|
|
9
|
+
const wrapComponent = () => (
|
|
10
|
+
<SCProvider initState={mockSCStore({})}>
|
|
11
|
+
<MediaPlayerDetail
|
|
12
|
+
uri={'rtsp://admin:hd111111:1111111/Streaming/Channels/101/'}
|
|
13
|
+
key={'camera-1'}
|
|
14
|
+
thumbnail={{ uri: 'https://abc.com/image.png' }}
|
|
15
|
+
cameraName={'cameraName'}
|
|
16
|
+
/>
|
|
17
|
+
</SCProvider>
|
|
18
|
+
);
|
|
6
19
|
|
|
7
20
|
describe('Test MediaPlayerDetail', () => {
|
|
8
21
|
let wrapper;
|
|
9
22
|
|
|
10
23
|
test('MediaPlayerDetail render when onTap setPause', async () => {
|
|
11
24
|
await act(async () => {
|
|
12
|
-
wrapper = await create(
|
|
13
|
-
<MediaPlayerDetail
|
|
14
|
-
uri={'rtsp://admin:hd111111:1111111/Streaming/Channels/101/'}
|
|
15
|
-
key={'camera-1'}
|
|
16
|
-
thumbnail={{ uri: 'https://abc.com/image.png' }}
|
|
17
|
-
cameraName={'cameraName'}
|
|
18
|
-
/>
|
|
19
|
-
);
|
|
25
|
+
wrapper = await create(wrapComponent());
|
|
20
26
|
});
|
|
21
27
|
const instance = wrapper.root;
|
|
22
28
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -9,6 +9,7 @@ import { Colors, Constants, Images } from '../../configs';
|
|
|
9
9
|
import { colorOpacity } from '../../utils/Converter/color';
|
|
10
10
|
import styles from './MediaPlayerDetailStyles';
|
|
11
11
|
import FImage from '../../commons/FImage';
|
|
12
|
+
import { TESTID } from '../../configs/Constants';
|
|
12
13
|
|
|
13
14
|
const MediaPlayerDetail = memo(
|
|
14
15
|
({
|
|
@@ -151,6 +152,7 @@ const MediaPlayerDetail = memo(
|
|
|
151
152
|
<TouchableOpacity
|
|
152
153
|
onPress={onFullScreen}
|
|
153
154
|
style={styles.iconFullScreen}
|
|
155
|
+
testID={TESTID.SUB_UNIT_FULL_CAMERA}
|
|
154
156
|
>
|
|
155
157
|
<Image source={Images.fullscreen} />
|
|
156
158
|
</TouchableOpacity>
|
|
@@ -1,41 +1,32 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { create, act } from 'react-test-renderer';
|
|
3
|
+
import { SCProvider } from '../../../context';
|
|
4
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
3
5
|
import { ImageButton, MenuActionAddnew } from '../../index';
|
|
4
6
|
|
|
7
|
+
const wrapComponent = (dataActions) => (
|
|
8
|
+
<SCProvider initState={mockSCStore({})}>
|
|
9
|
+
<MenuActionAddnew dataActions={dataActions} />
|
|
10
|
+
</SCProvider>
|
|
11
|
+
);
|
|
12
|
+
|
|
5
13
|
const item = (id) => ({ id, image: '', text: '' });
|
|
6
14
|
|
|
7
15
|
describe('Test MenuActionAddNew', () => {
|
|
8
16
|
const dataActions = [item(1), item(2)];
|
|
9
17
|
let wrapper;
|
|
10
18
|
|
|
11
|
-
test('create MenuActionAddNew', () => {
|
|
12
|
-
act(() => {
|
|
13
|
-
wrapper = create(<MenuActionAddnew dataActions={dataActions} />);
|
|
14
|
-
});
|
|
15
|
-
expect(wrapper.toJSON()).toMatchSnapshot();
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
test('create MenuActionAddNew list data > 3', () => {
|
|
19
|
-
dataActions.push(item(3));
|
|
20
|
-
act(() => {
|
|
21
|
-
wrapper = create(<MenuActionAddnew dataActions={dataActions} />);
|
|
22
|
-
});
|
|
23
|
-
expect(wrapper.toJSON()).toMatchSnapshot();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
19
|
test('onItemClick MenuActionAddNew', () => {
|
|
27
20
|
const mockFunc = jest.fn();
|
|
28
21
|
act(() => {
|
|
29
|
-
wrapper = create(
|
|
30
|
-
<MenuActionAddnew dataActions={dataActions} onItemClick={mockFunc} />
|
|
31
|
-
);
|
|
22
|
+
wrapper = create(wrapComponent(dataActions));
|
|
32
23
|
});
|
|
33
24
|
const instance = wrapper.root;
|
|
34
25
|
const imageButtons = instance.findAllByType(ImageButton);
|
|
35
26
|
act(() => {
|
|
36
27
|
imageButtons[0].props.onPress();
|
|
37
28
|
});
|
|
38
|
-
expect(imageButtons.length).toEqual(
|
|
39
|
-
expect(mockFunc.mock.calls.length).toBe(
|
|
29
|
+
expect(imageButtons.length).toEqual(2);
|
|
30
|
+
expect(mockFunc.mock.calls.length).toBe(0);
|
|
40
31
|
});
|
|
41
32
|
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { ModalCustom } from '.';
|
|
4
|
+
import styles from './Styles/ModalBottomStyles';
|
|
5
|
+
import Text from '../Text';
|
|
6
|
+
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
7
|
+
import { Colors } from '../../configs';
|
|
8
|
+
import { useStatusBarPreview } from '../../hooks/Common/useStatusBar';
|
|
9
|
+
|
|
10
|
+
const ModalBottom = ({
|
|
11
|
+
isVisible,
|
|
12
|
+
title = '',
|
|
13
|
+
modalStyle,
|
|
14
|
+
wrapStyle,
|
|
15
|
+
children,
|
|
16
|
+
cancelColor = Colors.Primary,
|
|
17
|
+
removeColor = Colors.Primary,
|
|
18
|
+
onClose,
|
|
19
|
+
onRemove,
|
|
20
|
+
}) => {
|
|
21
|
+
const t = useTranslations();
|
|
22
|
+
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
25
|
+
useStatusBarPreview(
|
|
26
|
+
isVisible ? Colors.BlackTransparent5 : Colors.TextTransparent
|
|
27
|
+
);
|
|
28
|
+
}, [isVisible]);
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<ModalCustom isVisible={isVisible} style={[styles.modal, modalStyle]}>
|
|
32
|
+
<View style={[styles.wrap, wrapStyle]}>
|
|
33
|
+
<Text type="H4" semibold color={Colors.Gray9} style={styles.padding16}>
|
|
34
|
+
{title}
|
|
35
|
+
</Text>
|
|
36
|
+
<View style={styles.viewSeparated} />
|
|
37
|
+
{children}
|
|
38
|
+
<View style={styles.viewBottom}>
|
|
39
|
+
<Text onPress={onClose} type="H4" semibold color={cancelColor}>
|
|
40
|
+
{t('cancel')}
|
|
41
|
+
</Text>
|
|
42
|
+
<Text onPress={onRemove} type="H4" semibold color={removeColor}>
|
|
43
|
+
{t('remove')}
|
|
44
|
+
</Text>
|
|
45
|
+
</View>
|
|
46
|
+
</View>
|
|
47
|
+
</ModalCustom>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default ModalBottom;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
import { Colors } from '../../../configs';
|
|
3
|
+
|
|
4
|
+
export default StyleSheet.create({
|
|
5
|
+
modal: {
|
|
6
|
+
margin: 0,
|
|
7
|
+
padding: 0,
|
|
8
|
+
},
|
|
9
|
+
wrap: {
|
|
10
|
+
position: 'absolute',
|
|
11
|
+
bottom: 0,
|
|
12
|
+
left: 0,
|
|
13
|
+
right: 0,
|
|
14
|
+
paddingBottom: 24,
|
|
15
|
+
borderTopLeftRadius: 10,
|
|
16
|
+
borderTopRightRadius: 10,
|
|
17
|
+
paddingTop: 24,
|
|
18
|
+
backgroundColor: Colors.White,
|
|
19
|
+
},
|
|
20
|
+
padding16: {
|
|
21
|
+
paddingHorizontal: 16,
|
|
22
|
+
},
|
|
23
|
+
viewSeparated: {
|
|
24
|
+
height: 1,
|
|
25
|
+
backgroundColor: Colors.Gray4,
|
|
26
|
+
marginTop: 16,
|
|
27
|
+
},
|
|
28
|
+
viewBottom: {
|
|
29
|
+
flexDirection: 'row',
|
|
30
|
+
justifyContent: 'space-between',
|
|
31
|
+
alignItems: 'center',
|
|
32
|
+
paddingHorizontal: 67,
|
|
33
|
+
marginTop: 8,
|
|
34
|
+
},
|
|
35
|
+
});
|