ordering-ui-react-native 0.14.35 → 0.14.37-release

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 (57) hide show
  1. package/package.json +2 -2
  2. package/src/components/BusinessItemAccordion/index.tsx +2 -2
  3. package/src/components/BusinessProductsListing/index.tsx +10 -26
  4. package/src/components/Cart/index.tsx +136 -62
  5. package/src/components/Cart/styles.tsx +7 -0
  6. package/src/components/Checkout/index.tsx +32 -168
  7. package/src/components/OrderDetails/index.tsx +102 -34
  8. package/src/components/OrderDetails/styles.tsx +7 -0
  9. package/src/components/OrderSummary/index.tsx +142 -58
  10. package/src/components/OrderSummary/styles.tsx +10 -2
  11. package/src/components/PaymentOptions/index.tsx +3 -1
  12. package/src/components/PaymentOptionsWebView/index.tsx +150 -0
  13. package/src/components/ProductForm/index.tsx +6 -8
  14. package/src/components/SingleProductCard/index.tsx +1 -1
  15. package/src/components/StripeElementsForm/index.tsx +28 -13
  16. package/src/components/TaxInformation/index.tsx +58 -26
  17. package/src/components/UpsellingProducts/index.tsx +13 -31
  18. package/src/components/VerifyPhone/styles.tsx +1 -2
  19. package/src/index.tsx +2 -0
  20. package/src/navigators/HomeNavigator.tsx +6 -0
  21. package/src/pages/ProductDetails.tsx +55 -0
  22. package/src/types/index.tsx +2 -0
  23. package/src/types/react-native-color-matrix-image-filters/index.d.ts +1 -0
  24. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  25. package/themes/kiosk/src/components/Cart/index.tsx +14 -21
  26. package/themes/kiosk/src/components/CartItem/index.tsx +9 -7
  27. package/themes/kiosk/src/components/CustomerName/index.tsx +2 -1
  28. package/themes/kiosk/src/components/Intro/index.tsx +4 -4
  29. package/themes/kiosk/src/components/OptionCard/index.tsx +11 -6
  30. package/themes/kiosk/src/components/PaymentOptions/index.tsx +46 -44
  31. package/themes/original/index.tsx +4 -0
  32. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -9
  33. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -2
  34. package/themes/original/src/components/BusinessPreorder/index.tsx +37 -35
  35. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +35 -0
  36. package/themes/original/src/components/BusinessProductsListing/index.tsx +22 -49
  37. package/themes/original/src/components/BusinessesListing/index.tsx +100 -75
  38. package/themes/original/src/components/Cart/index.tsx +129 -52
  39. package/themes/original/src/components/Cart/styles.tsx +8 -1
  40. package/themes/original/src/components/Checkout/index.tsx +38 -2
  41. package/themes/original/src/components/Help/index.tsx +1 -1
  42. package/themes/original/src/components/Home/index.tsx +5 -3
  43. package/themes/original/src/components/MessageListing/index.tsx +4 -2
  44. package/themes/original/src/components/OrderDetails/index.tsx +117 -43
  45. package/themes/original/src/components/OrderDetails/styles.tsx +8 -1
  46. package/themes/original/src/components/OrderSummary/index.tsx +141 -51
  47. package/themes/original/src/components/OrderSummary/styles.tsx +7 -0
  48. package/themes/original/src/components/PaymentOptionWallet/index.tsx +6 -2
  49. package/themes/original/src/components/PaymentOptions/index.tsx +8 -2
  50. package/themes/original/src/components/ProductForm/index.tsx +67 -77
  51. package/themes/original/src/components/ProductForm/styles.tsx +9 -2
  52. package/themes/original/src/components/SingleProductCard/index.tsx +21 -11
  53. package/themes/original/src/components/SingleProductCard/styles.tsx +4 -0
  54. package/themes/original/src/components/StripeElementsForm/index.tsx +28 -13
  55. package/themes/original/src/components/TaxInformation/index.tsx +59 -27
  56. package/themes/original/src/components/UpsellingProducts/index.tsx +90 -84
  57. package/themes/original/src/types/index.tsx +6 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-react-native",
3
- "version": "0.14.35",
3
+ "version": "0.14.37-release",
4
4
  "description": "Reusable components made in react native",
5
5
  "main": "src/index.tsx",
6
6
  "author": "ordering.inc",
@@ -55,7 +55,7 @@
55
55
  "@types/styled-components": "^5.1.3",
56
56
  "axios": "^0.21.0",
57
57
  "moment": "^2.29.1",
