ordering-ui-react-native 0.12.56 → 0.12.60

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 (183) hide show
  1. package/package.json +1 -1
  2. package/src/components/AppleLogin/index.tsx +14 -8
  3. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +8 -8
  4. package/themes/business/src/components/OrderDetails/styles.tsx +1 -0
  5. package/themes/doordash/src/components/Cart/index.tsx +1 -0
  6. package/themes/doordash/src/components/OrderSummary/index.tsx +1 -0
  7. package/themes/instacart/src/components/OrderDetails/index.tsx +2 -2
  8. package/themes/single-business/src/components/Cart/index.tsx +127 -16
  9. package/themes/single-business/src/components/Cart/styles.tsx +39 -0
  10. package/themes/single-business/src/components/CartContent/index.tsx +56 -52
  11. package/themes/single-business/src/components/CartContent/styles.tsx +2 -16
  12. package/themes/single-business/src/components/OrderDetails/index.tsx +724 -708
  13. package/themes/single-business/src/components/OrderSummary/index.tsx +189 -154
  14. package/themes/franchises/index.tsx +0 -111
  15. package/themes/franchises/src/components/ActiveOrders/index.tsx +0 -134
  16. package/themes/franchises/src/components/ActiveOrders/styles.tsx +0 -44
  17. package/themes/franchises/src/components/AddressDetails/index.tsx +0 -77
  18. package/themes/franchises/src/components/AddressDetails/styles.tsx +0 -21
  19. package/themes/franchises/src/components/AddressForm/index.tsx +0 -837
  20. package/themes/franchises/src/components/AddressForm/styles.tsx +0 -27
  21. package/themes/franchises/src/components/AddressList/index.tsx +0 -338
  22. package/themes/franchises/src/components/AddressList/styles.tsx +0 -20
  23. package/themes/franchises/src/components/AppleLogin/index.tsx +0 -149
  24. package/themes/franchises/src/components/AppleLogin/styles.tsx +0 -21
  25. package/themes/franchises/src/components/BottomWrapper/index.tsx +0 -29
  26. package/themes/franchises/src/components/BusinessBasicInformation/index.tsx +0 -310
  27. package/themes/franchises/src/components/BusinessBasicInformation/styles.tsx +0 -66
  28. package/themes/franchises/src/components/BusinessController/index.tsx +0 -184
  29. package/themes/franchises/src/components/BusinessController/styles.tsx +0 -64
  30. package/themes/franchises/src/components/BusinessFeaturedController/index.tsx +0 -189
  31. package/themes/franchises/src/components/BusinessFeaturedController/styles.tsx +0 -50
  32. package/themes/franchises/src/components/BusinessInformation/index.tsx +0 -202
  33. package/themes/franchises/src/components/BusinessInformation/styles.tsx +0 -39
  34. package/themes/franchises/src/components/BusinessItemAccordion/index.tsx +0 -125
  35. package/themes/franchises/src/components/BusinessItemAccordion/styles.tsx +0 -54
  36. package/themes/franchises/src/components/BusinessProductsCategories/index.tsx +0 -87
  37. package/themes/franchises/src/components/BusinessProductsCategories/styles.tsx +0 -8
  38. package/themes/franchises/src/components/BusinessProductsList/index.tsx +0 -199
  39. package/themes/franchises/src/components/BusinessProductsList/styles.tsx +0 -14
  40. package/themes/franchises/src/components/BusinessProductsListing/index.tsx +0 -292
  41. package/themes/franchises/src/components/BusinessProductsListing/styles.tsx +0 -30
  42. package/themes/franchises/src/components/BusinessReviews/index.tsx +0 -249
  43. package/themes/franchises/src/components/BusinessReviews/styles.tsx +0 -59
  44. package/themes/franchises/src/components/BusinessTypeFilter/index.tsx +0 -127
  45. package/themes/franchises/src/components/BusinessTypeFilter/styles.tsx +0 -40
  46. package/themes/franchises/src/components/BusinessesListing/index.tsx +0 -339
  47. package/themes/franchises/src/components/BusinessesListing/styles.tsx +0 -92
  48. package/themes/franchises/src/components/Cart/index.tsx +0 -332
  49. package/themes/franchises/src/components/Cart/styles.tsx +0 -28
  50. package/themes/franchises/src/components/CartContent/index.tsx +0 -60
  51. package/themes/franchises/src/components/CartContent/styles.tsx +0 -19
  52. package/themes/franchises/src/components/Checkout/index.tsx +0 -664
  53. package/themes/franchises/src/components/Checkout/styles.tsx +0 -89
  54. package/themes/franchises/src/components/CouponControl/index.tsx +0 -119
  55. package/themes/franchises/src/components/CouponControl/styles.tsx +0 -22
  56. package/themes/franchises/src/components/DriverTips/index.tsx +0 -167
  57. package/themes/franchises/src/components/DriverTips/styles.tsx +0 -63
  58. package/themes/franchises/src/components/FacebookLogin/index.tsx +0 -107
  59. package/themes/franchises/src/components/FacebookLogin/styles.tsx +0 -21
  60. package/themes/franchises/src/components/FloatingButton/index.tsx +0 -100
  61. package/themes/franchises/src/components/FloatingButton/styles.tsx +0 -26
  62. package/themes/franchises/src/components/ForgotPasswordForm/index.tsx +0 -156
  63. package/themes/franchises/src/components/ForgotPasswordForm/styles.tsx +0 -11
  64. package/themes/franchises/src/components/GPSButton/index.tsx +0 -84
  65. package/themes/franchises/src/components/GPSButton/styles.ts +0 -6
  66. package/themes/franchises/src/components/GoogleLogin/index.tsx +0 -122
  67. package/themes/franchises/src/components/GoogleLogin/styles.tsx +0 -23
  68. package/themes/franchises/src/components/GoogleMap/index.tsx +0 -229
  69. package/themes/franchises/src/components/Help/index.tsx +0 -56
  70. package/themes/franchises/src/components/Help/styles.tsx +0 -11
  71. package/themes/franchises/src/components/HelpAccountAndPayment/index.tsx +0 -68
  72. package/themes/franchises/src/components/HelpAccountAndPayment/styles.tsx +0 -6
  73. package/themes/franchises/src/components/HelpGuide/index.tsx +0 -67
  74. package/themes/franchises/src/components/HelpGuide/styles.tsx +0 -6
  75. package/themes/franchises/src/components/HelpOrder/index.tsx +0 -79
  76. package/themes/franchises/src/components/HelpOrder/styles.tsx +0 -6
  77. package/themes/franchises/src/components/Home/index.tsx +0 -102
  78. package/themes/franchises/src/components/Home/styles.tsx +0 -18
  79. package/themes/franchises/src/components/LanguageSelector/index.tsx +0 -98
  80. package/themes/franchises/src/components/LanguageSelector/styles.tsx +0 -7
  81. package/themes/franchises/src/components/LastOrder/index.tsx +0 -168
  82. package/themes/franchises/src/components/LastOrder/styles.tsx +0 -16
  83. package/themes/franchises/src/components/LastOrders/index.tsx +0 -104
  84. package/themes/franchises/src/components/LastOrders/styles.tsx +0 -17
  85. package/themes/franchises/src/components/LoginForm/index.tsx +0 -512
  86. package/themes/franchises/src/components/LoginForm/styles.tsx +0 -77
  87. package/themes/franchises/src/components/LogoutButton/index.tsx +0 -36
  88. package/themes/franchises/src/components/Messages/index.tsx +0 -359
  89. package/themes/franchises/src/components/Messages/styles.tsx +0 -20
  90. package/themes/franchises/src/components/MomentOption/index.tsx +0 -321
  91. package/themes/franchises/src/components/MomentOption/styles.tsx +0 -66
  92. package/themes/franchises/src/components/NavBar/index.tsx +0 -129
  93. package/themes/franchises/src/components/NotFoundSource/index.tsx +0 -50
  94. package/themes/franchises/src/components/NotFoundSource/styles.tsx +0 -16
  95. package/themes/franchises/src/components/Notifications/index.tsx +0 -120
  96. package/themes/franchises/src/components/Notifications/styles.ts +0 -21
  97. package/themes/franchises/src/components/OrderDetails/index.tsx +0 -828
  98. package/themes/franchises/src/components/OrderDetails/styles.tsx +0 -120
  99. package/themes/franchises/src/components/OrderSummary/index.tsx +0 -266
  100. package/themes/franchises/src/components/OrderSummary/styles.tsx +0 -41
  101. package/themes/franchises/src/components/OrderTypeSelector/index.tsx +0 -92
  102. package/themes/franchises/src/components/OrderTypeSelector/styles.tsx +0 -27
  103. package/themes/franchises/src/components/OrdersOption/index.tsx +0 -243
  104. package/themes/franchises/src/components/OrdersOption/styles.tsx +0 -5
  105. package/themes/franchises/src/components/PaymentOptionCash/index.tsx +0 -102
  106. package/themes/franchises/src/components/PaymentOptionCash/styles.tsx +0 -18
  107. package/themes/franchises/src/components/PaymentOptionStripe/index.tsx +0 -234
  108. package/themes/franchises/src/components/PaymentOptionStripe/styles.tsx +0 -71
  109. package/themes/franchises/src/components/PaymentOptions/index.tsx +0 -430
  110. package/themes/franchises/src/components/PaymentOptions/styles.tsx +0 -77
  111. package/themes/franchises/src/components/PhoneInputNumber/index.tsx +0 -127
  112. package/themes/franchises/src/components/PhoneInputNumber/styles.tsx +0 -3
  113. package/themes/franchises/src/components/PreviousOrders/index.tsx +0 -188
  114. package/themes/franchises/src/components/PreviousOrders/styles.tsx +0 -33
  115. package/themes/franchises/src/components/ProductForm/index.tsx +0 -695
  116. package/themes/franchises/src/components/ProductForm/styles.tsx +0 -78
  117. package/themes/franchises/src/components/ProductIngredient/index.tsx +0 -43
  118. package/themes/franchises/src/components/ProductIngredient/styles.tsx +0 -7
  119. package/themes/franchises/src/components/ProductItemAccordion/index.tsx +0 -276
  120. package/themes/franchises/src/components/ProductItemAccordion/styles.tsx +0 -57
  121. package/themes/franchises/src/components/ProductOption/index.tsx +0 -50
  122. package/themes/franchises/src/components/ProductOption/styles.tsx +0 -11
  123. package/themes/franchises/src/components/ProductOptionSubOption/index.tsx +0 -146
  124. package/themes/franchises/src/components/ProductOptionSubOption/styles.tsx +0 -32
  125. package/themes/franchises/src/components/ReviewDriver/index.tsx +0 -221
  126. package/themes/franchises/src/components/ReviewDriver/styles.tsx +0 -46
  127. package/themes/franchises/src/components/ReviewOrder/index.tsx +0 -325
  128. package/themes/franchises/src/components/ReviewOrder/styles.tsx +0 -46
  129. package/themes/franchises/src/components/ReviewProduct/index.tsx +0 -275
  130. package/themes/franchises/src/components/ReviewProduct/styles.tsx +0 -53
  131. package/themes/franchises/src/components/SearchBar/index.tsx +0 -139
  132. package/themes/franchises/src/components/SignupForm/index.tsx +0 -643
  133. package/themes/franchises/src/components/SignupForm/styles.tsx +0 -27
  134. package/themes/franchises/src/components/SingleProductCard/index.tsx +0 -124
  135. package/themes/franchises/src/components/SingleProductCard/styles.tsx +0 -23
  136. package/themes/franchises/src/components/StripeCardForm/index.tsx +0 -97
  137. package/themes/franchises/src/components/StripeCardForm/naked.tsx +0 -128
  138. package/themes/franchises/src/components/StripeCardForm/styles.tsx +0 -32
  139. package/themes/franchises/src/components/StripeCardsList/index.tsx +0 -182
  140. package/themes/franchises/src/components/StripeElementsForm/index.tsx +0 -204
  141. package/themes/franchises/src/components/StripeElementsForm/naked.tsx +0 -90
  142. package/themes/franchises/src/components/StripeElementsForm/styles.tsx +0 -13
  143. package/themes/franchises/src/components/StripeRedirectForm/index.tsx +0 -159
  144. package/themes/franchises/src/components/StripeRedirectForm/styles.tsx +0 -23
  145. package/themes/franchises/src/components/TagSelector/index.tsx +0 -94
  146. package/themes/franchises/src/components/TagSelector/styles.ts +0 -0
  147. package/themes/franchises/src/components/TaxInformation/index.tsx +0 -51
  148. package/themes/franchises/src/components/TaxInformation/styles.tsx +0 -9
  149. package/themes/franchises/src/components/UpsellingProducts/index.tsx +0 -222
  150. package/themes/franchises/src/components/UpsellingProducts/styles.tsx +0 -50
  151. package/themes/franchises/src/components/UserDetails/index.tsx +0 -134
  152. package/themes/franchises/src/components/UserDetails/styles.tsx +0 -26
  153. package/themes/franchises/src/components/UserFormDetails/index.tsx +0 -351
  154. package/themes/franchises/src/components/UserFormDetails/styles.tsx +0 -35
  155. package/themes/franchises/src/components/UserProfile/index.tsx +0 -179
  156. package/themes/franchises/src/components/UserProfile/styles.ts +0 -42
  157. package/themes/franchises/src/components/UserProfileForm/index.tsx +0 -253
  158. package/themes/franchises/src/components/UserProfileForm/styles.tsx +0 -29
  159. package/themes/franchises/src/components/VerifyPhone/index.tsx +0 -188
  160. package/themes/franchises/src/components/VerifyPhone/styles.tsx +0 -43
  161. package/themes/franchises/src/components/shared/OAlert.tsx +0 -55
  162. package/themes/franchises/src/components/shared/OBottomPopup.tsx +0 -73
  163. package/themes/franchises/src/components/shared/OBottomStickBar.tsx +0 -62
  164. package/themes/franchises/src/components/shared/OButton.tsx +0 -132
  165. package/themes/franchises/src/components/shared/ODropDown.tsx +0 -169
  166. package/themes/franchises/src/components/shared/OIcon.tsx +0 -53
  167. package/themes/franchises/src/components/shared/OIconButton.tsx +0 -127
  168. package/themes/franchises/src/components/shared/OIconText.tsx +0 -54
  169. package/themes/franchises/src/components/shared/OInput.tsx +0 -113
  170. package/themes/franchises/src/components/shared/OKeyButton.tsx +0 -35
  171. package/themes/franchises/src/components/shared/OModal.tsx +0 -172
  172. package/themes/franchises/src/components/shared/OText.tsx +0 -52
  173. package/themes/franchises/src/components/shared/OTextarea.tsx +0 -36
  174. package/themes/franchises/src/components/shared/OToast.tsx +0 -93
  175. package/themes/franchises/src/components/shared/OToggle.tsx +0 -158
  176. package/themes/franchises/src/components/shared/index.tsx +0 -29
  177. package/themes/franchises/src/config/constants.tsx +0 -57
  178. package/themes/franchises/src/layouts/Container.tsx +0 -23
  179. package/themes/franchises/src/layouts/SafeAreaContainer.tsx +0 -6
  180. package/themes/franchises/src/providers/AlertProvider.tsx +0 -43
  181. package/themes/franchises/src/providers/StoreUtil.tsx +0 -50
  182. package/themes/franchises/src/types/index.tsx +0 -445
  183. package/themes/franchises/src/utils/index.tsx +0 -222
