@jescon-technologies/react-native-ui-kit 0.0.1 → 0.0.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 (59) hide show
  1. package/index.js +70 -0
  2. package/package.json +25 -3
  3. package/src/Alerts/AAlert.js +1 -1
  4. package/src/HOC/ConfirmOverlay.js +192 -0
  5. package/src/HOC/HAbsolute.js +56 -0
  6. package/src/HOC/HDiscontinue.js +105 -0
  7. package/src/HOC/HHeading.js +70 -0
  8. package/src/HOC/HMoreButton.js +88 -0
  9. package/src/HOC/HNatureHeading.js +402 -0
  10. package/src/HOC/HOCIcons.js +80 -0
  11. package/src/HOC/HOverlay.js +99 -0
  12. package/src/HOC/HOverlayCentered.js +140 -0
  13. package/src/HOC/HShadowButton.js +45 -0
  14. package/src/HOC/HShadowCountButton.js +82 -0
  15. package/src/HOC/OptionOverlay.js +48 -0
  16. package/src/Media/AudioScreen.js +347 -0
  17. package/src/Media/BarcodeScan.js +145 -0
  18. package/src/Media/CAudioPlay.js +228 -0
  19. package/src/Media/CCaptureImageWithoutEdit.js +330 -0
  20. package/src/Media/CImageGallery.js +289 -0
  21. package/src/Media/CImageZoom.js +82 -0
  22. package/src/Media/CSingleImage.js +391 -0
  23. package/src/Media/CSketchCanvas.js +76 -0
  24. package/src/Media/CVideoPlay.js +31 -0
  25. package/src/Media/DocumentScreen.js +367 -0
  26. package/src/Media/DrawingScreen.js +582 -0
  27. package/src/Media/ImageScreen.js +313 -0
  28. package/src/Media/RecordAudio.js +250 -0
  29. package/src/Media/RecordVideo.js +223 -0
  30. package/src/Media/VideoScreen.js +383 -0
  31. package/src/StaticComponents/SAlphabet.js +47 -0
  32. package/src/StaticComponents/SCheckBox.js +42 -0
  33. package/src/StaticComponents/SDatePicker.js +208 -0
  34. package/src/StaticComponents/SDatePickerLabel.js +253 -0
  35. package/src/StaticComponents/SDatePickerNew.js +258 -0
  36. package/src/StaticComponents/SDateTimePickerNew.js +381 -0
  37. package/src/StaticComponents/SDropDownGenerate.js +450 -0
  38. package/src/StaticComponents/SDropDownHoc.js +636 -0
  39. package/src/StaticComponents/SDropDownIcon.js +500 -0
  40. package/src/StaticComponents/SMenuBox.js +131 -0
  41. package/src/StaticComponents/SOverlay.js +177 -0
  42. package/src/StaticComponents/SOverlayTextInput.js +109 -0
  43. package/src/StaticComponents/SSearch.js +438 -0
  44. package/src/StaticComponents/SSearchBar.js +53 -0
  45. package/src/StaticComponents/SSpeedDial.js +303 -0
  46. package/src/StaticComponents/STextInput.js +289 -0
  47. package/src/StaticComponents/STextInputProps.js +36 -0
  48. package/src/StaticComponents/STimePicker.js +171 -0
  49. package/src/StaticComponents/STimingDropDownNew.js +1589 -0
  50. package/src/StaticComponents/STimingSwitch.js +34 -0
  51. package/src/layout/CContainerView.js +21 -0
  52. package/src/layout/CDetailView.js +81 -0
  53. package/src/layout/FooterBlock.js +0 -3
  54. package/src/layout/HeaderBlock.js +353 -0
  55. package/src/index.js +0 -15
  56. package/src/screens/ForgotPassword.js +0 -346
  57. package/src/screens/Login.js +0 -328
  58. package/src/screens/Splash.js +0 -788
  59. /package/src/{components → layout}/Loader.js +0 -0
