@jescon-technologies/react-native-ui-kit 0.0.4 → 0.0.6

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 (178) hide show
  1. package/index.d.ts +66 -0
  2. package/index.js +3 -7
  3. package/package.json +3 -2
  4. package/src/Alerts/AAlert.js +4 -4
  5. package/src/Alerts/AAlertIOS.js +3 -3
  6. package/src/{common → Common}/NetworkServiceCall.js +1 -1
  7. package/src/CommonStyle/CommonTheme.js +11 -0
  8. package/src/CommonStyle/ComponentFunctions.js +632 -0
  9. package/src/CommonStyle/PopupStyle.js +146 -0
  10. package/src/CommonStyle/commonStyle.js +93 -0
  11. package/src/CommonStyle/componentStyle.js +545 -0
  12. package/src/CommonStyle/optionListStyles.js +175 -0
  13. package/src/Components/ByProductPage.js +200 -0
  14. package/src/Components/CDropDownListNew.js +153 -0
  15. package/src/Components/CSupplierList.js +88 -0
  16. package/src/Components/CVerificationCard.js +2822 -0
  17. package/src/Components/CustomButton.js +67 -0
  18. package/src/Components/CustomCard.js +127 -0
  19. package/src/Components/CustomTextInput.js +47 -0
  20. package/src/Components/EquipmentPage.js +313 -0
  21. package/src/Components/FilterInput.Copy.js +723 -0
  22. package/src/Components/FilterInput.js +569 -0
  23. package/src/Components/HSubHeading.js +68 -0
  24. package/src/Components/HeaderCard.js +40 -0
  25. package/src/Components/MoreOptionsScreen.js +251 -0
  26. package/src/Components/NonSwipableProductCard.js +226 -0
  27. package/src/Components/NonSwipableSupplierCard.js +348 -0
  28. package/src/Components/ProductCard.js +1336 -0
  29. package/src/Components/QualityProductCard.js +1059 -0
  30. package/src/Components/RateProductCard.js +1452 -0
  31. package/src/Components/RawMaterial.js +261 -0
  32. package/src/Components/SDropDownEdited.js +549 -0
  33. package/src/Components/SDropDownNew.js +529 -0
  34. package/src/Components/SHelpDescription.js +147 -0
  35. package/src/Components/STextInputNew.js +510 -0
  36. package/src/Components/SearchProductCard.js +470 -0
  37. package/src/Components/StageByProduct.js +199 -0
  38. package/src/Components/SupplierCard.js +243 -0
  39. package/src/Components/SupplierInvoiceCard.js +405 -0
  40. package/src/Components/SwipableSupplierCard.js +136 -0
  41. package/src/Components/TagTemplate.js +74 -0
  42. package/src/Components/WrappedComponent.js +25 -0
  43. package/src/Custom/CBooking.js +944 -0
  44. package/src/Custom/CBookingPostpone.js +1822 -0
  45. package/src/Custom/CCalendar.js +560 -0
  46. package/src/Custom/CCard.js +880 -0
  47. package/src/Custom/CDetailCard.js +205 -0
  48. package/src/Custom/CHelpImage.js +52 -0
  49. package/src/Custom/CReport.js +569 -0
  50. package/src/Custom/CScrollView.js +73 -0
  51. package/src/Custom/CSignature.js +112 -0
  52. package/src/Custom/CSliderMenu.js +339 -0
  53. package/src/Custom/CSupplierCard.js +99 -0
  54. package/src/Custom/CTemplateCard.js +438 -0
  55. package/src/Custom/CTokenAllocation.js +1402 -0
  56. package/src/Custom/CTokenListOverlay.js +122 -0
  57. package/src/Custom/CWardStatus.js +444 -0
  58. package/src/Custom/Charts/CBarChart.js +218 -0
  59. package/src/Custom/Charts/CDashBoardList.js +133 -0
  60. package/src/Custom/Charts/CDashBoardTable.js +172 -0
  61. package/src/Custom/Charts/CLineChart.js +193 -0
  62. package/src/Custom/Charts/CPieChart.js +186 -0
  63. package/src/Custom/Loader.js +182 -0
  64. package/src/Custom/OUserView.js +1121 -0
  65. package/src/Custom/PreviewDosage.js +115 -0
  66. package/src/Custom/SearchLoader.js +32 -0
  67. package/src/Custom/TableComponent/CActivityTable.js +707 -0
  68. package/src/Custom/TableComponent/CMoreButtonTable.js +197 -0
  69. package/src/Custom/TableComponent/CTable.js +185 -0
  70. package/src/Custom/TableComponent/CTextBody.js +40 -0
  71. package/src/Custom/TableComponent/CTextHeader.js +17 -0
  72. package/src/Custom/TableComponent/PreviewPrescriptionNew.js +1011 -0
  73. package/src/Custom/TableComponent/SDropdownTable.js +491 -0
  74. package/src/Custom/TableComponent/TagTable.js +1200 -0
  75. package/src/CustomComponents/CAddColumn.js +140 -0
  76. package/src/CustomComponents/CAssessmentDelete.js +307 -0
  77. package/src/CustomComponents/CAwesomeButton.js +83 -0
  78. package/src/CustomComponents/CAwesomeMoreButton.js +54 -0
  79. package/src/CustomComponents/CBackHandler.js +273 -0
  80. package/src/CustomComponents/CCalendar.js +243 -0
  81. package/src/CustomComponents/CCommentOverlay.js +202 -0
  82. package/src/CustomComponents/CComments.js +162 -0
  83. package/src/CustomComponents/CContainerView.js +24 -0
  84. package/src/CustomComponents/CCustomTextInput.js +336 -0
  85. package/src/CustomComponents/CDetailView.js +40 -0
  86. package/src/CustomComponents/CDropDownList.js +153 -0
  87. package/src/CustomComponents/CDropdownSelect.js +555 -0
  88. package/src/CustomComponents/CFooterView.js +42 -0
  89. package/src/CustomComponents/CImagePickerSave.js +316 -0
  90. package/src/CustomComponents/CModalOverlay.js +91 -0
  91. package/src/CustomComponents/CNetworkStatus.js +327 -0
  92. package/src/CustomComponents/CNotesInstructions.js +1000 -0
  93. package/src/CustomComponents/COverlay.js +81 -0
  94. package/src/CustomComponents/CRemarks.js +176 -0
  95. package/src/CustomComponents/CRowAdd.js +143 -0
  96. package/src/CustomComponents/CSummaryDropDown.js +327 -0
  97. package/src/CustomComponents/CText.js +9 -0
  98. package/src/CustomComponents/CVectorIcon.js +34 -0
  99. package/src/CustomComponents/HtmlContentViewer.js +65 -0
  100. package/src/CustomComponents/PdfContentViewer.js +90 -0
  101. package/src/CustomComponents/SDropDownDosage.js +1087 -0
  102. package/src/CustomComponents/SwipableProductCard.js +246 -0
  103. package/src/CustomComponents/SwipableProductImageCard.js +254 -0
  104. package/src/CustomComponents/WorkOrderDetails.js +1216 -0
  105. package/src/CustomComponents/WorkOrderDetailsPage.js +1213 -0
  106. package/src/HOC/ConfirmOverlay.js +2 -2
  107. package/src/HOC/HMoreButton.js +1 -1
  108. package/src/HOC/HNatureHeading.js +1 -1
  109. package/src/HOC/HShadowButton.js +1 -1
  110. package/src/HOC/HShadowCountButton.js +1 -1
  111. package/src/Json/Chart.json +818 -0
  112. package/src/Json/Consultation.json +622 -0
  113. package/src/Json/CreditBill.json +490 -0
  114. package/src/Json/Dropdown.json +216 -0
  115. package/src/Json/DropdownConsultation.json +228 -0
  116. package/src/Json/DynamicReports.json +623 -0
  117. package/src/Json/Footer.json +79 -0
  118. package/src/Media/AudioScreen.js +2 -7
  119. package/src/Media/CCaptureImageWithoutEdit.js +1 -1
  120. package/src/Media/CImageGallery.js +2 -2
  121. package/src/Media/CSingleImage.js +2 -2
  122. package/src/Media/CVideoPlay.js +1 -1
  123. package/src/Media/DocumentScreen.js +2 -7
  124. package/src/Media/DrawingScreen.js +2 -6
  125. package/src/Media/ImageScreen.js +2 -6
  126. package/src/Media/RecordAudio.js +1 -1
  127. package/src/Media/VideoScreen.js +2 -7
  128. package/src/Navigation/PageNavigation.js +224 -0
  129. package/src/Navigation/useFocusEffect.js +2 -0
  130. package/src/Navigation/useFocusEffect.native.js +1 -0
  131. package/src/Navigation/useFocusEffect.web.js +1 -0
  132. package/src/Navigation/useIsFocused.js +1 -0
  133. package/src/Navigation/useIsFocused.native.js +1 -0
  134. package/src/Navigation/useIsFocused.web.js +1 -0
  135. package/src/Navigation/useNavigation.js +2 -0
  136. package/src/Navigation/useNavigation.native.js +1 -0
  137. package/src/Navigation/useNavigation.web.js +1 -0
  138. package/src/Screens/CMedications.js +528 -0
  139. package/src/Screens/CWebViewGallery.js +203 -0
  140. package/src/Screens/ChartScan.js +279 -0
  141. package/src/Screens/ChartScreenNew.js +1579 -0
  142. package/src/Screens/Consultation.js +1500 -0
  143. package/src/Screens/Dashboard.js +778 -0
  144. package/src/Screens/FileExplorer.js +288 -0
  145. package/src/Screens/Footer.js +340 -0
  146. package/src/Screens/ForgotPassword.js +288 -0
  147. package/src/Screens/HeaderBlock.js +353 -0
  148. package/src/Screens/Login.js +328 -0
  149. package/src/Screens/Notification.js +149 -0
  150. package/src/Screens/OcrScreen.js +20 -0
  151. package/src/Screens/PdfPreview.js +507 -0
  152. package/src/Screens/RegistrationDetails.js +467 -0
  153. package/src/Screens/SearchScreen.js +582 -0
  154. package/src/Screens/Splash.js +788 -0
  155. package/src/Screens/SwipeLeftView.js +1867 -0
  156. package/src/StaticComponents/SDatePickerLabel.js +1 -1
  157. package/src/StaticComponents/SDatePickerNew.js +1 -1
  158. package/src/StaticComponents/SDateTimePickerNew.js +2 -2
  159. package/src/StaticComponents/SDropDownGenerate.js +3 -3
  160. package/src/StaticComponents/SDropDownHoc.js +4 -4
  161. package/src/StaticComponents/SDropDownIcon.js +1 -1
  162. package/src/StaticComponents/SMenuBox.js +2 -2
  163. package/src/StaticComponents/SSearch.js +2 -2
  164. package/src/StaticComponents/STextInput.js +1 -1
  165. package/src/StaticComponents/STimePicker.js +1 -1
  166. package/src/StaticComponents/STimingDropDownNew.js +2 -6
  167. package/src/StaticComponents/STimingSwitch.js +1 -1
  168. package/src/layout/CContainerView.js +1 -1
  169. package/src/layout/CDetailView.js +3 -3
  170. package/src/layout/HeaderBlock.js +5 -5
  171. package/src/layout/INVLoginLayout.js +3 -4
  172. package/src/layout/Loader.js +2 -2
  173. package/src/HOC/HAbsolute.js +0 -56
  174. package/src/HOC/HDiscontinue.js +0 -105
  175. package/src/HOC/HOverlay.js +0 -99
  176. package/src/layout/FooterBlock.js +0 -821
  177. /package/src/{common → Common}/ErrorBoundary.tsx +0 -0
  178. /package/src/{common → Common}/Icons.js +0 -0