@@ -1,25 +1,25 @@
1
1
  import React, { useState } from 'react';
2
- import { TouchableOpacity, View } from 'react-native'
2
+ import { ActivityIndicator, TouchableOpacity, View } from 'react-native'
3
3
  import {
4
- Cart,
5
- useOrder,
6
- useLanguage,
7
- useUtils,
8
- useConfig,
9
- useValidationFields,
4
+ Cart,
5
+ useOrder,
6
+ useLanguage,
7
+ useUtils,
8
+ useConfig,
9
+ useValidationFields,
10
10
  } from 'ordering-components/native';
11
11
 
12
12
  import {
13
- OSContainer,
14
- OSProductList,
15
- OSBill,
16
- OSTable,
13
+ OSContainer,
14
+ OSProductList,
15
+ OSBill,
16
+ OSTable,
17
17
  OSRow
18
18
  } from './styles';
19
19
 
20
20
  import { ProductItemAccordion } from '../ProductItemAccordion';
21
21
  import { CouponControl } from '../CouponControl';
22
- import { OModal, OText } from '../shared';
22
+ import { OInput, OModal, OText } from '../shared';
23
23
  import { ProductForm } from '../ProductForm';
24
24
  import { verifyDecimals } from '../../utils';
25
25
  import { useTheme } from 'styled-components/native';
