ipanel-rnapp-ajb-base 1.0.0

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 (155) hide show
  1. package/app/.local_dev/DemoPage.js +46 -0
  2. package/app/.local_dev/env.js +1 -0
  3. package/app/.local_dev/polyfill.js +83 -0
  4. package/app/App.js +485 -0
  5. package/app/api/homedApi.js +42 -0
  6. package/app/api/index.js +2 -0
  7. package/app/api/ipanelCloudApi.js +796 -0
  8. package/app/assets/img/add.png +0 -0
  9. package/app/assets/img/add_img.png +0 -0
  10. package/app/assets/img/album.png +0 -0
  11. package/app/assets/img/album2.png +0 -0
  12. package/app/assets/img/album3.png +0 -0
  13. package/app/assets/img/album@2x.png +0 -0
  14. package/app/assets/img/album@3x.png +0 -0
  15. package/app/assets/img/audioRecordBar.png +0 -0
  16. package/app/assets/img/bootom_bar_bg.png +0 -0
  17. package/app/assets/img/close.png +0 -0
  18. package/app/assets/img/computer.png +0 -0
  19. package/app/assets/img/confirm.png +0 -0
  20. package/app/assets/img/delete_pic.png +0 -0
  21. package/app/assets/img/disabled.png +0 -0
  22. package/app/assets/img/goBack.png +0 -0
  23. package/app/assets/img/goBack2.png +0 -0
  24. package/app/assets/img/ischeck.png +0 -0
  25. package/app/assets/img/launch_bg.png +0 -0
  26. package/app/assets/img/launch_bg_panyu.png +0 -0
  27. package/app/assets/img/launch_logo.png +0 -0
  28. package/app/assets/img/launch_logo_panyu.png +0 -0
  29. package/app/assets/img/launch_text.png +0 -0
  30. package/app/assets/img/launch_text_panyu.png +0 -0
  31. package/app/assets/img/link.png +0 -0
  32. package/app/assets/img/login_bg.png +0 -0
  33. package/app/assets/img/login_bg_new.png +0 -0
  34. package/app/assets/img/login_left.png +0 -0
  35. package/app/assets/img/login_right.png +0 -0
  36. package/app/assets/img/nocheck.png +0 -0
  37. package/app/assets/img/personal.png +0 -0
  38. package/app/assets/img/photo.png +0 -0
  39. package/app/assets/img/photo@2x.png +0 -0
  40. package/app/assets/img/photo@3x.png +0 -0
  41. package/app/assets/img/protocol_checked.png +0 -0
  42. package/app/assets/img/qiehuan.png +0 -0
  43. package/app/assets/img/scan_border_bottom_left.png +0 -0
  44. package/app/assets/img/scan_border_bottom_right.png +0 -0
  45. package/app/assets/img/scan_border_top_left.png +0 -0
  46. package/app/assets/img/scan_border_top_right.png +0 -0
  47. package/app/assets/img/scan_move.png +0 -0
  48. package/app/assets/img/szjt.png +0 -0
  49. package/app/assets/img/tab.png +0 -0
  50. package/app/assets/img/tykz.png +0 -0
  51. package/app/assets/img/update_bg.png +0 -0
  52. package/app/assets/img/video.png +0 -0
  53. package/app/assets/img/video@2x.png +0 -0
  54. package/app/assets/img/video@3x.png +0 -0
  55. package/app/assets/img/worker.png +0 -0
  56. package/app/assets/img/wx.png +0 -0
  57. package/app/assets/img/ykq.png +0 -0
  58. package/app/assets/img/zfb.png +0 -0
  59. package/app/base.js +342 -0
  60. package/app/components/VersionUpdateConfirm.js +117 -0
  61. package/app/components/common/AccordionCell/index.js +67 -0
  62. package/app/components/common/ActionPicker/BasicPicker.js +136 -0
  63. package/app/components/common/ActionPicker/index.js +106 -0
  64. package/app/components/common/AddressPicker/index.js +211 -0
  65. package/app/components/common/Card/index.js +19 -0
  66. package/app/components/common/Cell/index.js +381 -0
  67. package/app/components/common/CustomDialog/index.js +120 -0
  68. package/app/components/common/CustomTabBar/index.js +157 -0
  69. package/app/components/common/CustomTabBar_bak/TabBarInput.js +210 -0
  70. package/app/components/common/CustomTabBar_bak/index.js +832 -0
  71. package/app/components/common/DateTimingPicker/index.js +254 -0
  72. package/app/components/common/Dialog/Notify.js +36 -0
  73. package/app/components/common/Dialog/baseDialog.js +146 -0
  74. package/app/components/common/Dialog/index.js +113 -0
  75. package/app/components/common/Dialog/prompt.js +145 -0
  76. package/app/components/common/Dialog/quickSelect.js +54 -0
  77. package/app/components/common/Dialog/select.js +125 -0
  78. package/app/components/common/Dialog/styles.js +167 -0
  79. package/app/components/common/Loading/index.js +71 -0
  80. package/app/components/common/LoginType/index.js +171 -0
  81. package/app/components/common/LoginType/protocol.js +160 -0
  82. package/app/components/common/Notify/index.js +68 -0
  83. package/app/components/common/OnceTouchable/index.js +33 -0
  84. package/app/components/common/PaymentPicker/index.js +264 -0
  85. package/app/components/common/ProductOrderPicker/index.js +524 -0
  86. package/app/components/common/ScreenBackHeader/index.js +144 -0
  87. package/app/components/common/ScrollPicker/index.js +232 -0
  88. package/app/components/common/SelectPicker/index.js +171 -0
  89. package/app/components/common/SmsCodeInput/index.js +93 -0
  90. package/app/components/common/SmsCodeInput/indexNew.js +101 -0
  91. package/app/components/common/Steps/index.js +126 -0
  92. package/app/components/common/Tag/index.js +17 -0
  93. package/app/components/common/Toast/index.js +103 -0
  94. package/app/components/common/WeekDaysPicker/index.js +196 -0
  95. package/app/components/index.js +8 -0
  96. package/app/components/iot/AddDeviceActionSheet/index.js +934 -0
  97. package/app/components/iot/AddressActionSheet/index.js +91 -0
  98. package/app/components/iot/RoomActionSheet/index.js +205 -0
  99. package/app/components/iot/ViewDeviceActionSheet/index.js +834 -0
  100. package/app/components/sheets.js +30 -0
  101. package/app/eventBus/index.js +54 -0
  102. package/app/hooks/checkLogin.js +30 -0
  103. package/app/hooks/shopMessageManager.js +308 -0
  104. package/app/hooks/useAddress.js +179 -0
  105. package/app/hooks/useAddress2.js +587 -0
  106. package/app/hooks/useDebounceFn.js +6 -0
  107. package/app/hooks/useDynamicPackages.js +22 -0
  108. package/app/hooks/useKeyboard.js +25 -0
  109. package/app/hooks/useLatest.js +10 -0
  110. package/app/hooks/useMessageManager.js +368 -0
  111. package/app/hooks/useNavigationFocus.js +19 -0
  112. package/app/hooks/useUser.js +56 -0
  113. package/app/screens/BaseScreen.js +389 -0
  114. package/app/screens/CommonScreens/BindPhoneScreen/index.js +179 -0
  115. package/app/screens/CommonScreens/BossScreen/index.js +138 -0
  116. package/app/screens/CommonScreens/DeviceAnswerDetailScreen/index.js +50 -0
  117. package/app/screens/CommonScreens/DeviceFeedbackScreen/index.js +365 -0
  118. package/app/screens/CommonScreens/EditInvoiceTitleScreen/index.js +279 -0
  119. package/app/screens/CommonScreens/FamilyDetailScreen/index.js +421 -0
  120. package/app/screens/CommonScreens/InvoiceTitleListScreen/index.js +118 -0
  121. package/app/screens/CommonScreens/OperatorSelectScreen/index.js +315 -0
  122. package/app/screens/CommonScreens/PersonalScreen/index.js +348 -0
  123. package/app/screens/CommonScreens/ScanQRCodeScreen/index.js +407 -0
  124. package/app/screens/CommonScreens/TvAlbumScreen/index.js +407 -0
  125. package/app/screens/LoginScreen/OpenLogSheet.js +241 -0
  126. package/app/screens/LoginScreen/index.js +920 -0
  127. package/app/screens/LoginScreen/indexNew.js +1354 -0
  128. package/app/screens/ResePassword/index.js +364 -0
  129. package/app/screens/SbkScreen.js +19 -0
  130. package/app/screens/WebviewScreen.js +41 -0
  131. package/app/storage/index.js +166 -0
  132. package/app/utils/EventEmitter.js +43 -0
  133. package/app/utils/RootNavigation.js +32 -0
  134. package/app/utils/SBK_plugin/convert.js +90 -0
  135. package/app/utils/SBK_plugin/convertStatus.js +250 -0
  136. package/app/utils/SBK_plugin/eventProcess.js +339 -0
  137. package/app/utils/SBK_plugin/index.js +32 -0
  138. package/app/utils/SBK_plugin/ipanelDeviceToSbkDevice.js +68 -0
  139. package/app/utils/SBK_plugin/sbk_defs.js +191 -0
  140. package/app/utils/StyleComposite.js +37 -0
  141. package/app/utils/applyPermissions.js +251 -0
  142. package/app/utils/bundleUpdater.js +46 -0
  143. package/app/utils/common.js +380 -0
  144. package/app/utils/config.js +47 -0
  145. package/app/utils/errCodes.js +3 -0
  146. package/app/utils/homedData.js +57 -0
  147. package/app/utils/http.js +178 -0
  148. package/app/utils/notice.js +15 -0
  149. package/app/utils/priceConversion.js +30 -0
  150. package/app/utils/registerDialog.js +90 -0
  151. package/app/utils/scaleSize.js +12 -0
  152. package/app/utils/soundPlayer.js +85 -0
  153. package/bin/local-dev.js +7 -0
  154. package/index.js +8 -0
  155. package/package.json +18 -0
