ordering-ui-react-native 0.22.76 → 0.22.77-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 (137) hide show
  1. package/package.json +5 -7
  2. package/src/components/BusinessesListing/index.tsx +1 -1
  3. package/src/components/Checkout/index.tsx +40 -39
  4. package/src/components/VerifyPhone/styles.tsx +1 -2
  5. package/src/context/OfflineActions/index.tsx +236 -0
  6. package/src/providers/AlertProvider.tsx +3 -1
  7. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +5 -3
  8. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  9. package/themes/business/src/components/BusinessController/index.tsx +8 -3
  10. package/themes/business/src/components/BusinessProductList/index.tsx +3 -2
  11. package/themes/business/src/components/Chat/index.tsx +15 -3
  12. package/themes/business/src/components/DriverMap/index.tsx +44 -33
  13. package/themes/business/src/components/FloatingButton/index.tsx +3 -2
  14. package/themes/business/src/components/LanguageSelector/index.tsx +1 -1
  15. package/themes/business/src/components/LoginForm/index.tsx +123 -98
  16. package/themes/business/src/components/LogoutButton/index.tsx +13 -4
  17. package/themes/business/src/components/MapView/RenderMarker.tsx +146 -0
  18. package/themes/business/src/components/MapView/index.tsx +68 -142
  19. package/themes/business/src/components/NewOrderNotification/index.tsx +38 -54
  20. package/themes/business/src/components/OrderDetails/Business.tsx +56 -20
  21. package/themes/business/src/components/OrderDetails/Delivery.tsx +111 -42
  22. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +146 -36
  23. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +51 -28
  24. package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
  25. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +17 -16
  26. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
  27. package/themes/business/src/components/OrderSummary/index.tsx +271 -176
  28. package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
  29. package/themes/business/src/components/OrdersOption/index.tsx +207 -144
  30. package/themes/business/src/components/OrdersOption/styles.tsx +14 -0
  31. package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
  32. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +20 -8
  33. package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
  34. package/themes/business/src/components/PreviousOrders/styles.tsx +2 -1
  35. package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
  36. package/themes/business/src/components/PrinterEdition/index.tsx +143 -75
  37. package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
  38. package/themes/business/src/components/PrinterSettings/index.tsx +1 -1
  39. package/themes/business/src/components/ProductItemAccordion/index.tsx +15 -16
  40. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  41. package/themes/business/src/components/StoresList/index.tsx +2 -2
  42. package/themes/business/src/components/UserProfileForm/index.tsx +48 -10
  43. package/themes/business/src/components/UserProfileForm/styles.tsx +7 -0
  44. package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
  45. package/themes/business/src/config/currency.tsx +1010 -0
  46. package/themes/business/src/hooks/useLocation.tsx +16 -12
  47. package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
  48. package/themes/business/src/types/index.tsx +26 -4
  49. package/themes/business/src/utils/index.tsx +26 -2
  50. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  52. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  53. package/themes/kiosk/src/components/Checkout/index.tsx +9 -5
  54. package/themes/kiosk/src/components/CustomerName/index.tsx +1 -1
  55. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  56. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  57. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  58. package/themes/kiosk/src/components/PaymentOptions/index.tsx +121 -57
  59. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  60. package/themes/original/index.tsx +223 -219
  61. package/themes/original/src/components/AddressForm/index.tsx +76 -17
  62. package/themes/original/src/components/AppleLogin/index.tsx +3 -4
  63. package/themes/original/src/components/BusinessController/index.tsx +4 -2
  64. package/themes/original/src/components/BusinessItemAccordion/index.tsx +1 -1
  65. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +102 -90
  66. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +7 -3
  67. package/themes/original/src/components/BusinessListingSearch/index.tsx +8 -13
  68. package/themes/original/src/components/BusinessPreorder/index.tsx +30 -17
  69. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +72 -69
  70. package/themes/original/src/components/BusinessProductsList/index.tsx +4 -5
  71. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  72. package/themes/original/src/components/BusinessProductsListing/index.tsx +5 -4
  73. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +1 -0
  74. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +2 -1
  75. package/themes/original/src/components/Cart/index.tsx +42 -12
  76. package/themes/original/src/components/Checkout/index.tsx +126 -98
  77. package/themes/original/src/components/FloatingButton/index.tsx +1 -1
  78. package/themes/original/src/components/GPSButton/index.tsx +2 -1
  79. package/themes/original/src/components/GoogleMap/index.tsx +3 -2
  80. package/themes/original/src/components/Help/functions.tsx +76 -0
  81. package/themes/original/src/components/Help/index.tsx +74 -29
  82. package/themes/original/src/components/Help/styles.tsx +4 -1
  83. package/themes/original/src/components/HelpOptions/index.tsx +53 -0
  84. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  85. package/themes/original/src/components/Home/index.tsx +36 -11
  86. package/themes/original/src/components/LastOrder/index.tsx +1 -1
  87. package/themes/original/src/components/LoginForm/Otp/index.tsx +1 -1
  88. package/themes/original/src/components/LoginForm/index.tsx +883 -852
  89. package/themes/original/src/components/MessageListing/index.tsx +1 -1
  90. package/themes/original/src/components/Messages/index.tsx +562 -555
  91. package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
  92. package/themes/original/src/components/MomentOption/index.tsx +141 -61
  93. package/themes/original/src/components/MomentOption/styles.tsx +1 -1
  94. package/themes/original/src/components/MomentSelector/index.tsx +5 -2
  95. package/themes/original/src/components/MultiCheckout/index.tsx +78 -33
  96. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +2 -2
  97. package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -2
  98. package/themes/original/src/components/NavBar/index.tsx +6 -2
  99. package/themes/original/src/components/NotFoundSource/index.tsx +40 -39
  100. package/themes/original/src/components/NotFoundSource/styles.tsx +18 -9
  101. package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
  102. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +11 -4
  103. package/themes/original/src/components/OrderDetails/index.tsx +44 -20
  104. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  105. package/themes/original/src/components/OrderProgress/index.tsx +5 -4
  106. package/themes/original/src/components/OrderSummary/index.tsx +32 -11
  107. package/themes/original/src/components/OrderTypeSelector/index.tsx +120 -120
  108. package/themes/original/src/components/OrdersOption/index.tsx +325 -325
  109. package/themes/original/src/components/PaymentOptionWallet/index.tsx +1 -0
  110. package/themes/original/src/components/PaymentOptions/index.tsx +471 -459
  111. package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
  112. package/themes/original/src/components/ProductItemAccordion/index.tsx +28 -37
  113. package/themes/original/src/components/ProductOptionSubOption/index.tsx +15 -14
  114. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  115. package/themes/original/src/components/SignupForm/index.tsx +1010 -971
  116. package/themes/original/src/components/SingleOrderCard/index.tsx +8 -5
  117. package/themes/original/src/components/SingleProductCard/index.tsx +2 -1
  118. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  119. package/themes/original/src/components/StripeCardsList/index.tsx +7 -1
  120. package/themes/original/src/components/StripeElementsForm/index.tsx +2 -2
  121. package/themes/original/src/components/TaxInformation/index.tsx +3 -2
  122. package/themes/original/src/components/UserDetails/index.tsx +17 -16
  123. package/themes/original/src/components/UserFormDetails/index.tsx +109 -67
  124. package/themes/original/src/components/UserVerification/index.tsx +70 -23
  125. package/themes/original/src/components/VerifyPhone/index.tsx +1 -1
  126. package/themes/original/src/components/shared/OInput.tsx +97 -97
  127. package/themes/original/src/components/shared/OModal.tsx +7 -2
  128. package/themes/original/src/providers/AlertProvider.tsx +1 -1
  129. package/themes/original/src/types/index.tsx +700 -695
  130. package/themes/original/src/utils/index.tsx +50 -34
  131. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  132. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +0 -62
  133. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +0 -12
  134. package/themes/original/src/components/HelpGuide/index.tsx +0 -68
  135. package/themes/original/src/components/HelpGuide/styles.tsx +0 -12
  136. package/themes/original/src/components/HelpOrder/index.tsx +0 -71
  137. package/themes/original/src/components/HelpOrder/styles.tsx +0 -13