@@ -27,42 +27,44 @@ import { TaxInformation } from '../TaxInformation';
27
27
  import AntIcon from 'react-native-vector-icons/AntDesign'
28
28
 
29
29
  const OrderSummaryUI = (props: any) => {
30
- const {
31
- cart,
32
- changeQuantity,
33
- getProductMax,
34
- offsetDisabled,
35
- removeProduct,
36
- isCartPending,
37
- isFromCheckout
38
- } = props;
30
+ const {
31
+ cart,
32
+ changeQuantity,
33
+ getProductMax,
34
+ offsetDisabled,
35
+ removeProduct,
36
+ isCartPending,
37
+ isFromCheckout,
38
+ handleChangeComment,
39
+ commentState
40
+ } = props;
39
41
 
40
42
  const theme = useTheme()
41
- const [, t] = useLanguage();
42
- const [{ configs }] = useConfig();
43
- const [orderState] = useOrder();
44
- const [{ parsePrice, parseNumber }] = useUtils();
45
- const [validationFields] = useValidationFields();
46
- const [openProduct, setModalIsOpen] = useState(false)
47
- const [curProduct, setCurProduct] = useState<any>(null)
43
+ const [, t] = useLanguage();
44
+ const [{ configs }] = useConfig();
45
+ const [orderState] = useOrder();
46
+ const [{ parsePrice, parseNumber }] = useUtils();
47
+ const [validationFields] = useValidationFields();
48
+ const [openProduct, setModalIsOpen] = useState(false)
49
+ const [curProduct, setCurProduct] = useState<any>(null)
48
50
  const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, data: null })