@@ -0,0 +1,210 @@
1
+ import React, {useState, forwardRef, useRef, useImperativeHandle} from 'react';
2
+ import {
3
+ View,
4
+ Text,
5
+ StyleSheet,
6
+ TextInput,
7
+ TouchableOpacity,
8
+ Platform,
9
+ KeyboardAvoidingView,
10
+ } from 'react-native';
11
+ import {Icon, Image} from '@rneui/themed';
12
+
13
+ const INPUT_TYPE = {
14
+ TEXT: 'text',
15
+ VOICE: 'voice',
16
+ };
17
+
18
+ const TabBarInput = forwardRef(
19
+ (
20
+ {
21
+ style,
22
+ showMoreArea,
23
+ onResponderGrant,
24
+ onResponderMove,
25
+ onResponderRelease,
26
+ onInputTypeChange,
27
+ onInputFocus,
28
+ onInputBlur,
29
+ onInputSubmit,
30
+ onMoreBtnPress,
31
+ },
32
+ ref,
33
+ ) => {
34
+ const inputRef = useRef(null);
35
+ const [inputType, setInputType] = useState(INPUT_TYPE.VOICE);
36
+ const [inputText, setInputText] = useState('');
37
+ const [inputAutoFocus, setInputAutoFocus] = useState(false);
38
+
39
+ useImperativeHandle(ref, () => {
40
+ return {
41
+ blur: () => {
42
+ inputRef.current?.blur();
43
+ },
44
+
45
+ toggleInputType: () => {
46
+ handleKeyboardPress();
47
+ },
48
+ };
49
+ });
50
+
51
+ const handleKeyboardPress = () => {
52
+ let type;
53
+
54
+ if (inputType === INPUT_TYPE.VOICE) {
55
+ setInputAutoFocus(true);
56
+ type = INPUT_TYPE.TEXT;
57
+ } else {
58
+ type = INPUT_TYPE.VOICE;
59
+ }
60
+ setInputType(type);
61
+
62
+ onInputTypeChange(type);
63
+ };
64
+ const handleShowMoreArea = () => {
65
+ onMoreBtnPress();
66
+ };
67
+ const handleKeyBoardSubmit = async () => {
68
+ onInputSubmit(inputText);
69
+ setInputText('');
70
+ inputRef.current?.blur();
71
+ handleKeyboardPress();
72
+ };
73
+
74
+ const textFocusContainerStyle = {
75
+ backgroundColor: inputType === INPUT_TYPE.VOICE ? 'transparent' : '#fff',
76
+ };
77
+ const textFocusKeyboardIconStyle = {
78
+ width: inputType === INPUT_TYPE.VOICE ? 45 : 60,
79
+ };
80
+ const moreBtnRotateStyle = {
81
+ transform: [
82
+ {
83
+ rotateZ: showMoreArea ? '45deg' : '0deg',
84
+ },
85
+ ],
86
+ };
87
+
88
+ return (
89
+ <View
90
+ onStartShouldSetResponder={evt => true}
91
+ onMoveShouldSetResponder={evt => true}
92
+ onResponderGrant={inputType === INPUT_TYPE.VOICE && onResponderGrant}
93
+ onResponderMove={inputType === INPUT_TYPE.VOICE && onResponderMove}
94
+ onResponderRelease={
95
+ inputType === INPUT_TYPE.VOICE && onResponderRelease
96
+ }
97
+ style={[styles.container, style]}>
98
+ <View style={[styles.containerInner, textFocusContainerStyle]}>
99
+ {inputType === INPUT_TYPE.TEXT && (
100
+ <TouchableOpacity
101
+ style={[styles.keyboardIcon, textFocusKeyboardIconStyle]}
102
+ activeOpacity={0.9}
103
+ onPressIn={handleKeyboardPress}>
104
+ <Icon
105
+ name={
106
+ inputType === INPUT_TYPE.TEXT ? 'keyboard-voice' : 'keyboard'
107
+ }
108
+ type="material"
109
+ color="#999"
110
+ size={30}
111
+ />
112
+ </TouchableOpacity>
113
+ )}
114
+
115
+ {inputType === INPUT_TYPE.VOICE ? (
116
+ <Image
117
+ source={require('../../../assets/img/audioRecordBar.png')}
118
+ style={styles.voiceText}
119
+ />
120
+ ) : (
121
+ <>
122
+ <TextInput
123
+ ref={inputRef}
124
+ value={inputText}
125
+ autoFocus={inputAutoFocus}
126
+ style={styles.inputTextStyle}
127
+ placeholder="请输入..."
128
+ multiline
129
+ onChangeText={text => setInputText(text)}
130
+ // onSubmitEditing={handleKeyBoardSubmit}
131
+ onFocus={onInputFocus}
132
+ onBlur={onInputBlur}
133
+ />
134
+ {inputText.trim() ? (
135
+ <TouchableOpacity
136
+ activeOpacity={0.8}
137
+ onPressIn={handleKeyBoardSubmit}>
138
+ <View style={styles.sendBtn}>
139
+ <Text style={styles.sendBtnText}>发送</Text>
140
+ </View>
141
+ </TouchableOpacity>
142
+ ) : null}
143
+ </>
144
+ )}
145
+
146
+ {inputType === INPUT_TYPE.VOICE || inputText.trim() ? null : (
147
+ <TouchableOpacity
148
+ style={[styles.keyboardIcon, textFocusKeyboardIconStyle]}
149
+ activeOpacity={0.9}
150
+ onPressIn={handleShowMoreArea}>
151
+ <Icon
152
+ name="add"
153
+ type="ionicon"
154
+ color="#999"
155
+ size={30}
156
+ style={moreBtnRotateStyle}
157
+ />
158
+ </TouchableOpacity>
159
+ )}
160
+ </View>
161
+ </View>
162
+ );
163
+ },
164
+ );
165
+
166
+ const styles = StyleSheet.create({
167
+ container: {
168
+ alignItems: 'center',
169
+ justifyContent: 'center',
170
+ },
171
+ containerInner: {
172
+ width: '100%',
173
+ borderRadius: 25,
174
+ alignItems: 'center',
175
+ justifyContent: 'center',
176
+ flexDirection: 'row',
177
+ },
178
+ voiceText: {
179
+ width: 64,
180
+ height: 50,
181
+ },
182
+ keyboardIcon: {
183
+ width: 45,
184
+ },
185
+ inputTextStyle: {
186
+ flex: 1,
187
+ minHeight: 40,
188
+ fontSize: 16,
189
+ color: '#000',
190
+ borderWidth: 1,
191
+ borderColor: 'rgba(249, 249, 249, 1)',
192
+ borderRadius: 20,
193
+ paddingHorizontal: 13,
194
+ paddingVertical: 7,
195
+ },
196
+ sendBtn: {
197
+ height: 26,
198
+ backgroundColor: 'rgba(234, 96, 0, 1)',
199
+ borderRadius: 13,
200
+ paddingHorizontal: 14,
201
+ marginHorizontal: 14,
202
+ },
203
+ sendBtnText: {
204
+ fontSize: 14,
205
+ color: '#fff',
206
+ lineHeight: 26,
207
+ },
208
+ });
209
+
210
+ export default TabBarInput;