@@ -37,6 +37,7 @@ import {
37
37
  WrapperActions
38
38
  } from './styles'
39
39
 
40
+ const CONDITIONAL_CODES = [1787]
40
41
  const TIME_COUNTDOWN = 60 * 10 // 10 minutes
41
42
 
42
43
  const UserDetails = (props: any) => {
@@ -60,6 +61,7 @@ const UserVerificationUI = (props: any) => {
60
61
  checkVerifyEmailCode,
61
62
  checkVerifyPhoneCode,
62
63
  cleanErrorsState,
64
+ useWhatsappVerification,
63
65
  } = props
64
66
 
65
67
  const theme = useTheme();
@@ -83,6 +85,7 @@ const UserVerificationUI = (props: any) => {
83
85
 
84
86
  const [phoneState, setPhoneState] = useState<any>(null)
85
87
  const [verificationState, setVerificationState] = useState({ email: false, phone: false })
88
+ const [selectedChannel, setSelectedChannel] = useState(2)
86
89
 
87
90
  const codeDigitsArray = new Array(CODE_LENGTH).fill(0);
88
91
 
@@ -172,13 +175,25 @@ const UserVerificationUI = (props: any) => {
172
175
  );
173
176
  };
174
177
 
175
- const handleSendOtp = (opt: string = '') => {
178
+ const handleSendOtp = (opt: string = '', channel?: number) => {
176
179
  setTimer(`${TIME_COUNTDOWN / 60}:00`)
177
180
  setIsSendCodeAgain(true)
178
181
  if (opt === 'phone') {
182
+ const ch = channel || 2
183
+ setSelectedChannel(ch)
184
+ let cellphone = phoneState?.cellphone
185
+ let country_phone_code = phoneState?.country_phone_code
186
+
187
+ if (CONDITIONAL_CODES.includes(Number(country_phone_code))) {
188
+ if (Number(country_phone_code) === 1787) {
189
+ cellphone = `787${cellphone}`
190
+ country_phone_code = '1'
191
+ }
192
+ }
179
193
  sendVerifyPhoneCode({
180
- cellphone: phoneState?.cellphone,
181
- country_phone_code: phoneState?.country_phone_code
194
+ cellphone,
195
+ country_phone_code,
196
+ channel: ch
182
197
  })
183
198
  return
184
199
  }
@@ -188,8 +203,8 @@ const UserVerificationUI = (props: any) => {
188
203
  const setupUserPhoneNumber = () => {
189
204
  if (!user || !user?.cellphone || !user?.country_phone_code) return
190
205
  setPhoneState({
191
- cellphone: user?.cellphone,
192
- country_phone_code: user?.country_phone_code,
206
+ cellphone: user?.country_code === "PR" ? user?.cellphone.replace('787', '') : user?.cellphone,
207
+ country_phone_code: user?.country_code === "PR" ? '1787' : user?.country_phone_code,
193
208
  formatted: `+${user?.country_phone_code} ${user?.cellphone}`
194
209
  })
195
210
  }
@@ -239,7 +254,8 @@ const UserVerificationUI = (props: any) => {
239
254
  checkVerifyPhoneCode({
240
255
  cellphone: phoneState?.cellphone,
241
256
  country_phone_code: +(phoneState?.country_phone_code),
242
- code: otpState
257
+ code: otpState,
258
+ channel: selectedChannel
243
259
  })
244
260
  return
245
261
  }
@@ -399,6 +415,7 @@ const UserVerificationUI = (props: any) => {
399
415
  defaultCode={phoneState?.country_phone_code.replace('+', '')}
400
416
  boxStyle={style.phoneSelect}
401
417
  inputStyle={style.phoneInputStyle}
418
+ defaultCodeFallback={phoneState?.country_phone_code.replace('+', '')}
402
419
  textStyle={{ color: theme.colors.textNormal, fontSize: 12, padding: 0 }}
403
420
  noDropIcon
404
421
  isDisabled
@@ -449,7 +466,7 @@ const UserVerificationUI = (props: any) => {
449
466
 
450
467
  <WrapperText>
451
468
  <TouchableOpacity
452
- onPress={() => handleSendOtp('phone')}
469
+ onPress={() => handleSendOtp('phone', selectedChannel)}
453
470
  disabled={verifyPhoneState?.loadingSendCode || verifyPhoneState?.loadingCheckCode}
454
471
  >
455
472
  <OText color={theme.colors.primary}>
@@ -464,28 +481,58 @@ const UserVerificationUI = (props: any) => {
464
481
  </Container>
465
482
  {!!phoneState?.cellphone && (
466
483
  <ButtonsActions>
467
- <View style={{ width: '100%' }}>
468
- <OButton
469
- onClick={(verificationState.email || verificationState.phone)
470
- ? () => setVerificationState({ email: false, phone: false })
471
- : () => handleSendOtp(isPhoneVerifyRequired && !isEmailVerifyRequired ? 'phone' : '')
472
- }
473
- text={(verificationState.email || verificationState.phone) ? t('CANCEL', 'Cancel') : t('SEND_CODE', 'Send code')}
474
- bgColor={(verificationState.email || verificationState.phone) ? theme.colors.secundary : theme.colors.primary}
475
- borderColor={(verificationState.email || verificationState.phone) ? theme.colors.secundary : theme.colors.primary}
476
- textStyle={{ color: (verificationState.email || verificationState.phone) ? 'black' : 'white' }}
477
- imgRightSrc={null}
478
- isLoading={verifyEmailState?.loadingSendCode || verifyEmailState?.loadingCheckCode || verifyPhoneState?.loadingSendCode || verifyPhoneState?.loadingCheckCode}
479
- style={(verificationState.email || verificationState.phone) ? style.btnStyle : { borderRadius: 7.6 }}
480
- />
481
- </View>
484
+ {(verificationState.email || verificationState.phone) ? (
485
+ <View style={{ width: '100%' }}>
486
+ <OButton
487
+ onClick={() => setVerificationState({ email: false, phone: false })}
488
+ text={t('CANCEL', 'Cancel')}
489
+ bgColor={theme.colors.secundary}
490
+ borderColor={theme.colors.secundary}
491
+ textStyle={{ color: 'black' }}
492
+ imgRightSrc={null}
493
+ isLoading={verifyEmailState?.loadingSendCode || verifyEmailState?.loadingCheckCode || verifyPhoneState?.loadingSendCode || verifyPhoneState?.loadingCheckCode}
494
+ style={style.btnStyle}
495
+ />
496
+ </View>
497
+ ) : useWhatsappVerification && isPhoneVerifyRequired && !isEmailVerifyRequired ? (
498
+ <View style={{ flexDirection: 'row', gap: 10, width: '100%' }}>
499
+ <OButton
500
+ onClick={() => handleSendOtp('phone', 2)}
501
+ text={t('SEND_BY_SMS', 'Send by SMS')}
502
+ imgRightSrc={null}
503
+ isLoading={verifyPhoneState?.loadingSendCode || verifyPhoneState?.loadingCheckCode}
504
+ parentStyle={{ flex: 1 }}
505
+ style={{ borderRadius: 7.6 }}
506
+ />
507
+ <OButton
508
+ onClick={() => handleSendOtp('phone', 4)}
509
+ text={t('SEND_BY_WHATSAPP', 'Send by WhatsApp')}
510
+ imgRightSrc={null}
511
+ isLoading={verifyPhoneState?.loadingSendCode || verifyPhoneState?.loadingCheckCode}
512
+ parentStyle={{ flex: 1 }}
513
+ style={{ borderRadius: 7.6 }}
514
+ />
515
+ </View>
516
+ ) : (
517
+ <View style={{ width: '100%' }}>
518
+ <OButton
519
+ onClick={() => handleSendOtp(isPhoneVerifyRequired && !isEmailVerifyRequired ? 'phone' : '')}
520
+ text={t('SEND_CODE', 'Send code')}
521
+ imgRightSrc={null}
522
+ isLoading={verifyEmailState?.loadingSendCode || verifyEmailState?.loadingCheckCode || verifyPhoneState?.loadingSendCode || verifyPhoneState?.loadingCheckCode}
523
+ style={{ borderRadius: 7.6 }}
524
+ />
525
+ </View>
526
+ )}
482
527
  </ButtonsActions>
483
528
  )}
484
529
  <View style={{ paddingHorizontal: 20, paddingBottom: 80 }}>
485
530
  <UserDetails
486
531
  user={user}
487
532
  isEdit
488
- isVerifiedPhone
533
+ isPhoneVerifyRequired={isPhoneVerifyRequired}
534
+ cellphoneOtpSent={verificationState.phone}
535
+ setPhoneState={setPhoneState}
489
536
  dontToggleEditMode
490
537
  />
491
538
  </View>
@@ -177,7 +177,7 @@ export const VerifyPhone = (props: any) => {
177
177
  size={16}
178
178
  color={theme.colors.error}
179
179
  >
180
- {`* ${t(getTraduction(e))}`}
180
+ {`* ${t(getTraduction(e, t))}`}
181
181
  </OText>
182
182
  ))}
183
183
  </ErrorSection>
@@ -14,33 +14,33 @@ const Input = styled.TextInput`
14
14
  `;
15
15
 
16
16
  interface Props extends TextInputProps {
17
- bgColor?: string;
18
- borderColor?: string;
19
- isRequired?: boolean;
20
- requiredMsg?: string;
21
- isDisabled?: boolean;
22
- isSecured?: boolean;
23
- style?: ViewStyle;
24
- placeholder?: string;
25
- icon?: ImageSourcePropType | string;
26
- iconRight?: ImageSourcePropType;
27
- iconColor?: string;
28
- iconRightColor?: string;
29
- iconStyle?: ImageStyle;
30
- iconRightStyle?: ImageStyle;
31
- iconCustomRight?: any;
32
- value?: string;
33
- onChange?: any;
34
- name?: string;
35
- type?: string;
36
- multiline?: boolean;
37
- vertorIcon?: string;
38
- vectorIconColor?: string;
39
- forwardRef?: any;
40
- inputStyle?: TextStyle;
41
- wrapperRef?: any;
42
- onPress?: any;
43
- isFocusHighlight?: boolean
17
+ bgColor?: string;
18
+ borderColor?: string;
19
+ isRequired?: boolean;
20
+ requiredMsg?: string;
21
+ isDisabled?: boolean;
22
+ isSecured?: boolean;
23
+ style?: ViewStyle;
24
+ placeholder?: string;
25
+ icon?: ImageSourcePropType | string;
26
+ iconRight?: ImageSourcePropType;
27
+ iconColor?: string;
28
+ iconRightColor?: string;
29
+ iconStyle?: ImageStyle;
30
+ iconRightStyle?: ImageStyle;
31
+ iconCustomRight?: any;
32
+ value?: string;
33
+ onChange?: any;
34
+ name?: string;
35
+ type?: string;
36
+ multiline?: boolean;
37
+ vertorIcon?: string;
38
+ vectorIconColor?: string;
39
+ forwardRef?: any;
40
+ inputStyle?: TextStyle;
41
+ wrapperRef?: any;
42
+ onPress?: any;
43
+ isFocusHighlight?: boolean
44
44
  }
45
45
 
46
46
  const Wrapper = styled.Pressable`
@@ -59,79 +59,79 @@ const Wrapper = styled.Pressable`
59
59
  `;
60
60
 
61
61
  const OInput = (props: Props): React.ReactElement => {
62
- const theme = useTheme();
63
- const [inputFocused, setInputFocused] = React.useState(false)
64
- return (
65
- <Wrapper
66
- onPress={() => { props.forwardRef?.current?.focus?.(); props.onPress && props.onPress() }}
67
- style={{
68
- backgroundColor: props.bgColor,
69
- borderColor: !props.isFocusHighlight
70
- ? props.borderColor
71
- : inputFocused ? theme.colors.primary : theme.colors.border,
72
- ...props.style,
73
- borderRadius: parseInt(theme?.general?.components?.inputs?.borderRadius) || props.style?.borderRadius
74
- }}>
75
- {props.icon ? (
76
- <OIcon
77
- src={props.icon}
78
- color={props.iconColor}
79
- width={16}
80
- height={20}
81
- style={{ marginRight: 10, ...props.iconStyle }}
82
- />
83
- ) : null}
84
- {props.vertorIcon && (
85
- <MaterialIcon name={props?.vertorIcon} size={20} color={props?.vectorIconColor} style={{ marginHorizontal: 10 }} />
86
- )}
87
- <Input
88
- autoFocus={props?.autoFocus}
89
- name={props.name}
90
- secureTextEntry={props.isSecured}
91
- onChangeText={(txt: any) => props.name ? props.onChange({ target: { name: props.name, value: txt } }) : props.onChange(txt)}
92
- defaultValue={props.value}
93
- placeholder={props.placeholder ? props.placeholder : ''}
94
- keyboardType={props.type || 'default'}
95
- multiline={props.multiline}
96
- scrollEnabled={props.multiline}
97
- editable={!props.isDisabled}
98
- autoCapitalize={props.autoCapitalize}
99
- autoCompleteType={props.autoCompleteType}
100
- autoCorrect={props.autoCorrect}
101
- returnKeyType={props.returnKeyType}
102
- onSubmitEditing={props.onSubmitEditing}
103
- blurOnSubmit={props.blurOnSubmit}
104
- ref={(e: any) => {
105
- props.forwardRef && (props.forwardRef.current = e)
106
- }}
107
- style={{
108
- ...(theme?.general?.components?.inputs?.color && {
109
- color: theme?.general?.components?.inputs?.color
110
- }),
111
- ...props?.inputStyle
112
- }}
113
- onFocus={() => setInputFocused(true)}
114
- onBlur={() => setInputFocused(false)}
115
- />
116
- {props.iconRight && (
117
- <OIcon
118
- src={props.iconRight}
119
- color={props.iconRightColor}
120
- width={16}
121
- height={16}
122
- style={{ ...props.iconRightStyle }}
123
- />
124
- )}
125
- {props.iconCustomRight}
126
- </Wrapper>
127
- );
62
+ const theme = useTheme();
63
+ const [inputFocused, setInputFocused] = React.useState(false)
64
+ return (
65
+ <Wrapper
66
+ onPress={() => { props.forwardRef?.current?.focus?.(); props.onPress && props.onPress() }}
67
+ style={{
68
+ backgroundColor: props.bgColor,
69
+ borderColor: !props.isFocusHighlight
70
+ ? props.borderColor
71
+ : inputFocused ? theme.colors.primary : theme.colors.border,
72
+ ...props.style,
73
+ borderRadius: parseInt(theme?.general?.components?.inputs?.borderRadius) || props.style?.borderRadius
74
+ }}>
75
+ {props.icon ? (
76
+ <OIcon
77
+ src={props.icon}
78
+ color={props.iconColor}
79
+ width={16}
80
+ height={20}
81
+ style={{ marginRight: 10, ...props.iconStyle }}
82
+ />
83
+ ) : null}
84
+ {props.vertorIcon && (
85
+ <MaterialIcon name={props?.vertorIcon} size={20} color={props?.vectorIconColor} style={{ marginHorizontal: 10 }} />
86
+ )}
87
+ <Input
88
+ autoFocus={props?.autoFocus}
89
+ name={props.name}
90
+ secureTextEntry={props.isSecured}
91
+ onChangeText={(txt: any) => props.name ? props.onChange({ target: { name: props.name, value: txt } }) : props.onChange(txt)}
92
+ defaultValue={props.value}
93
+ placeholder={props.placeholder ? props.placeholder : ''}
94
+ keyboardType={props.type || 'default'}
95
+ multiline={props.multiline}
96
+ scrollEnabled={props.multiline}
97
+ editable={!props.isDisabled}
98
+ autoCapitalize={props.autoCapitalize}
99
+ autoCompleteType={props.autoCompleteType}
100
+ autoCorrect={props.autoCorrect}
101
+ returnKeyType={props.returnKeyType}
102
+ onSubmitEditing={props.onSubmitEditing}
103
+ blurOnSubmit={props.blurOnSubmit}
104
+ ref={(e: any) => {
105
+ props.forwardRef && (props.forwardRef.current = e)
106
+ }}
107
+ style={{
108
+ ...(theme?.general?.components?.inputs?.color && {
109
+ color: theme?.general?.components?.inputs?.color
110
+ }),
111
+ ...props?.inputStyle
112
+ }}
113
+ onFocus={() => setInputFocused(true)}
114
+ onBlur={() => setInputFocused(false)}
115
+ />
116
+ {props.iconRight && (
117
+ <OIcon
118
+ src={props.iconRight}
119
+ color={props.iconRightColor}
120
+ width={16}
121
+ height={16}
122
+ style={{ ...props.iconRightStyle }}
123
+ />
124
+ )}
125
+ {props.iconCustomRight}
126
+ </Wrapper>
127
+ );
128
128
  };
129
129
 
130
130
  OInput.defaultProps = {
131
- iconColor: '#959595',
132
- bgColor: 'white',
133
- borderColor: 'white',
134
- isFocusHighlight: false
131
+ iconColor: '#959595',
132
+ bgColor: 'white',
133
+ borderColor: 'white',
134
+ isFocusHighlight: false
135
135
  };
136
136
 
137
137
  export default OInput;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { Modal, StyleSheet, Text, SafeAreaView, View, TouchableOpacity, Platform } from "react-native";
3
3
  import styled from 'styled-components/native';
4
4
  import AntDesignIcon from 'react-native-vector-icons/AntDesign'
5
-
5
+ import { Toast } from '../../../../../src/components/shared/OToast'
6
6
  interface Props {
7
7
  open?: boolean;
8
8
  title?: string;
@@ -22,6 +22,7 @@ interface Props {
22
22
  styleCloseButton?: any,
23
23
  isAvoidKeyBoardView?: boolean;
24
24
  styleContainerCloseButton?: any;
25
+ showToastInsideModal?: boolean;
25
26
  }
26
27
  const KeyboardView = styled.KeyboardAvoidingView`
27
28
  flex-grow: 1;
@@ -47,7 +48,8 @@ const OModal = (props: Props): React.ReactElement => {
47
48
  style,
48
49
  styleCloseButton,
49
50
  styleContainerCloseButton,
50
- isAvoidKeyBoardView
51
+ isAvoidKeyBoardView,
52
+ showToastInsideModal
51
53
  } = props
52
54
 
53
55
  const renderSafeAreaView = () => (
@@ -94,6 +96,9 @@ const OModal = (props: Props): React.ReactElement => {
94
96
  onRequestClose={() => onClose && onClose()}
95
97
  style={{ height: '100%', flex: 1, position: 'absolute', ...style, zIndex: 9999 }}
96
98
  >
99
+ {showToastInsideModal && (
100
+ <Toast />
101
+ )}
97
102
  {isAvoidKeyBoardView ? (
98
103
  <KeyboardView
99
104
  enabled
@@ -28,7 +28,7 @@ const Alert = (props: Props) => {
28
28
  show={open}
29
29
  showProgress={false}
30
30
  title={title}
31
- message={getTraduction(content?.[0])}
31
+ message={getTraduction(content?.[0], t)}
32
32
  closeOnTouchOutside={true}
33
33
  closeOnHardwareBackPress={false}
34
34
  showConfirmButton={true}