ordering-ui-react-native 0.14.84 → 0.14.85-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 (149) hide show
  1. package/package.json +6 -3
  2. package/src/DeliveryApp.tsx +34 -2
  3. package/src/assets/images/no-network.png +0 -0
  4. package/src/components/BusinessTypeFilter/index.tsx +9 -2
  5. package/src/components/BusinessTypeFilter/styles.tsx +1 -1
  6. package/src/components/BusinessesListing/index.tsx +1 -1
  7. package/src/components/Cart/index.tsx +1 -1
  8. package/src/components/Checkout/index.tsx +0 -1
  9. package/src/components/Home/index.tsx +3 -5
  10. package/src/components/LanguageSelector/index.tsx +65 -97
  11. package/src/components/LanguageSelector/styles.tsx +4 -17
  12. package/src/components/Messages/index.tsx +38 -30
  13. package/src/components/MomentOption/index.tsx +3 -1
  14. package/src/components/OrderDetails/index.tsx +29 -6
  15. package/src/components/OrdersOption/index.tsx +4 -2
  16. package/src/components/PaymentOptions/index.tsx +7 -16
  17. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  18. package/src/components/ProductForm/index.tsx +1 -1
  19. package/src/components/ProductForm/styles.tsx +1 -0
  20. package/src/components/StripeElementsForm/index.tsx +27 -48
  21. package/src/components/UserProfileForm/index.tsx +35 -1
  22. package/src/components/VerifyPhone/styles.tsx +1 -2
  23. package/src/config.json +0 -2
  24. package/src/pages/Checkout.tsx +1 -1
  25. package/src/providers/AlertProvider.tsx +4 -1
  26. package/src/theme.json +2 -1
  27. package/src/types/index.tsx +2 -9
  28. package/src/utils/index.tsx +196 -1
  29. package/themes/business/index.tsx +4 -0
  30. package/themes/business/src/components/Chat/index.tsx +32 -31
  31. package/themes/business/src/components/NetworkError/index.tsx +61 -0
  32. package/themes/business/src/components/NetworkError/styles.tsx +11 -0
  33. package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
  34. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
  35. package/themes/business/src/components/OrdersListManager/index.tsx +871 -0
  36. package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
  37. package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
  38. package/themes/business/src/components/OrdersOption/index.tsx +354 -54
  39. package/themes/business/src/components/OrdersOption/styles.tsx +95 -7
  40. package/themes/business/src/components/PreviousMessages/index.tsx +12 -0
  41. package/themes/business/src/components/PreviousOrders/index.tsx +65 -46
  42. package/themes/business/src/components/PreviousOrders/styles.tsx +5 -10
  43. package/themes/business/src/components/ReviewCustomer/index.tsx +11 -8
  44. package/themes/business/src/types/index.tsx +4 -0
  45. package/themes/business/src/utils/index.tsx +12 -0
  46. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  47. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  48. package/themes/doordash/src/components/OrderDetails/index.tsx +3 -1
  49. package/themes/doordash/src/components/OrdersOption/index.tsx +4 -2
  50. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/instacart/src/components/OrderDetails/index.tsx +3 -1
  52. package/themes/instacart/src/components/OrdersOption/index.tsx +4 -2
  53. package/themes/kiosk/index.tsx +2 -0
  54. package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
  55. package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
  56. package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
  57. package/themes/kiosk/src/components/Cart/index.tsx +1 -1
  58. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
  59. package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
  60. package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
  61. package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
  62. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
  63. package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
  64. package/themes/kiosk/src/components/Intro/index.tsx +13 -13
  65. package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
  66. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  67. package/themes/kiosk/src/components/NetworkError/index.tsx +60 -0
  68. package/themes/kiosk/src/components/NetworkError/styles.tsx +11 -0
  69. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  70. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  71. package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
  72. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  73. package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
  74. package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
  75. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
  76. package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
  77. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  78. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  79. package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
  80. package/themes/kiosk/src/types/index.d.ts +4 -0
  81. package/themes/original/index.tsx +26 -6
  82. package/themes/original/src/components/AnalyticsSegment/index.tsx +127 -0
  83. package/themes/original/src/components/BusinessBasicInformation/index.tsx +11 -7
  84. package/themes/original/src/components/BusinessController/index.tsx +2 -2
  85. package/themes/original/src/components/BusinessMenuList/index.tsx +4 -2
  86. package/themes/original/src/components/BusinessPreorder/index.tsx +3 -2
  87. package/themes/original/src/components/BusinessProductsList/index.tsx +50 -6
  88. package/themes/original/src/components/BusinessProductsListing/index.tsx +13 -10
  89. package/themes/original/src/components/BusinessReviews/index.tsx +4 -3
  90. package/themes/original/src/components/BusinessesListing/index.tsx +1 -1
  91. package/themes/original/src/components/Cart/index.tsx +43 -10
  92. package/themes/original/src/components/Checkout/index.tsx +54 -17
  93. package/themes/original/src/components/Checkout/styles.tsx +7 -0
  94. package/themes/original/src/components/CouponControl/index.tsx +1 -0
  95. package/themes/original/src/components/DriverTips/index.tsx +1 -1
  96. package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
  97. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +9 -2
  98. package/themes/original/src/components/LastOrder/index.tsx +3 -1
  99. package/themes/original/src/components/LoginForm/index.tsx +83 -68
  100. package/themes/original/src/components/MessageListing/index.tsx +4 -2
  101. package/themes/original/src/components/Messages/index.tsx +19 -21
  102. package/themes/original/src/components/MomentOption/index.tsx +127 -152
  103. package/themes/original/src/components/MomentOption/styles.tsx +42 -18
  104. package/themes/original/src/components/NetworkError/index.tsx +61 -0
  105. package/themes/original/src/components/NetworkError/styles.tsx +11 -0
  106. package/themes/original/src/components/OrderDetails/index.tsx +106 -113
  107. package/themes/original/src/components/OrderProgress/index.tsx +6 -5
  108. package/themes/original/src/components/OrderSummary/index.tsx +34 -1
  109. package/themes/original/src/components/OrdersOption/index.tsx +20 -42
  110. package/themes/original/src/components/OrdersOption/styles.tsx +0 -5
  111. package/themes/original/src/components/PaymentOptionWallet/index.tsx +1 -1
  112. package/themes/original/src/components/PaymentOptions/index.tsx +20 -23
  113. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
  114. package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
  115. package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
  116. package/themes/original/src/components/PreviousOrders/index.tsx +4 -0
  117. package/themes/original/src/components/ProductForm/index.tsx +35 -20
  118. package/themes/original/src/components/ProductForm/styles.tsx +0 -1
  119. package/themes/original/src/components/ProductOptionSubOption/index.tsx +81 -74
  120. package/themes/original/src/components/ReviewDriver/index.tsx +315 -0
  121. package/themes/original/src/components/ReviewDriver/styles.tsx +38 -0
  122. package/themes/original/src/components/ReviewOrder/index.tsx +307 -186
  123. package/themes/original/src/components/ReviewOrder/styles.tsx +24 -13
  124. package/themes/original/src/components/ReviewProducts/index.tsx +116 -0
  125. package/themes/original/src/components/ReviewProducts/styles.tsx +16 -0
  126. package/themes/original/src/components/SignupForm/index.tsx +173 -154
  127. package/themes/original/src/components/SingleProductCard/index.tsx +6 -13
  128. package/themes/original/src/components/SingleProductCard/styles.tsx +1 -1
  129. package/themes/original/src/components/SingleProductReview/index.tsx +166 -0
  130. package/themes/original/src/components/SingleProductReview/styles.tsx +27 -0
  131. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
  132. package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
  133. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  134. package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
  135. package/themes/original/src/components/UserProfile/index.tsx +13 -6
  136. package/themes/original/src/components/UserProfileForm/index.tsx +16 -8
  137. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  138. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  139. package/themes/original/src/layouts/FloatingBottomContainer.tsx +26 -0
  140. package/themes/original/src/types/index.tsx +47 -10
  141. package/themes/single-business/src/components/LastOrder/index.tsx +3 -1
  142. package/themes/single-business/src/components/OrderDetails/index.tsx +15 -0
  143. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
  144. package/themes/single-business/src/components/OrdersOption/index.tsx +4 -2
  145. package/themes/single-business/src/utils/index.tsx +7 -1
  146. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  147. package/themes/uber-eats/src/components/OrderDetails/index.tsx +3 -1
  148. package/themes/uber-eats/src/components/OrdersOption/index.tsx +4 -2
  149. package/src/components/StripeMethodForm/index.tsx +0 -163