@@ -0,0 +1,34 @@
1
+ import React, { useState } from 'react';
2
+ import { View, Text, Switch } from 'react-native';
3
+ import { Global } from '../Common/Global';
4
+ import { ValueCheck } from '../CommonStyle/ComponentFunctions';
5
+ import { normalize } from '../CommonStyle/componentStyle';
6
+
7
+ export default function STimingSwitch(props) {
8
+ const [refresh, setRefresh] = useState(0);
9
+ const [data, setData] = useState(props.data);
10
+ return (
11
+ <View style={{ flexDirection: 'row' ,borderWidth: 0, marginTop:ValueCheck(props.type) ? 0 : 19,alignItems:'center',justifyContent:'center',marginHorizontal:5}}>
12
+ {data.map((selectslot, k) => {
13
+ return (
14
+ <View key={k} style={{alignItems:'center',justifyContent:'center'}}>
15
+ <Switch
16
+ trackColor={{ false: '#767577', true: Global.AppTheme.primary_color }}
17
+ thumbColor={'lightgrey'}
18
+ onChange={() => getSwitch(selectslot)}
19
+ value={selectslot.selected}
20
+ />
21
+ <Text style={{ color: 'black', fontWeight: 'bold', fontSize: normalize(10) }}>{selectslot.slotname}</Text>
22
+ </View>);
23
+ })}
24
+ </View>
25
+ );
26
+
27
+ function getSwitch(params) {
28
+ data.map((item) => item.selected = false);
29
+ params.selected = !params.selected;
30
+ props.callBack(params);
31
+ setRefresh(refresh + 1);
32
+ }
33
+ }
34
+
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View} from 'react-native';
3
+ import { Global } from '../Common/Global';
4
+
5
+ const CContainerView = props => {
6
+
7
+ const styles = StyleSheet.create({
8
+ CContainerView : {
9
+ flex: 1,
10
+ backgroundColor: Global.AppTheme.primary_color,
11
+ },
12
+ });
13
+
14
+ return (
15
+ <View style={styles.CContainerView}>
16
+ {props.children}
17
+ </View>
18
+ );
19
+ };
20
+
21
+ export default CContainerView;
@@ -0,0 +1,81 @@
1
+ import React, { useContext, useState } from 'react';
2
+ import { StyleSheet, View, ImageBackground, Text, Dimensions } from 'react-native';
3
+ import { Global } from '../Common/Global';
4
+ import { useNavigation } from '../Navigation/useNavigation';
5
+ import CCard from '../Custom/CCard';
6
+ import { normalize } from '../CommonStyle/componentStyle';
7
+ import { isNU } from '../CommonStyle/ComponentFunctions';
8
+ import CTemplateCard from '../Custom/CTemplateCard';
9
+ import AppContext from '../Handlers/AppContext';
10
+ import { APIURL } from '../Common/apiConstants';
11
+
12
+ const CDetailView = (props) => {
13
+
14
+
15
+ const styles = StyleSheet.create({
16
+ CDetailView: {
17
+ flex: 1,
18
+ shadowColor: '#000',
19
+ shadowOffset: { width: 0, height: 2 },
20
+ shadowOpacity: 0.8,
21
+ shadowRadius: 2,
22
+ borderTopLeftRadius: 20,
23
+ borderTopRightRadius: 20,
24
+ width: '100%',
25
+ backgroundColor: props.backgroundColor ? props.backgroundColor : 'white'
26
+ },
27
+ image: {
28
+ flex: 1
29
+ }
30
+ });
31
+
32
+ // console.log("PATIENT DATATTTTTTATTATTATTATATATATTATATAAT",JSON.stringify(Global.PatientDetails))
33
+ const [patientdata] = useState(Global.PatientDetails)
34
+ const [userListShow] = useState(props.userlist != undefined ? props.userlist : true)
35
+ const { inputText, setInputText } = useContext(AppContext);
36
+
37
+ const navigation = useNavigation();
38
+ return (
39
+ <View style={styles.CDetailView}>
40
+ {/* {console.log('patientdata----------',JSON.stringify(patientdata))} */}
41
+ <ImageBackground
42
+ source={props.bgimage != undefined ? { uri: props.bgimage } : {uri:`${APIURL}insurancefile/getCommonFile/image/IMA.png`}}
43
+ resizeMode={props.bgimage != undefined ? "stretch" : "contain"}
44
+ imageStyle={props.bgimage != undefined ? { opacity: 1 } : { opacity: 0.1 }}
45
+ style={styles.image}
46
+ >
47
+ {patientdata != null
48
+ && patientdata != undefined && userListShow && !props.hideCard ?
49
+ <View style={{ marginHorizontal: normalize(5), marginTop: normalize(-30) }}>
50
+ <CCard
51
+ // navigation={navigation}
52
+ type={2}
53
+ disableTouch={true}
54
+ data={[Global.PatientDetails]}
55
+ consultation={props.consultation ? true : false}
56
+ expandheight={normalize(100)}
57
+ disabledetailcard={props.disabledetailcard ? true : false}
58
+ disabledetailcardcallback={() => {
59
+ // console.log('kkkk')
60
+ isNU(props.disabledetailcardcallback) ? props.disabledetailcardcallback(true) : null
61
+ }}
62
+ />
63
+ </View> : null}
64
+ {isNU(inputText) && isNU(inputText.templatedata) && inputText.showtemplatecard && props.showTemplateCard ?
65
+ <View style={{ marginTop: normalize(-10) }}>
66
+ <CTemplateCard
67
+ data={inputText.templatedata}
68
+ Cardcallback={(val) => {
69
+ console.log('Cardcallback.....')
70
+ }}
71
+ />
72
+ </View> : null}
73
+ {props.children}
74
+ </ImageBackground>
75
+ </View>
76
+ );
77
+ };
78
+
79
+
80
+
81
+ export default CDetailView;
@@ -23,9 +23,6 @@ import { normalize } from '../CommonStyle/componentStyle';
23
23
  import { isBNUL } from '../CommonStyle/ComponentFunctions';