58
- "ordering-components": "github:Ordering-Inc/ordering-components#development",
58
+ "ordering-components": "github:Ordering-Inc/ordering-components#release",
59
59
  "patch-package": "^6.4.7",
60
60
  "postinstall-postinstall": "^2.1.0",
61
61
  "prop-types": "^15.7.2",
@@ -80,9 +80,9 @@ export const BusinessItemAccordion = (props: any) => {
80
80
  </BIContentInfo>
81
81
  </BIInfo>
82
82
 
83
- {!isClosed && !!isProducts && cart?.valid_products && cart?.total > 0 && (
83
+ {!isClosed && !!isProducts && cart?.valid_products && (
84
84
  <BITotal>
85
- <OText color='#000'>{parsePrice(cart?.total)}</OText>
85
+ <OText color='#000'>{parsePrice(cart?.total >= 0 ? cart?.total : 0)}</OText>
86
86
  <OText>{t('CART_TOTAL', 'Total')}</OText>
87
87
  </BITotal>
88
88
  )}
@@ -10,7 +10,7 @@ import {
10
10
  useToast,
11
11
  ToastType
12
12
  } from 'ordering-components/native'
13
- import { OButton, OModal, OText } from '../shared'
13
+ import { OButton, OText } from '../shared'
14
14
  import { BusinessBasicInformation } from '../BusinessBasicInformation'
15
15
  import { SearchBar } from '../SearchBar'
16
16
  import { BusinessProductsCategories } from '../BusinessProductsCategories'
@@ -45,7 +45,6 @@ const BusinessProductsListingUI = (props: BusinessProductsListingParams) => {
45
45
  errorQuantityProducts,
46
46
  header,
47
47
  logo,
48
- productModal,
49
48
  businessId,
50
49
  categoryId,
51
50
  productId,
@@ -75,7 +74,13 @@ const BusinessProductsListingUI = (props: BusinessProductsListingParams) => {
75
74
  }
76
75
 
77
76
  const onProductClick = (product: any) => {
78
- setCurProduct(product)
77
+ onRedirect('ProductDetails', {
78
+ product: product,
79
+ businessSlug: business.slug,
80
+ businessId: business.id,
81
+ categoryId: categoryId,
82
+ productId: productId,
83
+ })
79
84
  }
80
85
 
81
86
  const handleCancel = () => {
@@ -89,10 +94,6 @@ const BusinessProductsListingUI = (props: BusinessProductsListingParams) => {
89
94
  updateProductModal && updateProductModal(null)
90
95
  }
91
96
 
92
- const handlerProductAction = () => {
93
- handleCloseProductModal()
94
- }
95
-
96
97
  const handleUpsellingPage = () => {
97
98
  onRedirect('CheckoutNavigator', {
98
99
  screen: 'CheckoutPage',
@@ -258,27 +259,9 @@ const BusinessProductsListingUI = (props: BusinessProductsListingParams) => {
258
259
  handleClick={() => setOpenUpselling(true)}
259
260
  />
260
261
  )}
261
- <OModal
262
- open={openModalProduct || !!curProduct || (!!productModal.product && !orderState.loading)}
263
- onClose={handleCloseProductModal}
264
- entireModal
265
- customClose
266
- isAvoidKeyBoardView
267
- >
268
- <ProductForm
269
- product={curProduct || productModal.product}
270
- businessSlug={business?.slug}
271
- businessId={businessId || business?.id || productModal?.product?.category?.business_id}
272
- onClose={handleCloseProductModal}
273
- navigation={navigation}
274
- onSave={handlerProductAction}
275
- setProductLogin={setProductLogin}
276
- categoryId={categoryId}
277
- productId={productId}
278
- />
279
- </OModal>
280
262
  {openUpselling && (
281
263
  <UpsellingProducts
264
+ setOpenUpselling={setOpenUpselling}
282
265
  businessId={currentCart?.business_id}
283
266
  business={currentCart?.business}
284
267
  cartProducts={currentCart?.products}
@@ -286,6 +269,7 @@ const BusinessProductsListingUI = (props: BusinessProductsListingParams) => {
286
269
  openUpselling={openUpselling}
287
270
  canOpenUpselling={canOpenUpselling}
288
271
  setCanOpenUpselling={setCanOpenUpselling}
272
+ onRedirect={onRedirect}
289
273
  />
290
274
  )}
291
275
  </>
@@ -8,7 +8,7 @@ import {
8
8
  useValidationFields,
9
9
  } from 'ordering-components/native';
10
10
 
11
- import { CContainer, CheckoutAction, } from './styles';
11
+ import { CContainer, CheckoutAction, Divider } from './styles';
12
12
 
13
13
  import { OSBill, OSTable, OSCoupon, OSTotal, OSRow } from '../OrderSummary/styles';
14
14
 
@@ -16,8 +16,7 @@ import { ProductItemAccordion } from '../ProductItemAccordion';
16
16
  import { BusinessItemAccordion } from '../BusinessItemAccordion';
17
17
  import { CouponControl } from '../CouponControl';
18
18
 
19
- import { OButton, OModal, OText, OInput } from '../shared';
20
- import { ProductForm } from '../ProductForm';
19
+ import { OButton, OModal, OText, OInput, OAlert } from '../shared';
21
20
  import { UpsellingProducts } from '../UpsellingProducts';
22
21
  import { verifyDecimals } from '../../utils';
23
22
  import { useTheme } from 'styled-components/native';
@@ -36,7 +35,8 @@ const CartUI = (props: any) => {
36
35
  handleCartOpen,
37
36
  setIsCartsLoading,
38
37
  handleChangeComment,
39
- commentState
38
+ commentState,
39
+ handleRemoveOfferClick
40
40
  } = props
41
41
 
42
42
  const theme = useTheme()
@@ -46,11 +46,10 @@ const CartUI = (props: any) => {
46
46
  const [{ parsePrice, parseNumber, parseDate }] = useUtils()
47
47
  const [validationFields] = useValidationFields()
48
48
 
49
- const [openProduct, setModalIsOpen] = useState(false)
50
- const [curProduct, setCurProduct] = useState<any>(null)
51
49
  const [openUpselling, setOpenUpselling] = useState(false)
52
50
  const [canOpenUpselling, setCanOpenUpselling] = useState(false)
53
51
  const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, data: null })
52
+ const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
54
53
 
55
54
  const isCartPending = cart?.status === 2
56
55
  const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled
@@ -64,14 +63,15 @@ const CartUI = (props: any) => {
64
63
  }
65
64
 
66
65
  const handleEditProduct = (product: any) => {
67
- setCurProduct(product)
68
- setModalIsOpen(true)
69
- }
70
-
71
- const handlerProductAction = (product: any) => {
72
- if (Object.keys(product).length) {
73
- setModalIsOpen(false)
74
- }
66
+ props?.onNavigationRedirect &&
67
+ props?.onNavigationRedirect('ProductDetails', {
68
+ businessId: cart?.business_id,
69
+ isCartProduct: true,
70
+ productCart: product,
71
+ businessSlug: cart?.business?.slug,
72
+ categoryId: product?.category_id,
73
+ productId: product?.id,
74
+ })
75
75
  }
76
76
 
77
77
  const handleClearProducts = async () => {
@@ -106,6 +106,22 @@ const CartUI = (props: any) => {
106
106
  }
107
107
  }
108
108
 
109
+ const getIncludedTaxesDiscounts = () => {
110
+ return cart?.taxes?.filter((tax : any) => tax?.type === 1)?.reduce((carry : number, tax : any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
111
+ }
112
+
113
+ const onRemoveOffer = (id: number) => {
114
+ setConfirm({
115
+ open: true,
116
+ content: [t('QUESTION_DELETE_OFFER', 'Are you sure that you want to delete the offer?')],
117
+ title: t('OFFER', 'Offer'),
118
+ handleOnAccept: () => {
119
+ setConfirm({ ...confirm, open: false })
120
+ handleRemoveOfferClick(id)
121
+ }
122
+ })
123
+ }
124
+
109
125
  return (
110
126
  <CContainer>
111
127
  <BusinessItemAccordion
@@ -137,11 +153,11 @@ const CartUI = (props: any) => {
137
153
  {parsePrice(cart?.subtotal + getIncludedTaxes())}
138
154
  </OText>
139
155
  </OSTable>
140
- {cart?.discount > 0 && cart?.total >= 0 && (
156
+ {cart?.discount > 0 && cart?.total >= 0 && cart?.offers?.length === 0 && (
141
157
  <OSTable>
142
158
  {cart?.discount_type === 1 ? (
143
159
  <OText>
144
- {t('DISCOUNT', 'Discount')}
160
+ {t('DISCOUNT', 'Discount')}{' '}
145
161
  <OText>{`(${verifyDecimals(cart?.discount_rate, parsePrice)}%)`}</OText>
146
162
  </OText>
147
163
  ) : (
@@ -150,18 +166,35 @@ const CartUI = (props: any) => {
150
166
  <OText>- {parsePrice(cart?.discount || 0)}</OText>
151
167
  </OSTable>
152
168
  )}
169
+ {
170
+ cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 1)?.map((offer: any) => (
171
+ <OSTable key={offer.id}>
172
+ <OSRow>
173
+ <OText>{offer.name}</OText>
174
+ {offer.rate_type === 1 && (
175
+ <OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
176
+ )}
177
+ <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_1' })}>
178
+ <AntIcon name='exclamationcircleo' size={18} color={theme.colors.primary} />
179
+ </TouchableOpacity>
180
+ <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
181
+ <AntIcon name='closecircle' size={18} color={theme.colors.primary} />
182
+ </TouchableOpacity>
183
+ </OSRow>
184
+ <OText>
185
+ - {parsePrice(offer?.summary?.discount)}
186
+ </OText>
187
+ </OSTable>
188
+ ))
189
+ }
190
+ <Divider />
153
191
  {cart?.subtotal_with_discount > 0 && cart?.discount > 0 && cart?.total >= 0 && (
154
192
  <OSTable>
155
- {cart?.discount_type === 1 ? (
156
- <>
157
- <OText>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
158
- <OText>{parsePrice(cart?.subtotal_with_discount + cart?.tax || 0)}</OText>
159
- </>
193
+ <OText numberOfLines={1}>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
194
+ {cart?.business?.tax_type === 1 ? (
195
+ <OText>{parsePrice(cart?.subtotal_with_discount + getIncludedTaxesDiscounts() ?? 0)}</OText>
160
196
  ) : (
161
- <>
162
- <OText>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
163
- <OText>{parsePrice(cart?.subtotal_with_discount || 0)}</OText>
164
- </>
197
+ <OText>{parsePrice(cart?.subtotal_with_discount ?? 0)}</OText>
165
198
  )}
166
199
  </OSTable>
167
200
  )}
@@ -173,11 +206,11 @@ const CartUI = (props: any) => {
173
206
  {tax.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
174
207
  {`(${verifyDecimals(tax?.rate, parseNumber)}%)`}{' '}
175
208
  </OText>
176
- <TouchableOpacity onPress={() => setOpenTaxModal({ open: true, data: tax })} >
209
+ <TouchableOpacity onPress={() => setOpenTaxModal({ open: true, data: tax, type: 'tax' })} >
177
210
  <AntIcon name='exclamationcircleo' size={18} color={theme.colors.primary} />
178
211
  </TouchableOpacity>
179
212
  </OSRow>
180
- <OText>{parsePrice(tax?.summary?.tax || 0)}</OText>
213
+ <OText>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0)}</OText>
181
214
  </OSTable>
182
215
  ))
183
216
  }
@@ -189,11 +222,32 @@ const CartUI = (props: any) => {
189
222
  {fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
190
223
  ({parsePrice(fee?.fixed)} + {fee?.percentage}%){' '}
191
224
  </OText>
192
- <TouchableOpacity onPress={() => setOpenTaxModal({ open: true, data: fee })} >
225
+ <TouchableOpacity onPress={() => setOpenTaxModal({ open: true, data: fee, type: 'fee' })} >
226
+ <AntIcon name='exclamationcircleo' size={18} color={theme.colors.primary} />
227
+ </TouchableOpacity>
228
+ </OSRow>
229
+ <OText>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0)}</OText>
230
+ </OSTable>
231
+ ))
232
+ }
233
+ {
234
+ cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 3)?.map((offer: any) => (
235
+ <OSTable key={offer.id}>
236
+ <OSRow>
237
+ <OText>{offer.name}</OText>
238
+ {offer.rate_type === 1 && (
239
+ <OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
240
+ )}
241
+ <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_3' })}>
193
242
  <AntIcon name='exclamationcircleo' size={18} color={theme.colors.primary} />
194
243
  </TouchableOpacity>
244
+ <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
245
+ <AntIcon name='closecircle' size={18} color={theme.colors.primary} />
246
+ </TouchableOpacity>
195
247
  </OSRow>
196
- <OText>{parsePrice(fee?.summary?.fixed + fee?.summary?.percentage || 0)}</OText>
248
+ <OText>
249
+ - {parsePrice(offer?.summary?.discount)}
250
+ </OText>
197
251
  </OSTable>
198
252
  ))
199
253
  }
@@ -203,6 +257,27 @@ const CartUI = (props: any) => {
203
257
  <OText>{parsePrice(cart?.delivery_price)}</OText>
204
258
  </OSTable>
205
259
  )}
260
+ {
261
+ cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any) => (
262
+ <OSTable key={offer.id}>
263
+ <OSRow>
264
+ <OText>{offer.name}</OText>
265
+ {offer.rate_type === 1 && (
266
+ <OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
267
+ )}
268
+ <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_2' })}>
269
+ <AntIcon name='exclamationcircleo' size={18} color={theme.colors.primary} />
270
+ </TouchableOpacity>
271
+ <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
272
+ <AntIcon name='closecircle' size={18} color={theme.colors.primary} />
273
+ </TouchableOpacity>
274
+ </OSRow>
275
+ <OText>
276
+ - {parsePrice(offer?.summary?.discount)}
277
+ </OText>
278
+ </OSTable>
279
+ ))
280
+ }
206
281
  {cart?.driver_tip > 0 && (
207
282
  <OSTable>
208
283
  <OText>
@@ -233,7 +308,7 @@ const CartUI = (props: any) => {
233
308
  {t('TOTAL', 'Total')}
234
309
  </OText>
235
310
  <OText style={{ fontWeight: 'bold' }} color={theme.colors.primary}>
236
- {cart?.total >= 1 && parsePrice(cart?.total)}
311
+ {parsePrice(cart?.total >= 0 ? cart?.total : 0)}
237
312
  </OText>
238
313
  </OSTable>
239
314
  </OSTotal>
@@ -292,45 +367,44 @@ const CartUI = (props: any) => {
292
367
  </CheckoutAction>
293
368
  )}
294
369
  </BusinessItemAccordion>
295
- <OModal
296
- open={openProduct}
297
- entireModal
298
- customClose
299
- onClose={() => setModalIsOpen(false)}
300
- isAvoidKeyBoardView
301
- >
302
- <ProductForm
303
- isCartProduct
304
- productCart={curProduct}
305
- businessSlug={cart?.business?.slug}
306
- businessId={cart?.business_id}
307
- categoryId={curProduct?.category_id}
308
- productId={curProduct?.id}
309
- onSave={handlerProductAction}
310
- onClose={() => setModalIsOpen(false)}
311
- />
312
-
313
- </OModal>
314
370
 
315
- {openUpselling && (
316
- <UpsellingProducts
317
- handleUpsellingPage={handleUpsellingPage}
318
- openUpselling={openUpselling}
319
- businessId={cart?.business_id}
320
- business={cart?.business}
321
- cartProducts={cart?.products}
322
- canOpenUpselling={canOpenUpselling}
323
- setCanOpenUpselling={setCanOpenUpselling}
324
- />
325
- )}
371
+ {
372
+ openUpselling && (
373
+ <UpsellingProducts
374
+ handleUpsellingPage={handleUpsellingPage}
375
+ openUpselling={openUpselling}
376
+ businessId={cart?.business_id}
377
+ business={cart?.business}
378
+ cartProducts={cart?.products}
379
+ canOpenUpselling={canOpenUpselling}
380
+ setCanOpenUpselling={setCanOpenUpselling}
381
+ setOpenUpselling={setOpenUpselling}
382
+ onRedirect={props.onNavigationRedirect}
383
+ />
384
+ )
385
+ }
326
386
  <OModal
327
387
  open={openTaxModal.open}
328
388
  onClose={() => setOpenTaxModal({ open: false, data: null })}
329
389
  entireModal
390
+ title={`${openTaxModal.data?.name ||
391
+ t('INHERIT_FROM_BUSINESS', 'Inherit from business')} ${openTaxModal.data?.rate_type !== 2 ? `(${typeof openTaxModal.data?.rate === 'number' ? `${openTaxModal.data?.rate}%` : `${parsePrice(openTaxModal.data?.fixed ?? 0)} + ${openTaxModal.data?.percentage}%`})` : ''} `}
330
392
  >
331
- <TaxInformation data={openTaxModal.data} products={cart?.products} />
393
+ <TaxInformation
394
+ type={openTaxModal.type}
395
+ data={openTaxModal.data}
396
+ products={cart?.products}
397
+ />
332
398
  </OModal>
333
- </CContainer>
399
+ <OAlert
400
+ open={confirm.open}
401
+ title={confirm.title}
402
+ content={confirm.content}
403
+ onAccept={confirm.handleOnAccept}
404
+ onCancel={() => setConfirm({ ...confirm, open: false, title: null })}
405
+ onClose={() => setConfirm({ ...confirm, open: false, title: null })}
406
+ />
407
+ </CContainer >
334
408
  )
335
409
  }
336
410
 
@@ -26,3 +26,10 @@ export const CheckoutAction = styled.View`
26
26
  margin-top: 10px;
27
27
  margin-bottom: 10px;
28
28
  `
29
+
30
+ export const Divider = styled.View`
31
+ border-color: #EAEAEA;
32
+ border-width: 1px;
33
+ margin-top: 5px;
34
+ margin-bottom: 10px;
35
+ `