@@ -0,0 +1,315 @@
1
+ import React, { useState, useEffect } from 'react'
2
+ import { useLanguage, useToast, ToastType, ReviewDriver as ReviewDriverController } from 'ordering-components/native'
3
+ import { StyleSheet, View, I18nManager, TouchableOpacity } from 'react-native'
4
+ import { ReviewDriverParams } from '../../types'
5
+ import { useTheme } from 'styled-components/native'
6
+ import { useForm, Controller } from 'react-hook-form'
7
+ import { OText, OIcon, OButton, OInput } from '../shared'
8
+ import NavBar from '../NavBar'
9
+ import LinearGradient from 'react-native-linear-gradient'
10
+ import { FloatingBottomContainer } from '../../layouts/FloatingBottomContainer'
11
+ import Spinner from 'react-native-loading-spinner-overlay'
12
+
13
+ import { reviewCommentList } from '../../../../../src/utils'
14
+
15
+ import {
16
+ ReviewDriverContainer,
17
+ DriverPhotoContainer,
18
+ FormReviews,
19
+ RatingBarContainer,
20
+ RatingTextContainer,
21
+ CommentsButtonGroup,
22
+ ActionContainer,
23
+ } from './styles'
24
+
25
+ const ReviewDriverUI = (props: ReviewDriverParams) => {
26
+ const {
27
+ order,
28
+ navigation,
29
+ formState,
30
+ dirverReviews,
31
+ setDriverReviews,
32
+ handleSendDriverReview,
33
+ onNavigationRedirect
34
+ } = props
35
+
36
+ const [, t] = useLanguage()
37
+ const theme = useTheme()
38
+ const { handleSubmit, control, errors } = useForm()
39
+ const [, { showToast }] = useToast()
40
+
41
+ const [isDriverReviewed, setIsDriverReviewed] = useState(false)
42
+
43
+ const styles = StyleSheet.create({
44
+ photoWrapper: {
45
+ shadowColor: theme.colors.black,
46
+ shadowRadius: 3,
47
+ shadowOffset: {width: 1, height: 4},
48
+ elevation: 3,
49
+ borderRadius: 8,
50
+ shadowOpacity: 0.1,
51
+ overflow: 'hidden'
52
+ },
53
+ inputTextArea: {
54
+ borderColor: theme.colors.lightGray,
55
+ borderRadius: 8,
56
+ marginTop: 10,
57
+ marginBottom: 40,
58
+ height: 100,
59
+ alignItems: 'flex-start'
60
+ },
61
+ statusBar: {
62
+ transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],
63
+ height: 10,
64
+ borderRadius: 5,
65
+ marginTop: 5
66
+ },
67
+ ratingItemContainer: {
68
+ position: 'absolute',
69
+ top: -20
70
+ },
71
+ ratingItem: {
72
+ left: '-50%',
73
+ flexDirection: 'column',
74
+ alignItems: 'center'
75
+ },
76
+ ratingLineStyle: {
77
+ height: 10,
78
+ width: 1,
79
+ marginBottom: 10,
80
+ backgroundColor: theme.colors.dusk
81
+ }
82
+ })
83
+
84
+ const [comments, setComments] = useState<Array<any>>([])
85
+ const [extraComment, setExtraComment] = useState('')
86
+ const [alertState, setAlertState] = useState<{ open: boolean, content: Array<any>, success?: boolean }>({ open: false, content: [], success: false })
87
+
88
+ const qualificationList = [
89
+ { key: 1, text: t('TERRIBLE', 'Terrible'), percent: 0, parentStyle: { left: '0%' }, isInnerStyle: false, pointerColor: false },
90
+ { key: 2, text: t('BAD', 'Bad'), percent: 0.25, parentStyle: { left: '25%' }, isInnerStyle: true, pointerColor: true },
91
+ { key: 3, text: t('OKAY', 'Okay'), percent: 0.5, parentStyle: { left: '50%' }, isInnerStyle: true, pointerColor: true },
92
+ { key: 4, text: t('GOOD', 'Good'), percent: 0.75, parentStyle: { left: '75%' }, isInnerStyle: true, pointerColor: true },
93
+ { key: 5, text: t('GREAT', 'Great'), percent: 1, parentStyle: { right: '0%' }, isInnerStyle: false, pointerColor: false }
94
+ ]
95
+
96
+ const commentsList = reviewCommentList('driver')
97
+
98
+ const onSubmit = () => {
99
+ if (dirverReviews?.qualification === 0) {
100
+ setAlertState({
101
+ open: true,
102
+ content: dirverReviews?.qualification === 0 ? [`${t('REVIEW_QUALIFICATION_REQUIRED', 'Review qualification is required')}`] : []
103
+ })
104
+ return
105
+ }
106
+ handleSendDriverReview()
107
+ setAlertState({ ...alertState, success: true })
108
+ }
109
+
110
+ const isSelectedComment = (commentKey: number) => {
111
+ const found = comments.find((comment: any) => comment?.key === commentKey)
112
+ return found
113
+ }
114
+
115
+ const handleChangeComment = (commentItem: any) => {
116
+ const found = comments.find((comment: any) => comment?.key === commentItem.key)
117
+ if (found) {
118
+ const _comments = comments.filter((comment: any) => comment?.key !== commentItem.key)
119
+ setComments(_comments)
120
+ } else {
121
+ setComments([...comments, commentItem])
122
+ }
123
+ }
124
+
125
+ const handleChangeQualification = (qualification: number) => {
126
+ if (qualification) setDriverReviews({ ...dirverReviews, qualification: qualification, comment: '' })
127
+ setComments([])
128
+ }
129
+
130
+ const handleSendReviewClick = () => {
131
+ if (!order?.user_review && !isDriverReviewed) {
132
+ onSubmit()
133
+ } else {
134
+ onNavigationRedirect && onNavigationRedirect('MyOrders')
135
+ }
136
+ }
137
+
138
+ useEffect(() => {
139
+ if (!formState.loading && formState.result?.error) {
140
+ setAlertState({
141
+ open: true,
142
+ success: false,
143
+ content: formState.result?.result || [t('ERROR', 'Error')]
144
+ })
145
+ }
146
+ if (!formState.loading && !formState.result?.error && alertState.success) {
147
+ setIsDriverReviewed && setIsDriverReviewed(true)
148
+ onNavigationRedirect('MyOrders')
149
+ }
150
+ }, [formState])
151
+
152
+ useEffect(() => {
153
+ if (Object.keys(errors).length > 0) {
154
+ // Convert all errors in one string to show in toast provider
155
+ const list = Object.values(errors);
156
+ let stringError = '';
157
+ list.map((item: any, i: number) => {
158
+ stringError +=
159
+ i + 1 === list.length ? `- ${item.message}` : `- ${item.message}\n`;
160
+ });
161
+ showToast(ToastType.Error, stringError);
162
+ }
163
+ }, [errors])
164
+
165
+ useEffect(() => {
166
+ if (alertState.open) {
167
+ alertState.content && showToast(
168
+ ToastType.Error,
169
+ alertState.content
170
+ )
171
+ }
172
+ }, [alertState.content])
173
+
174
+ useEffect(() => {
175
+ let _comments = ''
176
+ if (comments.length > 0) {
177
+ comments.map((comment: any) => (_comments += comment.content + '. '))
178
+ }
179
+ const _comment = _comments + extraComment
180
+ setDriverReviews({ ...dirverReviews, comment: _comment })
181
+ }, [comments, extraComment])
182
+
183
+ return (
184
+ <>
185
+ <ReviewDriverContainer>
186
+ <NavBar
187
+ title={t('REVIEW_DRIVER', 'Review driver')}
188
+ titleAlign={'center'}
189
+ onActionLeft={() => navigation?.canGoBack() && navigation.goBack()}
190
+ showCall={false}
191
+ btnStyle={{ paddingLeft: 0 }}
192
+ style={{ flexDirection: 'column', alignItems: 'flex-start' }}
193
+ titleWrapStyle={{ paddingHorizontal: 0 }}
194
+ titleStyle={{ marginRight: 0, marginLeft: 0 }}
195
+ />
196
+ <DriverPhotoContainer>
197
+ <View
198
+ style={{
199
+ ...styles.photoWrapper,
200
+ backgroundColor: theme.colors.white,
201
+ padding: !order?.driver?.photo ? 5 : 0
202
+ }}
203
+ >
204
+ <OIcon
205
+ url={order?.driver?.photo}
206
+ src={!order?.driver?.photo && theme.images.general.user}
207
+ cover={order?.driver?.photo ? true: false}
208
+ width={80}
209
+ height={80}
210
+ />
211
+ </View>
212
+ <OText weight={500} style={{ marginVertical: 10 }} color={theme.colors.textNormal}>{order?.driver?.name} {order?.driver?.lastname}</OText>
213
+ </DriverPhotoContainer>
214
+
215
+ <View style={{flex: 1, justifyContent: 'flex-end'}}>
216
+ <FormReviews>
217
+ <OText mBottom={13} color={theme.colors.textNormal}>{t('HOW_WAS_YOUR_DRIVER', 'How was your driver?')}</OText>
218
+ <RatingBarContainer>
219
+ <LinearGradient
220
+ start={{ x: 0.0, y: 0.0 }}
221
+ end={{ x: qualificationList[dirverReviews?.qualification - 1]?.percent || 0, y: 0 }}
222
+ locations={[.9999, .9999]}
223
+ colors={[theme.colors.primary, theme.colors.backgroundGray200]}
224
+ style={styles.statusBar}
225
+ />
226
+ <RatingTextContainer>
227
+ {qualificationList.map((qualification: any) => (
228
+ <View
229
+ key={qualification.key}
230
+ style={{ ...qualification.parentStyle, ...styles.ratingItemContainer }}
231
+ >
232
+ <TouchableOpacity
233
+ style={qualification.isInnerStyle && styles.ratingItem}
234
+ onPress={() => handleChangeQualification(qualification.key)}
235
+ >
236
+ <View
237
+ style={{
238
+ ...styles.ratingLineStyle,
239
+ backgroundColor: (qualification.pointerColor && !(dirverReviews?.qualification >= qualification.key)) ? theme.colors.dusk : 'transparent'
240
+ }}
241
+ />
242
+ <OText size={12} color={dirverReviews?.qualification === qualification.key ? theme.colors.black : theme.colors.lightGray}>{qualification.text}</OText>
243
+ </TouchableOpacity>
244
+ </View>
245
+ ))}
246
+ </RatingTextContainer>
247
+ </RatingBarContainer>
248
+
249
+ <OText style={{ marginTop: 30 }} color={theme.colors.textNormal}>
250
+ {commentsList[dirverReviews?.qualification || 1]?.title}
251
+ </OText>
252
+ <CommentsButtonGroup>
253
+ {commentsList[dirverReviews?.qualification || 1]?.list?.map(commentItem => (
254
+ <OButton
255
+ key={commentItem.key}
256
+ text={commentItem.content}
257
+ bgColor={isSelectedComment(commentItem.key) ? theme.colors.primary : theme.colors.backgroundGray200}
258
+ borderColor={isSelectedComment(commentItem.key) ? theme.colors.primary : theme.colors.backgroundGray200}
259
+ textStyle={{
260
+ color: isSelectedComment(commentItem.key) ? theme.colors.white : theme.colors.textNormal,
261
+ fontSize: 13,
262
+ paddingRight: isSelectedComment(commentItem.key) ? 15 : 0
263
+ }}
264
+ style={{ height: 35, paddingLeft: 5, paddingRight: 5, marginHorizontal: 3, marginVertical: 10 }}
265
+ imgRightSrc={isSelectedComment(commentItem.key) ? theme.images.general.close : null}
266
+ imgRightStyle={{ tintColor: theme.colors.white, right: 5, margin: 5 }}
267
+ onClick={() => handleChangeComment(commentItem) }
268
+ />
269
+ ))}
270
+ </CommentsButtonGroup>
271
+
272
+ <OText style={{ marginTop: 30 }} color={theme.colors.textNormal}>{t('REVIEW_COMMENT_QUESTION', 'Do you want to add something?')}</OText>
273
+ <Controller
274
+ control={control}
275
+ defaultValue=''
276
+ name='comments'
277
+ render={({ onChange }: any) => (
278
+ <OInput
279
+ name='comments'
280
+ onChange={(val: any) => {
281
+ onChange(val)
282
+ setExtraComment(val.target.value)
283
+ }}
284
+ style={styles.inputTextArea}
285
+ multiline
286
+ />
287
+ )}
288
+ />
289
+ </FormReviews>
290
+ </View>
291
+ </ReviewDriverContainer>
292
+ <Spinner visible={formState.loading} />
293
+ <FloatingBottomContainer>
294
+ <ActionContainer>
295
+ <OButton
296
+ textStyle={{ color: theme.colors.white, paddingRight: 10 }}
297
+ text={t('SEND_REVIEW', 'Send Review')}
298
+ style={{ borderRadius: 8 }}
299
+ imgRightStyle={{ tintColor: theme.colors.white, right: 5, margin: 5 }}
300
+ onClick={handleSubmit(handleSendReviewClick)}
301
+ />
302
+ </ActionContainer>
303
+ </FloatingBottomContainer>
304
+ </>
305
+ )
306
+ }
307
+
308
+ export const ReviewDriver = (props: any) => {
309
+ const reviewDriverProps = {
310
+ ...props,
311
+ UIComponent: ReviewDriverUI,
312
+ isToast: true
313
+ }
314
+ return <ReviewDriverController {...reviewDriverProps} />
315
+ }
@@ -0,0 +1,38 @@
1
+ import styled from 'styled-components/native'
2
+
3
+ export const ReviewDriverContainer = styled.ScrollView`
4
+ padding: 20px 40px;
5
+ margin-bottom: 100px;
6
+ `
7
+
8
+ export const DriverPhotoContainer = styled.View`
9
+ margin-vertical: 5px;
10
+ flex-direction: column;
11
+ align-items: center;
12
+ `
13
+
14
+ export const FormReviews = styled.View`
15
+ flex: 1;
16
+ height: 100%;
17
+ margin-top: 30px;
18
+ `
19
+
20
+ export const RatingBarContainer = styled.View`
21
+ margin-top: 10px;
22
+ margin-bottom: 25px;
23
+ `
24
+
25
+ export const RatingTextContainer = styled.View`
26
+ flex-direction: row;
27
+ align-items: center;
28
+ justify-content: space-between;
29
+ margin-top: 10px;
30
+ `
31
+ export const CommentsButtonGroup = styled.View`
32
+ flex-direction: row;
33
+ flex-wrap: wrap;
34
+ `
35
+
36
+ export const ActionContainer = styled.View`
37
+ padding: 3px 30px;
38
+ `