49
51
 
50
- const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled;
52
+ const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled;
51
53
 
52
- const handleDeleteClick = (product: any) => {
53
- removeProduct(product, cart)
54
- }
54
+ const handleDeleteClick = (product: any) => {
55
+ removeProduct(product, cart)
56
+ }
55
57
 
56
- const handleEditProduct = (product: any) => {
57
- setCurProduct(product)
58
- setModalIsOpen(true)
59
- }
58
+ const handleEditProduct = (product: any) => {
59
+ setCurProduct(product)
60
+ setModalIsOpen(true)
61
+ }
60
62
 
61
- const handlerProductAction = (product: any) => {
62
- if (Object.keys(product).length) {
63
- setModalIsOpen(false)
64
- }
65
- }
63
+ const handlerProductAction = (product: any) => {
64
+ if (Object.keys(product).length) {
65
+ setModalIsOpen(false)
66
+ }
67
+ }
66
68
 
67
69
  const getIncludedTaxes = () => {
68
70
  if (cart?.taxes === null) {
@@ -74,46 +76,46 @@ const OrderSummaryUI = (props: any) => {
74
76
  }
75
77
  }
76
78
 
77
- return (
78
- <OSContainer>
79
- {cart?.products?.length > 0 && (
80
- <>
81
- <OSProductList>
82
- {cart?.products.map((product: any) => (
83
- <ProductItemAccordion
84
- key={product.code}
85
- product={product}
86
- isCartPending={isCartPending}
87
- isCartProduct
88
- changeQuantity={changeQuantity}
89
- getProductMax={getProductMax}
90
- offsetDisabled={offsetDisabled}
91
- onDeleteProduct={handleDeleteClick}
92
- onEditProduct={handleEditProduct}
93
- isFromCheckout={isFromCheckout}
94
- />
95
- ))}
96
- </OSProductList>
97
- {cart?.valid && (
98
- <OSBill>
99
- <OSTable>
100
- <OText size={12}>{t('SUBTOTAL', 'Subtotal')}</OText>
101
- <OText size={12}>{parsePrice(cart?.subtotal + getIncludedTaxes())}</OText>
102
- </OSTable>
103
- {cart?.discount > 0 && cart?.total >= 0 && (
104
- <OSTable>
105
- {cart?.discount_type === 1 ? (
106
- <OText size={12}>
107
- {t('DISCOUNT', 'Discount')}
108
- <OText size={12}>{`(${verifyDecimals(cart?.discount_rate, parsePrice)}%)`}</OText>
109
- </OText>
110
- ) : (
111
- <OText size={12}>{t('DISCOUNT', 'Discount')}</OText>
112
- )}
113
- <OText size={12}>- {parsePrice(cart?.discount || 0)}</OText>
114
- </OSTable>
115
- )}
116
- {
79
+ return (
80
+ <OSContainer>
81
+ {cart?.products?.length > 0 && (
82
+ <>
83
+ <OSProductList>
84
+ {cart?.products.map((product: any) => (
85
+ <ProductItemAccordion
86
+ key={product.code}
87
+ product={product}
88
+ isCartPending={isCartPending}
89
+ isCartProduct
90
+ changeQuantity={changeQuantity}
91
+ getProductMax={getProductMax}
92
+ offsetDisabled={offsetDisabled}
93
+ onDeleteProduct={handleDeleteClick}
94
+ onEditProduct={handleEditProduct}
95
+ isFromCheckout={isFromCheckout}
96
+ />
97
+ ))}
98
+ </OSProductList>
99
+ {cart?.valid && (
100
+ <OSBill>
101
+ <OSTable>
102
+ <OText size={12}>{t('SUBTOTAL', 'Subtotal')}</OText>
103
+ <OText size={12}>{parsePrice(cart?.subtotal + getIncludedTaxes())}</OText>
104
+ </OSTable>
105
+ {cart?.discount > 0 && cart?.total >= 0 && (
106
+ <OSTable>
107
+ {cart?.discount_type === 1 ? (
108
+ <OText size={12}>
109
+ {t('DISCOUNT', 'Discount')}
110
+ <OText size={12}>{`(${verifyDecimals(cart?.discount_rate, parsePrice)}%)`}</OText>
111
+ </OText>
112
+ ) : (
113
+ <OText size={12}>{t('DISCOUNT', 'Discount')}</OText>
114
+ )}
115
+ <OText size={12}>- {parsePrice(cart?.discount || 0)}</OText>
116
+ </OSTable>
117
+ )}
118
+ {
117
119
  cart?.taxes?.length > 0 && cart?.taxes?.filter((tax: any) => tax?.type === 2 && tax?.rate !== 0).map((tax: any) => (
118
120
  <OSTable key={tax?.id}>
119
121
  <OSRow>
@@ -145,68 +147,101 @@ const OrderSummaryUI = (props: any) => {
145
147
  </OSTable>
146
148
  ))
147
149
  }
148
- {orderState?.options?.type === 1 && cart?.delivery_price > 0 && (
149
- <OSTable>
150
- <OText size={12}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
151
- <OText size={12}>{parsePrice(cart?.delivery_price)}</OText>
152
- </OSTable>
153
- )}
154
- {cart?.driver_tip > 0 && (
155
- <OSTable>
156
- <OText size={12}>
157
- {t('DRIVER_TIP', 'Driver tip')}
158
- {cart?.driver_tip_rate > 0 &&
159
- parseInt(configs?.driver_tip_type?.value, 10) === 2 &&
160
- !parseInt(configs?.driver_tip_use_custom?.value, 10) &&
161
- (
162
- `(${verifyDecimals(cart?.driver_tip_rate, parseNumber)}%)`
163
- )}
164
- </OText>
165
- <OText size={12}>{parsePrice(cart?.driver_tip)}</OText>
166
- </OSTable>
167
- )}
168
- {isCouponEnabled && !isCartPending && (
169
- <View>
170
- <View style={{ paddingVertical: 5 }}>
171
- <CouponControl
172
- businessId={cart.business_id}
173
- price={cart.total}
174
- />
175
- </View>
176
- </View>
177
- )}
178
- {cart?.total >= 1 && (
179
- <View style={{ marginTop: 15, borderTopWidth: 1, borderTopColor: '#d9d9d9' }}>
180
- <OSTable style={{ marginTop: 15 }}>
181
- <OText size={14} style={{ fontWeight: 'bold' }}>
182
- {t('TOTAL', 'Total')}
183
- </OText>
184
- <OText size={14} style={{ fontWeight: 'bold' }} >
185
- {parsePrice(cart?.total)}
186
- </OText>
187
- </OSTable>
188
- </View>
189
- )}
190
- </OSBill>
191
- )}
192
- <OModal
193
- open={openProduct}
194
- entireModal
195
- customClose
196
- onClose={() => setModalIsOpen(false)}
197
- >
198
- <ProductForm
199
- isCartProduct
200
- productCart={curProduct}
201
- businessSlug={cart?.business?.slug}
202
- businessId={cart?.business_id}
203
- categoryId={curProduct?.category_id}
204
- productId={curProduct?.id}
205
- onSave={handlerProductAction}
206
- onClose={() => setModalIsOpen(false)}
207
- isFromCheckout={isFromCheckout}
208
- />
209
- </OModal>
150
+ {orderState?.options?.type === 1 && cart?.delivery_price > 0 && (
151
+ <OSTable>
152
+ <OText size={12}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
153
+ <OText size={12}>{parsePrice(cart?.delivery_price)}</OText>
154
+ </OSTable>
155
+ )}
156
+ {cart?.driver_tip > 0 && (
157
+ <OSTable>
158
+ <OText size={12}>
159
+ {t('DRIVER_TIP', 'Driver tip')}
160
+ {cart?.driver_tip_rate > 0 &&
161
+ parseInt(configs?.driver_tip_type?.value, 10) === 2 &&
162
+ !parseInt(configs?.driver_tip_use_custom?.value, 10) &&
163
+ (
164
+ `(${verifyDecimals(cart?.driver_tip_rate, parseNumber)}%)`
165
+ )}
166
+ </OText>
167
+ <OText size={12}>{parsePrice(cart?.driver_tip)}</OText>
168
+ </OSTable>
169
+ )}
170
+ {isCouponEnabled && !isCartPending && (
171
+ <View>
172
+ <View style={{ paddingVertical: 5 }}>
173
+ <CouponControl
174
+ businessId={cart.business_id}
175
+ price={cart.total}
176
+ />
177
+ </View>
178
+ </View>
179
+ )}
180
+ {cart?.total >= 1 && (
181
+ <View style={{ marginTop: 15, borderTopWidth: 1, borderTopColor: '#d9d9d9' }}>
182
+ <OSTable style={{ marginTop: 15 }}>
183
+ <OText size={14} style={{ fontWeight: 'bold' }}>
184
+ {t('TOTAL', 'Total')}
185
+ </OText>
186
+ <OText size={14} style={{ fontWeight: 'bold' }} >
187
+ {parsePrice(cart?.total)}
188
+ </OText>
189
+ </OSTable>
190
+ </View>
191
+ )}
192
+ {cart?.status !== 2 && (
193
+ <OSTable>
194
+ <View style={{ width: '100%', marginTop: 20 }}>
195
+ <OText size={12}>{t('COMMENTS', 'Comments')}</OText>
196
+ <View style={{ flex: 1, width: '100%' }}>
197
+ <OInput
198
+ value={cart?.comment}
199
+ placeholder={t('SPECIAL_COMMENTS', 'Special Comments')}
200
+ onChange={(value: string) => handleChangeComment(value)}
201
+ style={{
202
+ alignItems: 'flex-start',
203
+ width: '100%',
204
+ height: 100,
205
+ borderColor: theme.colors.textSecondary,
206
+ paddingRight: 50,
207
+ marginTop: 10
208
+ }}
209
+ multiline
210
+ inputStyle={{ color: theme.colors.textPrimary, fontSize: 12 }}
211
+ />
212
+ {commentState?.loading && (
213
+ <View style={{ position: 'absolute', right: 20 }}>
214
+ <ActivityIndicator
215
+ size='large'
216
+ style={{ height: 100 }}
217
+ color={theme.colors.primary}
218
+ />
219
+ </View>
220
+ )}
221
+ </View>
222
+ </View>
223
+ </OSTable>
224
+ )}
225
+ </OSBill>
226
+ )}
227
+ <OModal
228
+ open={openProduct}
229
+ entireModal
230
+ customClose
231
+ onClose={() => setModalIsOpen(false)}
232
+ >
233
+ <ProductForm
234
+ isCartProduct
235
+ productCart={curProduct}
236
+ businessSlug={cart?.business?.slug}
237
+ businessId={cart?.business_id}
238
+ categoryId={curProduct?.category_id}
239
+ productId={curProduct?.id}
240
+ onSave={handlerProductAction}
241
+ onClose={() => setModalIsOpen(false)}
242
+ isFromCheckout={isFromCheckout}
243
+ />
244
+ </OModal>
210
245
  <OModal
211
246
  open={openTaxModal.open}
212
247
  onClose={() => setOpenTaxModal({ open: false, data: null })}
@@ -214,19 +249,19 @@ const OrderSummaryUI = (props: any) => {
214
249
  >
215
250
  <TaxInformation data={openTaxModal.data} products={cart.products} />
216
251
  </OModal>
217
- </>
218
- )}
219
- </OSContainer>
220
- )
252
+ </>
253
+ )}
254
+ </OSContainer>
255
+ )
221
256
  }
222
257
 
223
258
  export const OrderSummary = (props: any) => {
224
- const orderSummaryProps = {
225
- ...props,
226
- UIComponent: OrderSummaryUI
227
- }
259
+ const orderSummaryProps = {
260
+ ...props,
261
+ UIComponent: OrderSummaryUI
262
+ }
228
263
 
229
- return (
230
- <Cart {...orderSummaryProps} />
231
- )
264
+ return (
265
+ <Cart {...orderSummaryProps} />
266
+ )
232
267
  }
@@ -1,111 +0,0 @@
1
- import { AddressForm } from './src/components/AddressForm';
2
- import { AddressDetails } from './src/components/AddressDetails';
3
- import { Home } from './src/components/Home';
4
- import { LoginForm } from './src/components/LoginForm';
5
- import { SignupForm } from './src/components/SignupForm';
6
- import { ActiveOrders } from './src/components/ActiveOrders';
7
- import { AddressList } from './src/components/AddressList';
8
- import { AppleLogin } from './src/components/AppleLogin';
9
- import { BusinessesListing } from './src/components/BusinessesListing';
10
- import { BusinessProductsListing } from './src/components/BusinessProductsListing';
11
- import { CartContent } from './src/components/CartContent';
12
- import { Checkout } from './src/components/Checkout';
13
- import { ForgotPasswordForm } from './src/components/ForgotPasswordForm';
14
- import { MomentOption } from './src/components/MomentOption';
15
- import { OrdersOption } from './src/components/OrdersOption';
16
- import { OrderDetails } from './src/components/OrderDetails';
17
- import { UserProfileForm } from './src/components/UserProfileForm';
18
- import { ReviewOrder } from './src/components/ReviewOrder';
19
- import { UserProfile } from './src/components/UserProfile';
20
- import { NotFoundSource } from './src/components/NotFoundSource';
21
- import { Help } from './src/components/Help';
22
- import { HelpOrder } from './src/components/HelpOrder';
23
- import { HelpGuide } from './src/components/HelpGuide';
24
- import { HelpAccountAndPayment } from './src/components/HelpAccountAndPayment';
25
- import { OrderTypeSelector } from './src/components/OrderTypeSelector';
26
- import Notifications from './src/components/Notifications';
27
- import { ReviewProduct } from './src/components/ReviewProduct';
28
- import { ReviewDriver } from './src/components/ReviewDriver';
29
-
30
- import { Toast } from './src/components/shared/OToast';
31
- import {
32
- OText,
33
- OButton,
34
- OInput,
35
- ODropDown,
36
- OIcon,
37
- OIconText,
38
- OIconButton,
39
- OTextarea,
40
- OToggle,
41
- OKeyButton,
42
- OAlert,
43
- OModal,
44
- OBottomPopup,
45
- } from './src/components/shared';
46
-
47
- import { Container } from './src/layouts/Container';
48
- import { SafeAreaContainer } from './src/layouts/SafeAreaContainer';
49
- import {
50
- _retrieveStoreData,
51
- _setStoreData,
52
- _removeStoreData,
53
- _clearStoreData
54
- } from './src/providers/StoreUtil';
55
-
56
- export {
57
- AddressForm,
58
- AddressDetails,
59
- Home as HomeView,
60
- SignupForm,
61
- LoginForm,
62
- ActiveOrders,
63
- AddressList,
64
- AppleLogin,
65
- BusinessesListing,
66
- BusinessProductsListing,
67
- CartContent,
68
- Checkout,
69
- ForgotPasswordForm,
70
- MomentOption,
71
- OrdersOption,
72
- OrderDetails,
73
- UserProfileForm,
74
- ReviewOrder,
75
- UserProfile,
76
- NotFoundSource,
77
- Help,
78
- HelpGuide,
79
- HelpOrder,
80
- HelpAccountAndPayment,
81
- OrderTypeSelector,
82
- Notifications,
83
- ReviewProduct,
84
- ReviewDriver,
85
-
86
- // OComponents
87
- Toast,
88
- OText,
89
- OButton,
90
- OInput,
91
- ODropDown,
92
- OIcon,
93
- OIconText,
94
- OIconButton,
95
- OTextarea,
96
- OToggle,
97
- OKeyButton,
98
- OAlert,
99
- OModal,
100
- OBottomPopup,
101
-
102
- // layout
103
- Container,
104
- SafeAreaContainer,
105
-
106
- // utils
107
- _retrieveStoreData,
108
- _setStoreData,
109
- _removeStoreData,
110
- _clearStoreData
111
- }
@@ -1,134 +0,0 @@
1
- import React, { useEffect } from 'react';
2
- import { useLanguage, useUtils, useConfig } from 'ordering-components/native';
3
- import { OIcon, OIconButton, OText } from '../shared';
4
- import {
5
- ActiveOrdersContainer,
6
- Card,
7
- Information,
8
- Logo,
9
- OrderInformation,
10
- BusinessInformation,
11
- Price,
12
- } from './styles';
13
- import { View, StyleSheet } from 'react-native';
14
-
15
- import { ActiveOrdersParams } from '../../types';
16
- import moment from 'moment';
17
- import { useTheme } from 'styled-components/native';
18
- import { TouchableOpacity } from 'react-native-gesture-handler';
19
-
20
- export const ActiveOrders = (props: ActiveOrdersParams) => {
21
- const {
22
- onNavigationRedirect,
23
- orders,
24
- pagination,
25
- loadMoreOrders,
26
- getOrderStatus,
27
- isPreorders
28
- } = props;
29
-
30
- const theme = useTheme();
31
- const [{ configs }] = useConfig();
32
- const [, t] = useLanguage();
33
- const [{ parseDate, parsePrice, optimizeImage }] = useUtils();
34
-
35
- const formatDate = (date: string, option?: any) => {
36
- return option?.utc ? moment.utc(date).format('DD/MM/YY \u2022 h:m a') : moment(date).format('DD/MM/YY \u2022 h:m a');
37
- };
38
-
39
- const handleClickCard = (uuid: string) => {
40
- onNavigationRedirect &&
41
- onNavigationRedirect('OrderDetails', { orderId: uuid });
42
- };
43
-
44
- const handleLike = () => {
45
-
46
- }
47
-
48
- const Order = ({ order, index }: { order: any; index: number }) => (
49
- <React.Fragment>
50
- <Card
51
- isMiniCard={configs?.google_maps_api_key?.value}
52
- onPress={() => handleClickCard(order?.uuid)}
53
- activeOpacity={0.7}>
54
- <Information>
55
- {/* {!!order.business?.logo && (
56
- <Logo>
57
- <OIcon
58
- url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
59
- style={styles.logo}
60
- />
61
- </Logo>
62
- )} */}
63
- <OrderInformation>
64
- <BusinessInformation>
65
- <OText size={12} lineHeight={18} weight={600} numberOfLines={1} ellipsizeMode={'tail'}>
66
- {`${t('ORDER_NO', 'Order No')}.${order.id}`}
67
- </OText>
68
- <OText size={10} lineHeight={21} color={theme.colors.textSecondary}>
69
- {order?.delivery_datetime_utc
70
- ? formatDate(order?.delivery_datetime_utc)
71
- : formatDate(order?.delivery_datetime, { utc: false })}
72
- </OText>
73
- {/* {order?.status !== 0 && ( */}
74
- <OText
75
- color={theme.colors.primary}
76
- size={10}
77
- lineHeight={15}
78
- weight={400}
79
- numberOfLines={2}>
80
- {getOrderStatus(order.status)?.value}
81
- </OText>
82
- {/* )} */}
83
- </BusinessInformation>
84
- <Price>
85
- <OText size={12} lineHeight={18}>
86
- {parsePrice(order?.summary?.total || order?.total)}
87
- </OText>
88
- {!isPreorders &&
89
- <TouchableOpacity onPress={handleLike}>
90
- <OIcon src={theme.images.general.heart} color={theme.colors.red} width={16} />
91
- </TouchableOpacity>
92
- }
93
- </Price>
94
- </OrderInformation>
95
- </Information>
96
- </Card>
97
- </React.Fragment>
98
- );
99
-
100
- return (
101
- <>
102
- <ActiveOrdersContainer isMiniCards={configs?.google_maps_api_key?.value}>
103
- {orders.length > 0 &&
104
- orders.map((order: any, index: any) => (
105
- <Order key={order?.id || order?.uuid} order={order} index={index} />
106
- ))}
107
- </ActiveOrdersContainer>
108
- <View
109
- style={{
110
- height: 8,
111
- backgroundColor: theme.colors.backgroundGray100,
112
- marginHorizontal: -40,
113
- }}
114
- />
115
- </>
116
- );
117
- };
118
-
119
- const styles = StyleSheet.create({
120
- logo: {
121
- borderRadius: 7.6,
122
- width: 64,
123
- height: 64,
124
- },
125
- orderNumber: {
126
- flexDirection: 'row',
127
- marginVertical: 3,
128
- },
129
- loadOrders: {
130
- justifyContent: 'center',
131
- alignItems: 'center',
132
- minWidth: 230,
133
- },
134
- });
@@ -1,44 +0,0 @@
1
- import styled from 'styled-components/native'
2
-
3
- export const ActiveOrdersContainer = styled.View`
4
- margin-bottom: 20px;
5
- `
6
-
7
- export const Card = styled.TouchableOpacity`
8
- flex: 1;
9
- `
10
-
11
- export const Map = styled.View`
12
- flex: 1;
13
- height: 125px;
14
- margin-bottom: 22px
15
- `
16
-
17
- export const Information = styled.View`
18
- flex-direction: row;
19
- align-items: center;
20
- padding-vertical: 5px;
21
- margin-bottom: 12px;
22
- `
23
-
24
- export const Logo = styled.View`
25
- border-radius: 7.6px;
26
- box-shadow: 0 1px 2px #0000001A;
27
- `
28
-
29
- export const OrderInformation = styled.View`
30
- flex-direction: row;
31
- justify-content: space-between;
32
- flex: 1;
33
- `
34
-
35
- export const BusinessInformation = styled.View`
36
- flex-basis: 65%;
37
- `
38
-
39
- export const Price = styled.View`
40
- justify-content: flex-start;
41
- align-items: flex-end;
42
- margin-left: 10px;
43
- width: 30%;
44
- `