ordering-ui-react-native 0.22.25 → 0.22.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/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React, { useState } from 'react'
|
|
2
|
-
import { View, Animated, StyleSheet,
|
|
1
|
+
import React, { useEffect, useState } from 'react'
|
|
2
|
+
import { View, Animated, StyleSheet, TouchableOpacity } from 'react-native'
|
|
3
3
|
import { useUtils, useLanguage, useOrder } from 'ordering-components/native'
|
|
4
4
|
import { useTheme } from 'styled-components/native';
|
|
5
5
|
import MaterialCommunityIcon from 'react-native-vector-icons/MaterialCommunityIcons'
|
|
@@ -47,25 +47,34 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
47
47
|
|
|
48
48
|
const pickerStyle = StyleSheet.create({
|
|
49
49
|
inputAndroid: {
|
|
50
|
-
width:
|
|
50
|
+
width: 45,
|
|
51
51
|
textAlign: 'center',
|
|
52
52
|
overflow: 'visible',
|
|
53
53
|
fontSize: 12,
|
|
54
|
-
height:
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
height: 30,
|
|
55
|
+
color: theme.colors.textNormal,
|
|
56
|
+
backgroundColor: theme.colors.backgroundGray100,
|
|
57
|
+
paddingVertical: 8,
|
|
58
|
+
paddingRight: 10,
|
|
59
|
+
paddingLeft: 0,
|
|
60
|
+
borderRadius: 7.6,
|
|
57
61
|
},
|
|
58
62
|
inputIOS: {
|
|
59
|
-
width:
|
|
63
|
+
width: 45,
|
|
60
64
|
textAlign: 'center',
|
|
61
65
|
overflow: 'visible',
|
|
62
66
|
fontSize: 12,
|
|
67
|
+
backgroundColor: theme.colors.backgroundGray100,
|
|
68
|
+
paddingVertical: 8,
|
|
69
|
+
paddingRight: 15,
|
|
70
|
+
paddingLeft: 0,
|
|
71
|
+
borderRadius: 7.6,
|
|
63
72
|
},
|
|
64
73
|
icon: {
|
|
65
74
|
position: 'absolute',
|
|
66
75
|
zIndex: 1,
|
|
67
|
-
top:
|
|
68
|
-
end:
|
|
76
|
+
top: 0,
|
|
77
|
+
end: 8,
|
|
69
78
|
},
|
|
70
79
|
placeholder: {
|
|
71
80
|
color: theme.colors.secundaryContrast
|
|
@@ -79,9 +88,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
79
88
|
|
|
80
89
|
const [isActive, setActiveState] = useState(false)
|
|
81
90
|
const [isServiceOpen, setIsServiceOpen] = useState(false)
|
|
82
|
-
const [productQuantityState, setProductQuantityState] = useState(product.quantity.toString())
|
|
83
|
-
// const [setHeight, setHeightState] = useState({ height: new Animated.Value(0) })
|
|
84
|
-
// const [setRotate, setRotateState] = useState({ angle: new Animated.Value(0) })
|
|
91
|
+
const [productQuantityState, setProductQuantityState] = useState<any>(product.quantity.toString())
|
|
85
92
|
|
|
86
93
|
const productInfo = () => {
|
|
87
94
|
if (isCartProduct) {
|
|
@@ -109,20 +116,6 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
109
116
|
setIsServiceOpen(true)
|
|
110
117
|
}
|
|
111
118
|
|
|
112
|
-
/* const toggleAccordion = () => {
|
|
113
|
-
if ((!product?.valid_menu && isCartProduct)) return
|
|
114
|
-
if (isActive) {
|
|
115
|
-
Animated.timing(setHeight.height, {
|
|
116
|
-
toValue: 100,
|
|
117
|
-
duration: 500,
|
|
118
|
-
easing: Easing.linear,
|
|
119
|
-
useNativeDriver: false,
|
|
120
|
-
}).start()
|
|
121
|
-
} else {
|
|
122
|
-
setHeightState({height: new Animated.Value(0)})
|
|
123
|
-
}
|
|
124
|
-
}*/
|
|
125
|
-
|
|
126
119
|
const handleChangeQuantity = (value: string) => {
|
|
127
120
|
if (!orderState.loading) {
|
|
128
121
|
setProductQuantityState(value)
|
|
@@ -139,10 +132,6 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
139
132
|
return `${quantity} x ${name} ${pos} +${price}`
|
|
140
133
|
}
|
|
141
134
|
|
|
142
|
-
/*useEffect(() => {
|
|
143
|
-
toggleAccordion()
|
|
144
|
-
}, [isActive])*/
|
|
145
|
-
|
|
146
135
|
const productOptions = getProductMax && [...Array(getProductMax(product) + 1),].map((_: any, opt: number) => {
|
|
147
136
|
return {
|
|
148
137
|
label: opt === 0 ? t('REMOVE', 'Remove') : opt.toString(),
|
|
@@ -150,15 +139,23 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
150
139
|
}
|
|
151
140
|
})
|
|
152
141
|
|
|
142
|
+
useEffect(() => {
|
|
143
|
+
if (product.quantity.toString() === productQuantityState || productQuantityState) {
|
|
144
|
+
setProductQuantityState(null)
|
|
145
|
+
}
|
|
146
|
+
}, [product.quantity])
|
|
147
|
+
|
|
153
148
|
return (
|
|
154
149
|
<>
|
|
155
150
|
<AccordionSection>
|
|
156
151
|
<Accordion
|
|
157
|
-
isValid={product?.valid ?? true}
|
|
158
|
-
onPress={() => (!product?.valid_menu && isCartProduct)
|
|
159
|
-
? {}
|
|
160
|
-
: setActiveState(!isActive)}
|
|
161
152
|
activeOpacity={1}
|
|
153
|
+
isValid={product?.valid ?? true}
|
|
154
|
+
onPress={
|
|
155
|
+
(!product?.valid_menu && isCartProduct) ||
|
|
156
|
+
!(productInfo().ingredients.length > 0 || productInfo().options.length > 0 || !!product.comment)
|
|
157
|
+
? null : () => setActiveState(!isActive)
|
|
158
|
+
}
|
|
162
159
|
>
|
|
163
160
|
<View style={{ flexDirection: 'row', alignItems: 'flex-start' }}>
|
|
164
161
|
<ContentInfo>
|
|
@@ -215,16 +212,20 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
215
212
|
<RNPickerSelect
|
|
216
213
|
items={productOptions}
|
|
217
214
|
onValueChange={handleChangeQuantity}
|
|
218
|
-
value={productQuantityState}
|
|
215
|
+
value={productQuantityState ?? product.quantity.toString()}
|
|
219
216
|
style={pickerStyle}
|
|
220
217
|
useNativeAndroidPickerStyle={false}
|
|
221
218
|
placeholder={{}}
|
|
222
|
-
touchableWrapperProps={{
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
219
|
+
touchableWrapperProps={{ style: { width: 45 } }}
|
|
220
|
+
Icon={() => (
|
|
221
|
+
<View style={pickerStyle.icon}>
|
|
222
|
+
<OIcon
|
|
223
|
+
src={theme.images.general.arrow_down}
|
|
224
|
+
color={theme.colors.textNormal}
|
|
225
|
+
width={8}
|
|
226
|
+
/>
|
|
227
|
+
</View>
|
|
228
|
+
)}
|
|
228
229
|
disabled={orderState.loading}
|
|
229
230
|
/>
|
|
230
231
|
</ProductInfo>
|
|
@@ -17,9 +17,6 @@ export const Accordion = styled.TouchableOpacity`
|
|
|
17
17
|
|
|
18
18
|
export const ProductInfo = styled.View`
|
|
19
19
|
margin-horizontal: 7px;
|
|
20
|
-
background-color: ${(props: any) => props.theme.colors.backgroundGray100};
|
|
21
|
-
padding: 4px 12px 4px 0px;
|
|
22
|
-
border-radius: 7.6px;
|
|
23
20
|
`
|
|
24
21
|
|
|
25
22
|
export const ProductQuantity = styled.View`
|