@@ -0,0 +1,251 @@
1
+ import React, { useContext, useState, useEffect } from 'react';
2
+ import { View, Text, TouchableOpacity, FlatList, TextInput, Platform, BackHandler } from 'react-native';
3
+ import HOCIcons from '../HOC/HOCIcons';
4
+ import { normalize } from '../CommonStyle/componentStyle';
5
+
6
+
7
+ import { Global } from '../../../../../src/Common/Global';
8
+ import CContainerView from '../CustomComponents/CContainerView';
9
+ import CDetailView from '../CustomComponents/CDetailView';
10
+ import HeaderBlock from '../Screens/HeaderBlock';
11
+ import {useNavigation } from '../Navigation/useNavigation';
12
+
13
+ const MoreOptionsScreen = () => {
14
+ const navigation = useNavigation();
15
+
16
+ useEffect(() => {
17
+ const onBackPress = () => {
18
+ if (navigation && navigation.canGoBack && navigation.canGoBack()) {
19
+ navigation.goBack();
20
+ return true;
21
+ }
22
+ // Prevent closing the app from this screen on back press
23
+ return true;
24
+ };
25
+
26
+ const backHandler = BackHandler.addEventListener('hardwareBackPress', onBackPress);
27
+ return () => backHandler.remove();
28
+ }, [navigation]);
29
+
30
+ // const navigation = useNavigation();
31
+ const optionList = Global.userOptionList || []; // Get the OptionList from Global
32
+ // { console.log('xxxxxxxxxxxxxxxxxxxxx', JSON.stringify(optionList)) }
33
+ const [searchQuery, setSearchQuery] = useState(''); // State for search query
34
+ // const [filteredOptions, setFilteredOptions] = useState(optionList); // State for filtered options
35
+ const productSection = optionList.find(section => section.suoption === 31900);
36
+
37
+ let filteredOptionList = optionList;
38
+
39
+ // If found, filter its optiondetail
40
+ if (productSection) {
41
+ // Remove the item with suoptiondetail === 800091
42
+ const newOptionDetail = productSection.optiondetail.filter(
43
+ option => option.suoptiondetail !== 800091
44
+ );
45
+
46
+ // Map through optionList and update the product section
47
+ filteredOptionList = optionList.map(section =>
48
+ section.suoption === 31900
49
+ ? { ...section, optiondetail: newOptionDetail }
50
+ : section
51
+ );
52
+ }
53
+
54
+ // Now use filteredOptionList instead of optionList for your state
55
+ const [filteredOptions, setFilteredOptions] = useState(filteredOptionList);
56
+
57
+ // Function to handle search
58
+ const handleSearch = (query) => {
59
+ setSearchQuery(query);
60
+
61
+ if (query.trim() === '') {
62
+ setFilteredOptions(optionList); // Reset to original list if query is empty
63
+ } else {
64
+ const filtered = optionList.map((section) => ({
65
+ ...section,
66
+ optiondetail: section.optiondetail.filter((option) =>
67
+ option.display.toLowerCase().includes(query.toLowerCase())
68
+ ),
69
+ })).filter((section) => section.optiondetail.length > 0); // Remove empty sections
70
+
71
+ setFilteredOptions(filtered);
72
+ }
73
+ };
74
+
75
+ // Function to handle navigation when an option is clicked
76
+ const handleOptionPress = (option) => {
77
+ if (option.component) {
78
+ navigation.navigate('WrappedComponent', { component: option.component, data: option });
79
+ console.log('Navigating to component:', option.component, 'with data:', JSON.stringify(option));
80
+ }
81
+ };
82
+
83
+ function CShadowDynamic(offsetX, offsetY, blurRadius, spreadDistance, color) {
84
+ const isAndroidBelow9 = Platform.OS === 'android' && Platform.Version < 28;
85
+ return isAndroidBelow9
86
+ ? {
87
+ elevation: 10,
88
+ shadowColor: color || Global.AppTheme.primary_color,
89
+ shadowOffset: { width: offsetX, height: offsetY },
90
+ shadowOpacity: 0.3,
91
+ shadowRadius: blurRadius,
92
+ }
93
+ : {
94
+ boxShadow: `${offsetX}px ${offsetY}px ${blurRadius}px ${spreadDistance}px ${color}`,
95
+ };
96
+ }
97
+
98
+ // Render each section
99
+ const renderSection = ({ item }) => (
100
+ <View
101
+ style={{
102
+ // margin:normalize(10),
103
+ // marginBottom: normalize(15),
104
+ // // borderWidth:normalize(3),
105
+ // // borderColor: '#ccc',
106
+ // borderRadius: normalize(10),
107
+ // padding: normalize(5),
108
+ // backgroundColor: '#f9f9f9', // Light background for the section
109
+ // ...CShadowDynamic(-3, 3, 5, 0, '#ccc'), // Apply shadow dynamically
110
+
111
+ marginHorizontal: normalize(10),
112
+ marginTop: normalize(10),
113
+ marginBottom: normalize(20),
114
+ borderRadius: normalize(14),
115
+ paddingVertical: normalize(12),
116
+ paddingHorizontal: normalize(10),
117
+ backgroundColor: '#fcfcfe', // Slightly lighter for contrast
118
+ borderWidth: 1,
119
+ borderColor: '#e3e6ee', // Subtle border
120
+ ...CShadowDynamic(0, 2, 8, 0, '#e3e6ee'), // Softer shadow
121
+
122
+ }}
123
+ >
124
+ {/* Section Title */}
125
+ <Text
126
+ style={{
127
+ fontSize: normalize(16),
128
+ fontWeight: 'bold',
129
+ color: '#094485',
130
+ marginBottom: normalize(10),
131
+ }}
132
+ >
133
+ {item.display}
134
+ </Text>
135
+
136
+ {/* Render Options */}
137
+ <FlatList
138
+ data={item.optiondetail}
139
+ keyExtractor={(option) => option.suoptiondetail.toString()}
140
+ numColumns={3} // Display items in a grid-like structure
141
+ columnWrapperStyle={{
142
+ justifyContent: 'flex-start', // Align items to the start
143
+ gap: normalize(10), // Add a simple gap between items
144
+ }}
145
+ renderItem={({ item: option }) => (
146
+ <TouchableOpacity
147
+ disabled={false} // You can make this dynamic if needed
148
+ onPress={() => handleOptionPress(option)}
149
+ style={{
150
+ width: '25%', // Reduce the width to fit multiple items in a row
151
+ flexDirection: 'column', // Stack icon and text vertically
152
+ alignItems: 'center',
153
+ justifyContent: 'center',
154
+ padding: normalize(10),
155
+ margin: normalize(5), // Add margin for spacing between items
156
+ backgroundColor: 'white', // Dynamic background color
157
+ borderRadius: normalize(10), // Rounded corners
158
+ ...CShadowDynamic(-3, 3, 5, 0, option.color || Global.AppTheme.primary_color), // Apply shadow dynamically
159
+ }}
160
+ >
161
+ {/* Icon */}
162
+ <HOCIcons.Icons
163
+ icongroup={option.icongroup || 3}
164
+ name={option.icon || 'file'}
165
+ color={option.color || '#303030'}
166
+ size={normalize(30)} // Increase icon size
167
+ style={{
168
+ marginBottom: normalize(5), // Add spacing between icon and text
169
+ }}
170
+ />
171
+ {/* Text */}
172
+ <Text
173
+ style={{
174
+ fontSize: normalize(9), // Make text smaller
175
+ color: 'black' || option.color || '#303030',
176
+ fontWeight: 'bold', // Bold text
177
+ textAlign: 'center',
178
+ maxWidth: normalize(60), // Limit text width
179
+ }}
180
+ numberOfLines={2} // Ensure text is displayed in a single line
181
+ ellipsizeMode="tail" // Add ellipsis if text overflows
182
+ >
183
+ {option.display}
184
+ </Text>
185
+ </TouchableOpacity>
186
+ )}
187
+ />
188
+ </View>
189
+ );
190
+
191
+ return (
192
+ <CContainerView>
193
+ <HeaderBlock />
194
+ <CDetailView>
195
+ <View
196
+ style={{
197
+ flex: 1,
198
+ backgroundColor: '#fff',
199
+ // padding: normalize(10),
200
+ }}
201
+ >
202
+ {/* Search Bar */}
203
+ <View
204
+ style={{
205
+ flexDirection: 'row',
206
+ alignItems: 'center',
207
+ height: normalize(40),
208
+ borderColor: '#ccc',
209
+ borderWidth: 1,
210
+ borderRadius: normalize(10),
211
+ paddingHorizontal: normalize(10),
212
+ marginBottom: normalize(15),
213
+ backgroundColor: '#f9f9f9', // Light background for the search bar
214
+ }}
215
+ >
216
+ <HOCIcons.Icons
217
+ icongroup={3}
218
+ name="magnify" // Search icon
219
+ color="#888" // Icon color
220
+ size={normalize(20)}
221
+ style={{
222
+ marginRight: normalize(10),
223
+ }}
224
+ />
225
+ <TextInput
226
+ value={searchQuery}
227
+ onChangeText={handleSearch}
228
+ placeholder="Search options..."
229
+ placeholderTextColor="#888" // Placeholder color
230
+ style={{
231
+ flex: 1,
232
+ fontSize: normalize(14),
233
+ color: '#333',
234
+ }}
235
+ />
236
+ </View>
237
+ {console.log('WWWWWWWWWWWWWWWWWWWWWW', JSON.stringify(filteredOptions))
238
+ }
239
+ {/* Render Sections */}
240
+ <FlatList
241
+ data={filteredOptions}
242
+ keyExtractor={(item) => item.suoption.toString()}
243
+ renderItem={renderSection}
244
+ />
245
+ </View>
246
+ </CDetailView>
247
+ </CContainerView>
248
+ );
249
+ };
250
+
251
+ export default MoreOptionsScreen;
@@ -0,0 +1,226 @@
1
+ import React from 'react';
2
+ import { View, Text, TouchableOpacity } from 'react-native';
3
+ import { normalize } from '../CommonStyle/componentStyle';
4
+ import { Global } from '../../../../../src/Common/Global';
5
+ import { CButtonShadow, isNUQ } from '../CommonStyle/ComponentFunctions';
6
+ import { useNavigation } from '../Navigation/useNavigation';
7
+
8
+ import { SwipeRow } from 'react-native-swipe-list-view';
9
+
10
+
11
+ const NonSwipableProductCard = ({ data }) => {
12
+ const navigation = useNavigation();
13
+
14
+ const renderLeftActions = () => (
15
+ <View style={{
16
+ // flex: 1,
17
+ // width: normalize(100),
18
+ // backgroundColor: '#4caf50',
19
+ justifyContent: 'flex-start',
20
+ alignItems: 'flex-start',
21
+ borderTopLeftRadius: 10,
22
+ borderBottomLeftRadius: 10,
23
+ flexDirection: 'row',
24
+ paddingHorizontal: normalize(10),
25
+ }}>
26
+ {/* Marketing division */}
27
+ <TouchableOpacity
28
+ style={{
29
+ // // flex: 1,
30
+ // width: normalize(100),
31
+ // // backgroundColor: '#4caf50',
32
+ // justifyContent: 'flex-start',
33
+ // alignItems: 'center',
34
+ // borderTopLeftRadius: 10,
35
+ // borderBottomLeftRadius: 10,
36
+ marginLeft: normalize(5),
37
+ }}
38
+ onPress={() => console.log('left')}
39
+ >
40
+ {/* {!leftAction && <View style={{
41
+ backgroundColor: '#f4f5ae',
42
+ justifyContent: 'center',
43
+ alignItems: 'center',
44
+ ...CButtonShadow(),
45
+ borderRadius: normalize(5),
46
+ paddingHorizontal: normalize(3),
47
+ paddingVertical: normalize(5),
48
+ height: normalize(38),
49
+ width: normalize(38)
50
+ }}>
51
+ <HOCIcons.MaterialCommunityIcons
52
+ name={'office-building'}
53
+ size={normalize(20)}
54
+ color={Global.AppTheme.primary_color}
55
+ />
56
+ <Text numberOfLines={1} style={{ fontSize: normalize(8), fontWeight: 'bold', color: Global.AppTheme.primary_color }}>Division</Text>
57
+ </View>
58
+ } */}
59
+ {/* {leftAction &&
60
+ <View style={{
61
+ backgroundColor: '#f4f5ae',
62
+ justifyContent: 'center',
63
+ alignItems: 'center',
64
+ ...CButtonShadow(),
65
+ borderRadius: normalize(5),
66
+ paddingHorizontal: normalize(3),
67
+ paddingVertical: normalize(5),
68
+ height: normalize(38),
69
+ width: normalize(38)
70
+ }}>
71
+ <Text style={{ fontSize: normalize(9), fontWeight: 'bold', color: Global.AppTheme.primary_color }}>{data?.marketingdivisionname}</Text>
72
+ </View>
73
+ } */}
74
+ </TouchableOpacity>
75
+ {/* Tax name */}
76
+ <TouchableOpacity
77
+ style={{
78
+ // // flex: 1,
79
+ // width: normalize(100),
80
+ // // backgroundColor: '#4caf50',
81
+ // justifyContent: 'flex-start',
82
+ // alignItems: 'center',
83
+ // borderTopLeftRadius: 10,
84
+ // borderBottomLeftRadius: 10,
85
+ marginLeft: normalize(5),
86
+ }}
87
+ onPress={() => console.log('left')}
88
+ >
89
+ {/* {!secondAction && <View style={{
90
+ backgroundColor: '#f5bfae',
91
+ justifyContent: 'center',
92
+ alignItems: 'center',
93
+ ...CButtonShadow(),
94
+ borderRadius: normalize(5),
95
+ paddingHorizontal: normalize(3),
96
+ paddingVertical: normalize(5),
97
+ height: normalize(38),
98
+ width: normalize(38)
99
+ }}>
100
+ <HOCIcons.MaterialCommunityIcons
101
+ name={'brightness-percent'}
102
+ size={normalize(20)}
103
+ color={Global.AppTheme.primary_color}
104
+ />
105
+ <Text numberOfLines={1} style={{ fontSize: normalize(8), fontWeight: 'bold', color: Global.AppTheme.primary_color }}>Tax Name</Text>
106
+ </View>
107
+ } */}
108
+ {/* {secondAction &&
109
+ <View style={{
110
+ backgroundColor: '#f5bfae',
111
+ justifyContent: 'center',
112
+ alignItems: 'center',
113
+ ...CButtonShadow(),
114
+ borderRadius: normalize(5),
115
+ paddingHorizontal: normalize(3),
116
+ paddingVertical: normalize(5),
117
+ height: normalize(38),
118
+ width: normalize(38)
119
+ }}>
120
+ <Text style={{ fontSize: normalize(9), fontWeight: 'bold', color: Global.AppTheme.primary_color }}>{data?.taxname}</Text>
121
+ </View>
122
+ } */}
123
+ </TouchableOpacity>
124
+ </View>
125
+ );
126
+
127
+ const renderRightActions = () => (
128
+ <TouchableOpacity
129
+ style={{
130
+ // flex: 1,
131
+ width: normalize(100),
132
+ // backgroundColor: '#f44336',
133
+ justifyContent: 'center',
134
+ alignItems: 'center',
135
+ borderTopRightRadius: 10,
136
+ borderBottomRightRadius: 10,
137
+ }}
138
+ onPress={() => console.log('Right action')}
139
+ >
140
+ {/* <Text style={{ color: '#000', fontWeight: 'bold' }}>{data?.taxname}</Text> */}
141
+ </TouchableOpacity>
142
+ );
143
+
144
+ return (
145
+ <SwipeRow
146
+ disableLeftSwipe={false}
147
+ disableRightSwipe={false}
148
+ leftOpenValue={190}
149
+ rightOpenValue={-190}
150
+ swipeToClosePercent={10}
151
+ swipeToOpenPercent={10}
152
+ >
153
+ {/* Hidden Row (Swipe Actions) */}
154
+ <View style={{
155
+ borderWidth: 0,
156
+ flexDirection: 'row',
157
+ justifyContent: 'space-between',
158
+ minHeight: normalize(70),
159
+ }}>
160
+ <View style={{ flex: 1, alignItems: 'flex-start' }}>
161
+ {renderLeftActions && renderLeftActions(data)}
162
+ </View>
163
+ <View style={{ flex: 1, alignItems: 'flex-end' }}>
164
+ {renderRightActions && renderRightActions(data)}
165
+ </View>
166
+ </View>
167
+ <View
168
+ style={{
169
+ padding: normalize(5),
170
+ marginVertical: 5,
171
+ marginHorizontal: normalize(10),
172
+ backgroundColor: '#ebf1fa',
173
+ borderRadius: normalize(5),
174
+ shadowColor: Global.AppTheme.primary_color,
175
+ shadowOffset: { width: 4, height: 4 },
176
+ shadowOpacity: 0.6,
177
+ shadowRadius: 10,
178
+ elevation: 8,
179
+ ...CButtonShadow(),
180
+ borderLeftWidth: normalize(10),
181
+ borderLeftColor: isNUQ(data?.color) ? data?.color : '#FF8C33',
182
+ }}>
183
+ <View>
184
+ {/* Product Name */}
185
+ {isNUQ(data?.productname) && (
186
+ <Text
187
+ numberOfLines={1}
188
+ style={{
189
+ fontSize: normalize(13),
190
+ fontWeight: 'bold',
191
+ color: Global.AppTheme.primary_color,
192
+ marginBottom: normalize(5),
193
+ }}>
194
+ {data.productname}
195
+ </Text>
196
+ )}
197
+ {/* Marketing Division */}
198
+ {isNUQ(data?.marketingdivisionname) && (
199
+ <Text
200
+ numberOfLines={1}
201
+ style={{
202
+ fontSize: normalize(11),
203
+ color: '#555',
204
+ marginBottom: normalize(3),
205
+ }}>
206
+ Marketing Division: {data.marketingdivisionname}
207
+ </Text>
208
+ )}
209
+ {/* Manufacturer Division */}
210
+ {isNUQ(data?.manufacturerdivisionname) && (
211
+ <Text
212
+ numberOfLines={1}
213
+ style={{
214
+ fontSize: normalize(11),
215
+ color: '#555',
216
+ }}>
217
+ Manufacturer Division: {data.manufacturerdivisionname}
218
+ </Text>
219
+ )}
220
+ </View>
221
+ </View>
222
+ </SwipeRow>
223
+ );
224
+ };
225
+
226
+ export default NonSwipableProductCard;