24
24
  import CAwesomeButtonLIS from '../Custom/CAwesomeButton';
25
25
  import SSearchBar from '../StaticComponents/SSearchBar';
26
- import { APIURL, imageURL } from '../Common/apiConstants';
27
- import NetworkServiceCall from '../Common/NetworkServiceCall';
28
- import { notifyMessage } from '../CommonStyle/ComponentFunctions';
29
26
  import { Global } from '../Common/Global';
30
27
  import SAlphabet from '../StaticComponents/SAlphabet';
31
28
  import { useNavigation } from '../Navigation/useNavigation';
@@ -0,0 +1,353 @@
1
+ import React, { useContext, useEffect, useState } from 'react';
2
+ import {
3
+ StyleSheet,
4
+ Text,
5
+ View,
6
+ StatusBar,
7
+ Image,
8
+ TouchableOpacity,
9
+ Alert,
10
+ Modal,
11
+ Dimensions,
12
+ ScrollView
13
+ } from 'react-native';
14
+ import Ionicons from 'react-native-vector-icons/Ionicons';
15
+ import Feather from 'react-native-vector-icons/Feather';
16
+ import { Global } from '../Common/Global';
17
+ import CSliderMenu from '../Custom/CSliderMenu';
18
+ import { normalize } from '../CommonStyle/componentStyle';
19
+ import NotificationContext from '../Handlers/NoticationsContext';
20
+ import moment from 'moment';
21
+ import { ValueCheck, isNUQZ } from '../CommonStyle/ComponentFunctions';
22
+ import ABlink from '../Alerts/ABlink';
23
+ import COverlay from '../CustomComponents/COverlay';
24
+ import OUserView from '../Custom/OUserView';
25
+ import CBackHandler from '../CustomComponents/CBackHandler';
26
+ import InsureResponseComponentContext from '../Handlers/insureResponseComponentContext';
27
+ import CNetworkStatus from '../CustomComponents/CNetworkStatus';
28
+ import { useNavigation } from '../Navigation/useNavigation';
29
+
30
+ const HeaderBlock = (props) => {
31
+ const { responseJSON, setResponseJSON } = useContext(InsureResponseComponentContext);
32
+ const [isShowSlidermenu, setIsShowSlidermenu] = useState(false);
33
+ const [backHandler, setBackHandler] = useState(false);
34
+ const [backHandlerLogOut, setBackHandlerLogOut] = useState(false);
35
+ const [refresh, setRefresh] = useState(0);
36
+ const [overlay, setOverlay] = useState(false);
37
+ const [jsonoverlay, setJsonOverlay] = useState(false);
38
+ const navigation = useNavigation()
39
+
40
+ const OverlayHOCComponent = COverlay(OUserView);
41
+
42
+ const NoticationData = React.useContext(NotificationContext);
43
+
44
+ const result = NoticationData.filter(obj => obj.status === true);
45
+
46
+ const styles = StyleSheet.create({
47
+ container: {
48
+ display: 'flex',
49
+ backgroundColor: Global.AppTheme.primary_color,
50
+ justifyContent: 'center',
51
+ paddingLeft: normalize(3),
52
+ marginTop: StatusBar.currentHeight,
53
+ },
54
+ headerContent: {
55
+ flexDirection: 'row',
56
+ alignItems: 'center',
57
+ marginBottom: normalize(6),
58
+ paddingBottom: normalize(0),
59
+ },
60
+ backButton: {
61
+ flexDirection: 'row',
62
+ alignItems: 'center',
63
+ borderWidth: 0,
64
+ },
65
+ logoContainer: {
66
+ width: normalize(100),
67
+ height: normalize(40),
68
+ },
69
+ betaContainer: {
70
+ position: 'absolute',
71
+ bottom: normalize(-4),
72
+ right: normalize(-70),
73
+ },
74
+ betaText: {
75
+ color: '#ffffff',
76
+ fontSize: normalize(20),
77
+ letterSpacing: 5,
78
+ fontWeight: 'bold',
79
+ textShadowColor: '#000000',
80
+ textShadowOffset: { width: 0.5, height: 0.5 },
81
+ textShadowRadius: 0.5,
82
+ },
83
+ versionText: {
84
+ color: 'white',
85
+ fontSize: normalize(8),
86
+ },
87
+ userInfoButton: {
88
+ flexDirection: 'row',
89
+ borderWidth: 0,
90
+ flex: 1,
91
+ justifyContent: 'flex-start',
92
+ },
93
+ userInfoContainer: {
94
+ borderWidth: 0,
95
+ },
96
+ userNameText: {
97
+ fontWeight: 'bold',
98
+ fontSize: normalize(13),
99
+ marginLeft: 5,
100
+ color: 'white',
101
+ },
102
+ departmentText: {
103
+ fontFamily: Global.fontNormal,
104
+ fontSize: normalize(11),
105
+ marginLeft: 5,
106
+ color: 'white',
107
+ },
108
+ rightIconsContainer: {
109
+ flexDirection: 'row',
110
+ alignItems: 'center',
111
+ justifyContent: 'flex-end',
112
+ borderWidth: 0,
113
+ },
114
+ notificationButton: {
115
+ marginRight: normalize(5),
116
+ },
117
+ notificationBadge: {
118
+ position: 'absolute',
119
+ right: normalize(-5),
120
+ top: normalize(-8),
121
+ backgroundColor: 'white',
122
+ alignItems: 'center',
123
+ borderRadius: 20,
124
+ width: normalize(15),
125
+ },
126
+ notificationCount: {
127
+ fontSize: normalize(7),
128
+ fontWeight: 'bold',
129
+ },
130
+ menuButton: {
131
+ alignItems: 'center',
132
+ justifyContent: 'center',
133
+ },
134
+ loginTimeText: {
135
+ fontSize: normalize(9),
136
+ marginLeft: 0,
137
+ color: 'white',
138
+ },
139
+ jsonModalContainer: {
140
+ backgroundColor: 'white',
141
+ borderWidth: 1,
142
+ height: Dimensions.get('screen').height * 0.9,
143
+ alignSelf: 'center',
144
+ width: Dimensions.get('screen').width * 0.9,
145
+ },
146
+ closeButton: {
147
+ textAlign: 'right',
148
+ fontWeight: 'bold',
149
+ color: 'black',
150
+ },
151
+ jsonText: {
152
+ fontSize: normalize(10),
153
+ color: 'black',
154
+ fontFamily: 'Courier New',
155
+ },
156
+ });
157
+
158
+ const OnPressGoBack = () => {
159
+ if (props.callback) {
160
+ props.callback(true);
161
+ } else {
162
+ if (ValueCheck(props.backhandler)) {
163
+ if (ValueCheck(props.consultation) && Global.EditStatus == 1) {
164
+ setBackHandler(true);
165
+ } else {
166
+ navigation.goBack(); // 👈 works
167
+ }
168
+ } else {
169
+ navigation.goBack(); // 👈 works
170
+ }
171
+ }
172
+ };
173
+
174
+ const renderJsonModal = () => (
175
+ <Modal
176
+ onRequestClose={() => setJsonOverlay(false)}
177
+ style={{
178
+ height: Dimensions.get('screen').height,
179
+ width: Dimensions.get('screen').width,
180
+ backgroundColor: 'transparent',
181
+ justifyContent: 'center',
182
+ alignItems: 'center',
183
+ }}
184
+ transparent={true}
185
+ >
186
+ <View style={styles.jsonModalContainer}>
187
+ <TouchableOpacity onPress={() => setJsonOverlay(false)}>
188
+ <Text style={styles.closeButton}>Close</Text>
189
+ </TouchableOpacity>
190
+ <ScrollView>
191
+ <Text selectable={true} style={styles.jsonText}>
192
+ {JSON.stringify(responseJSON, null, 2)}
193
+ </Text>
194
+ </ScrollView>
195
+ </View>
196
+ </Modal>
197
+ );
198
+
199
+ const renderBetaVersion = () => (
200
+ <View style={styles.betaContainer}>
201
+ <ABlink duration={500}>
202
+ <View style={{ justifyContent: 'center', alignItems: 'center' }}>
203
+ <Text style={styles.betaText}>BETA TESTING</Text>
204
+ <Text style={styles.versionText}>
205
+ {Global.version ? `V ${Global.version}` : null}
206
+ </Text>
207
+ </View>
208
+ </ABlink>
209
+ </View>
210
+ );
211
+
212
+ const renderUserInfo = () => (
213
+ <TouchableOpacity
214
+ onPress={() => props.webview != undefined ? null : setOverlay(true)}
215
+ style={styles.userInfoButton}
216
+ >
217
+ <View style={styles.userInfoContainer}>
218
+ <Text
219
+ adjustsFontSizeToFit
220
+ numberOfLines={2}
221
+ style={styles.userNameText}
222
+ >
223
+ {props.webview != undefined ? "" : Global.userData && Global.userData.department != undefined && Global.userData.department != "" ? Global.userData.username : ''}
224
+ </Text>
225
+ {Global.userData && Global.userData.department != undefined && Global.userData.department != "" && props.webview == undefined ? (
226
+ <Text
227
+ adjustsFontSizeToFit
228
+ style={styles.departmentText}
229
+ >
230
+ {Global.userData.department}
231
+ </Text>
232
+ ) : null}
233
+ </View>
234
+ </TouchableOpacity>
235
+ );
236
+
237
+ const renderRightIcons = () => (
238
+ <View style={styles.rightIconsContainer}>
239
+ <CNetworkStatus />
240
+ <TouchableOpacity
241
+ onPress={() => navigation.navigate('Notifications')}
242
+ style={styles.notificationButton}
243
+ >
244
+ <View style={styles.notificationBadge}>
245
+ <ABlink>
246
+ <Text
247
+ numberOfLines={1}
248
+ adjustsFontSizeToFit
249
+ style={[
250
+ styles.notificationCount,
251
+ { color: result.length > 0 ? "red" : 'black' }
252
+ ]}
253
+ >
254
+ {result.length}
255
+ </Text>
256
+ </ABlink>
257
+ </View>
258
+ <Ionicons name={'notifications-outline'} color="white" size={normalize(15)} />
259
+ </TouchableOpacity>
260
+ <View style={{ paddingLeft: normalize(2) }}>
261
+ <TouchableOpacity
262
+ onPress={() => setIsShowSlidermenu(true)}
263
+ style={styles.menuButton}
264
+ >
265
+ <Feather name={'menu'} color="white" size={normalize(25)} />
266
+ <View>
267
+ {Global.LoginTime != undefined ? (
268
+ <Text style={styles.loginTimeText}>
269
+ {(moment.duration(moment().diff(Global.LoginTime)).asMinutes()).toFixed(0) + " Min."}
270
+ </Text>
271
+ ) : null}
272
+ </View>
273
+ </TouchableOpacity>
274
+ </View>
275
+ </View>
276
+ );
277
+
278
+ return (
279
+ <View style={[styles.container, props.style]} key={refresh}>
280
+ <StatusBar
281
+ translucent
282
+ backgroundColor={Global.AppTheme.primary_color}
283
+ barStyle="light-content"
284
+ />
285
+
286
+ {jsonoverlay && renderJsonModal()}
287
+
288
+ <View style={styles.headerContent}>
289
+ <TouchableOpacity
290
+ style={styles.backButton}
291
+ onPress={OnPressGoBack}
292
+ >
293
+ <Ionicons
294
+ name={'chevron-back'}
295
+ color='white'
296
+ size={normalize(25)}
297
+ />
298
+ <View style={styles.logoContainer}>
299
+ {Global.betaversion ? (
300
+ <View style={styles.logoContainer} />
301
+ ) : (
302
+ <Image
303
+ style={{
304
+ width: normalize(100),
305
+ height: normalize(40),
306
+ resizeMode: 'contain',
307
+ borderRadius: 8,
308
+ }}
309
+ source={{ uri: Global?.HospitalData?.hospitallogo3 ? Global.HospitalData.hospitallogo3 : null }}
310
+ />
311
+ )}
312
+ </View>
313
+ {Global.betaversion && renderBetaVersion()}
314
+ </TouchableOpacity>
315
+
316
+ {renderUserInfo()}
317
+
318
+ {props.webview != undefined ? null : renderRightIcons()}
319
+ </View>
320
+
321
+ {overlay && (
322
+ <OverlayHOCComponent
323
+ visibility={val => (val == undefined ? null : setOverlay(val))}
324
+ />
325
+ )}
326
+ {isShowSlidermenu && (
327
+ <CSliderMenu
328
+ navigation={navigation.navigate}
329
+ isShow={isShowSlidermenu}
330
+ visibility={(val) => (val == undefined ? null : setIsShowSlidermenu(val))}
331
+ />
332
+ )}
333
+
334
+ {backHandler && (
335
+ <CBackHandler
336
+ type={5}
337
+ callBack={(val) => (val == undefined ? null : (setBackHandler(val), navigation.goBack()))}
338
+ close={(val) => (val == undefined ? null : setBackHandler(val))}
339
+ />
340
+ )}
341
+
342
+ {backHandlerLogOut && (
343
+ <CBackHandler
344
+ type={6}
345
+ callBack={(val) => (val == undefined ? null : (setBackHandlerLogOut(val), navigation.goBack()))}
346
+ close={(val) => (val == undefined ? null : setBackHandlerLogOut(val))}
347
+ />
348
+ )}
349
+ </View>
350
+ );
351
+ };
352
+
353
+ export default HeaderBlock;
package/src/index.js DELETED
@@ -1,15 +0,0 @@
1
- export { default as CaptureImageWithoutEdit } from './components/CaptureImageWithoutEdit';
2
- export { default as Card } from './components/Card';
3
- export { default as CountdownTimer } from './components/CountdownTimer';
4
- export { default as Loader } from './components/Loader';
5
- export { default as Notification } from './components/Notification';
6
- export { default as StepIndicator } from './components/StepIndicator';
7
-
8
- export default {
9
- CaptureImageWithoutEdit,
10
- Card,
11
- CountdownTimer,
12
- Loader,
13
- Notification,
14
- StepIndicator,
15
- };