ordering-ui-admin-external 1.25.0 → 1.26.0

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 (163) hide show
  1. package/_bundles/main.css +1829 -1829
  2. package/_bundles/{ordering-ui-admin.f2522b983a000252b407.js → ordering-ui-admin.efcc125026af46873802.js} +2 -2
  3. package/_modules/components/BusinessIntelligence/AnalyticsCalendar/index.js +8 -1
  4. package/_modules/components/Delivery/DriversCompanyAddForm/styles.js +1 -1
  5. package/_modules/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/index.js +68 -0
  6. package/_modules/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/styles.js +42 -0
  7. package/_modules/components/Delivery/DriversGroupAddForm/BusinessesForm/index.js +89 -0
  8. package/_modules/components/Delivery/DriversGroupAddForm/BusinessesForm/styles.js +47 -0
  9. package/_modules/components/Delivery/DriversGroupAddForm/GeneralForm/index.js +106 -0
  10. package/_modules/components/Delivery/DriversGroupAddForm/GeneralForm/styles.js +16 -0
  11. package/_modules/components/Delivery/DriversGroupAddForm/PaymethodsForm/index.js +87 -0
  12. package/_modules/components/Delivery/DriversGroupAddForm/PaymethodsForm/styles.js +33 -0
  13. package/_modules/components/Delivery/DriversGroupAddForm/index.js +132 -0
  14. package/_modules/components/Delivery/DriversGroupAddForm/styles.js +18 -0
  15. package/_modules/components/Delivery/DriversGroupCompanies/styles.js +1 -1
  16. package/_modules/components/Delivery/DriversGroupDrivers/styles.js +1 -1
  17. package/_modules/components/Delivery/DriversGroupOrders/index.js +5 -5
  18. package/_modules/components/Delivery/DriversGroupsList/styles.js +1 -1
  19. package/_modules/components/Delivery/DriversGroupsListing/index.js +28 -7
  20. package/_modules/components/Delivery/DriversGroupsListing/styles.js +2 -2
  21. package/_modules/components/Delivery/UserAddForm/index.js +39 -6
  22. package/_modules/components/Delivery/UserAddForm/styles.js +28 -21
  23. package/_modules/components/Delivery/UserDetails/index.js +2 -2
  24. package/_modules/components/Home/HomePage/index.js +71 -3
  25. package/_modules/components/Home/HomePage/styles.js +27 -5
  26. package/_modules/components/Login/LoginForm/index.js +0 -5
  27. package/_modules/components/MyProducts/AdvancedLayouts/LayoutStyleGroup.js +46 -0
  28. package/_modules/components/MyProducts/AdvancedLayouts/index.js +213 -0
  29. package/_modules/components/MyProducts/AdvancedLayouts/styles.js +146 -0
  30. package/_modules/components/MyProducts/AdvancedSettings/index.js +12 -0
  31. package/_modules/components/MyProducts/CustomDomain/index.js +6 -4
  32. package/_modules/components/MyProducts/CustomDomain/styles.js +27 -9
  33. package/_modules/components/MyProducts/OrderingWebsite/index.js +47 -6
  34. package/_modules/components/MyProducts/OrderingWebsite/styles.js +20 -11
  35. package/_modules/components/Orders/AllInOne/DriversManager/index.js +128 -0
  36. package/_modules/components/Orders/AllInOne/DriversManager/styles.js +27 -0
  37. package/_modules/components/Orders/AllInOne/index.js +337 -0
  38. package/_modules/components/Orders/AllInOne/styles.js +67 -0
  39. package/_modules/components/Orders/CompanySelector/index.js +259 -0
  40. package/_modules/components/Orders/CompanySelector/styles.js +86 -0
  41. package/_modules/components/Orders/DriversBusyStatusFilter/styles.js +6 -3
  42. package/_modules/components/Orders/DriversList/index.js +3 -2
  43. package/_modules/components/Orders/DriversList/styles.js +2 -2
  44. package/_modules/components/Orders/DriversManager/index.js +2 -1
  45. package/_modules/components/Orders/DriversOnlineOfflineFilter/styles.js +5 -2
  46. package/_modules/components/Orders/OrderBill/RefundToWallet.js +1 -1
  47. package/_modules/components/Orders/OrderBill/index.js +17 -18
  48. package/_modules/components/Orders/OrderContactInformation/index.js +14 -3
  49. package/_modules/components/Orders/OrderDetails/index.js +1 -1
  50. package/_modules/components/Orders/OrderStatusSubFilter/styles.js +1 -1
  51. package/_modules/components/Orders/OrderToPrint/index.js +2 -1
  52. package/_modules/components/Orders/OrderToPrintTicket/index.js +4 -2
  53. package/_modules/components/Orders/OrdersContentHeader/index.js +2 -1
  54. package/_modules/components/Orders/OrdersListing/index.js +3 -1
  55. package/_modules/components/Orders/OrdersManager/index.js +5 -1
  56. package/_modules/components/Orders/OrdersTable/index.js +11 -10
  57. package/_modules/components/Orders/ProductItemAccordion/index.js +5 -9
  58. package/_modules/components/Orders/WebsocketStatus/index.js +119 -0
  59. package/_modules/components/Orders/WebsocketStatus/styles.js +65 -0
  60. package/_modules/components/Orders/index.js +7 -0
  61. package/_modules/components/Settings/IntegrationListing/Analytics.js +130 -0
  62. package/_modules/components/Settings/IntegrationListing/PaymentGateway.js +130 -0
  63. package/_modules/components/Settings/IntegrationListing/index.js +174 -31
  64. package/_modules/components/Settings/IntegrationListing/styles.js +42 -11
  65. package/_modules/components/Settings/NotificationSetting/index.js +25 -4
  66. package/_modules/components/Settings/NotificationSetting/styles.js +5 -3
  67. package/_modules/components/Settings/SettingsSelectUI/index.js +3 -2
  68. package/_modules/components/Shared/RangeCalendar/index.js +9 -1
  69. package/_modules/components/Shared/SearchBar/index.js +11 -6
  70. package/_modules/components/Shared/SearchBar/styles.js +9 -15
  71. package/_modules/components/SidebarMenu/index.js +19 -10
  72. package/_modules/components/Stores/ImporterHelpContent/index.js +1 -1
  73. package/_modules/components/Stores/ImportersButton/index.js +2 -2
  74. package/_modules/components/Users/UserDetails/index.js +2 -2
  75. package/_modules/config/currency.js +1017 -0
  76. package/_modules/index.js +6 -0
  77. package/_modules/utils/index.js +26 -3
  78. package/index-template.js +10 -0
  79. package/package.json +3 -2
  80. package/src/components/BusinessIntelligence/AnalyticsCalendar/index.js +7 -1
  81. package/src/components/Delivery/DriversCompanyAddForm/styles.js +0 -1
  82. package/src/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/index.js +113 -0
  83. package/src/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/styles.js +72 -0
  84. package/src/components/Delivery/DriversGroupAddForm/BusinessesForm/index.js +87 -0
  85. package/src/components/Delivery/DriversGroupAddForm/BusinessesForm/styles.js +87 -0
  86. package/src/components/Delivery/DriversGroupAddForm/GeneralForm/index.js +104 -0
  87. package/src/components/Delivery/DriversGroupAddForm/GeneralForm/styles.js +31 -0
  88. package/src/components/Delivery/DriversGroupAddForm/PaymethodsForm/index.js +82 -0
  89. package/src/components/Delivery/DriversGroupAddForm/PaymethodsForm/styles.js +46 -0
  90. package/src/components/Delivery/DriversGroupAddForm/index.js +130 -0
  91. package/src/components/Delivery/DriversGroupAddForm/styles.js +38 -0
  92. package/src/components/Delivery/DriversGroupCompanies/styles.js +1 -0
  93. package/src/components/Delivery/DriversGroupDrivers/styles.js +1 -0
  94. package/src/components/Delivery/DriversGroupOrders/index.js +2 -2
  95. package/src/components/Delivery/DriversGroupsList/styles.js +1 -1
  96. package/src/components/Delivery/DriversGroupsListing/index.js +35 -13
  97. package/src/components/Delivery/DriversGroupsListing/styles.js +1 -1
  98. package/src/components/Delivery/UserAddForm/index.js +34 -2
  99. package/src/components/Delivery/UserAddForm/styles.js +25 -0
  100. package/src/components/Delivery/UserDetails/index.js +1 -1
  101. package/src/components/Home/HomePage/index.js +215 -142
  102. package/src/components/Home/HomePage/styles.js +105 -1
  103. package/src/components/Login/LoginForm/index.js +0 -7
  104. package/src/components/MyProducts/AdvancedLayouts/LayoutStyleGroup.js +37 -0
  105. package/src/components/MyProducts/AdvancedLayouts/index.js +240 -0
  106. package/src/components/MyProducts/AdvancedLayouts/styles.js +388 -0
  107. package/src/components/MyProducts/AdvancedSettings/index.js +5 -2
  108. package/src/components/MyProducts/CustomDomain/index.js +35 -16
  109. package/src/components/MyProducts/CustomDomain/styles.js +73 -1
  110. package/src/components/MyProducts/OrderingWebsite/index.js +97 -37
  111. package/src/components/MyProducts/OrderingWebsite/styles.js +38 -0
  112. package/src/components/Orders/AllInOne/DriversManager/index.js +137 -0
  113. package/src/components/Orders/AllInOne/DriversManager/styles.js +51 -0
  114. package/src/components/Orders/AllInOne/index.js +339 -0
  115. package/src/components/Orders/AllInOne/styles.js +144 -0
  116. package/src/components/Orders/CompanySelector/index.js +250 -0
  117. package/src/components/Orders/CompanySelector/styles.js +142 -0
  118. package/src/components/Orders/DriversBusyStatusFilter/styles.js +7 -1
  119. package/src/components/Orders/DriversList/index.js +7 -4
  120. package/src/components/Orders/DriversList/styles.js +2 -1
  121. package/src/components/Orders/DriversManager/index.js +2 -0
  122. package/src/components/Orders/DriversOnlineOfflineFilter/styles.js +8 -1
  123. package/src/components/Orders/OrderBill/RefundToWallet.js +12 -10
  124. package/src/components/Orders/OrderBill/index.js +18 -18
  125. package/src/components/Orders/OrderContactInformation/index.js +20 -1
  126. package/src/components/Orders/OrderDetails/index.js +8 -8
  127. package/src/components/Orders/OrderStatusSubFilter/styles.js +1 -1
  128. package/src/components/Orders/OrderToPrint/index.js +2 -1
  129. package/src/components/Orders/OrderToPrintTicket/index.js +160 -173
  130. package/src/components/Orders/OrdersContentHeader/index.js +2 -0
  131. package/src/components/Orders/OrdersListing/index.js +2 -0
  132. package/src/components/Orders/OrdersManager/index.js +2 -2
  133. package/src/components/Orders/OrdersTable/index.js +39 -25
  134. package/src/components/Orders/ProductItemAccordion/index.js +3 -3
  135. package/src/components/Orders/WebsocketStatus/index.js +138 -0
  136. package/src/components/Orders/WebsocketStatus/styles.js +171 -0
  137. package/src/components/Orders/index.js +2 -0
  138. package/src/components/Settings/IntegrationListing/Analytics.js +127 -0
  139. package/src/components/Settings/IntegrationListing/PaymentGateway.js +126 -0
  140. package/src/components/Settings/IntegrationListing/index.js +189 -96
  141. package/src/components/Settings/IntegrationListing/styles.js +90 -1
  142. package/src/components/Settings/NotificationSetting/index.js +73 -10
  143. package/src/components/Settings/NotificationSetting/styles.js +19 -0
  144. package/src/components/Settings/SettingsSelectUI/index.js +12 -9
  145. package/src/components/Shared/RangeCalendar/index.js +7 -1
  146. package/src/components/Shared/SearchBar/index.js +14 -5
  147. package/src/components/Shared/SearchBar/styles.js +19 -32
  148. package/src/components/SidebarMenu/index.js +15 -8
  149. package/src/components/Stores/ImporterHelpContent/index.js +17 -17
  150. package/src/components/Stores/ImportersButton/index.js +2 -2
  151. package/src/components/Users/UserDetails/index.js +1 -1
  152. package/src/config/currency.js +1010 -0
  153. package/src/index.js +2 -0
  154. package/src/utils/index.js +21 -0
  155. package/template/app.js +4 -0
  156. package/template/assets/images/preview/franchise.png +0 -0
  157. package/template/assets/images/preview/marketplace.png +0 -0
  158. package/template/assets/images/preview/single-store.png +0 -0
  159. package/template/components/AutologinParams/index.js +1 -3
  160. package/template/components/ListenPageChanges/index.js +1 -0
  161. package/template/helmetdata.json +7 -0
  162. package/template/pages/AllInOne/index.js +23 -0
  163. /package/_bundles/{ordering-ui-admin.f2522b983a000252b407.js.LICENSE.txt → ordering-ui-admin.efcc125026af46873802.js.LICENSE.txt} +0 -0
@@ -1,8 +1,8 @@
1
1
  import React, { useState } from 'react'
2
2
  import { useLanguage, useConfig, CustomDomain as CustomDomainController } from 'ordering-components-admin-external'
3
3
  import { Select } from '../../../styles/Select/FirstSelect'
4
- import { CheckSquareFill as CheckedIcon, Square as UnCheckedIcon } from 'react-bootstrap-icons'
5
- import { Button, Input } from '../../../styles'
4
+ import { CheckSquareFill as CheckedIcon, Square as UnCheckedIcon, InfoCircle } from 'react-bootstrap-icons'
5
+ import { Button, Input, IconButton } from '../../../styles'
6
6
  import { Alert } from '../../Shared'
7
7
  import {
8
8
  Container,
@@ -10,7 +10,10 @@ import {
10
10
  SelectWrapper,
11
11
  Option,
12
12
  ButtonGroup,
13
- CheckBoxWrapper
13
+ CheckBoxWrapper,
14
+ CustomDomainInfo,
15
+ CustomDomainInfoContent,
16
+ TitleWrapper
14
17
  } from './styles'
15
18
 
16
19
  const CustomDomainUI = (props) => {
@@ -66,7 +69,19 @@ const CustomDomainUI = (props) => {
66
69
  <Container>
67
70
  <h1>{t('CUSTOM_DOMAIN', 'Custom domain')}</h1>
68
71
  <FormControl>
69
- <label>{t('DOMAIN', 'Domain')}</label>
72
+ <TitleWrapper>
73
+ <label>{t('DOMAIN', 'Domain')}</label>
74
+ <CustomDomainInfo>
75
+ <IconButton
76
+ color='primary'
77
+ >
78
+ <InfoCircle />
79
+ </IconButton>
80
+ <CustomDomainInfoContent>
81
+ <span>{t('CUSTOM_DOMAIN_NOTIFY', 'Please make sure that your DNS CNAME is pointing {project-name}.tryordering.com')}</span>
82
+ </CustomDomainInfoContent>
83
+ </CustomDomainInfo>
84
+ </TitleWrapper>
70
85
  <Input
71
86
  placeholder='www.yourdomain.com'
72
87
  value={formState?.changes?.domain || ''}
@@ -85,18 +100,22 @@ const CustomDomainUI = (props) => {
85
100
  />
86
101
  </SelectWrapper>
87
102
  </FormControl>
88
- <CheckBoxWrapper onClick={() => setShowMapInput(prev => !prev)}>
89
- {showMapInput ? <CheckedIcon className='active' /> : <UnCheckedIcon />}
90
- <span>{t('I_HAVE_GOOGLE_MAPS_KEY_WANT_SHARE_IT', 'I have my Google Maps API Key, I want to share it')}</span>
91
- </CheckBoxWrapper>
92
- {showMapInput && (
93
- <FormControl>
94
- <label>{t('GOOGLE_MAP_API_KEY', 'Google map api key')}</label>
95
- <Input
96
- value={googleMapKey}
97
- onChange={(e) => setGoogleMapKey(e.target.value)}
98
- />
99
- </FormControl>
103
+ {!configs?.google_maps_api_key?.value && (
104
+ <>
105
+ <CheckBoxWrapper onClick={() => setShowMapInput(prev => !prev)}>
106
+ {showMapInput ? <CheckedIcon className='active' /> : <UnCheckedIcon />}
107
+ <span>{t('I_HAVE_GOOGLE_MAPS_KEY_WANT_SHARE_IT', 'I have my Google Maps API Key, I want to share it')}</span>
108
+ </CheckBoxWrapper>
109
+ {showMapInput && (
110
+ <FormControl>
111
+ <label>{t('GOOGLE_MAP_API_KEY', 'Google map api key')}</label>
112
+ <Input
113
+ value={googleMapKey}
114
+ onChange={(e) => setGoogleMapKey(e.target.value)}
115
+ />
116
+ </FormControl>
117
+ )}
118
+ </>
100
119
  )}
101
120
  <ButtonGroup>
102
121
  <Button
@@ -13,7 +13,7 @@ export const Container = styled.div`
13
13
  export const FormControl = styled.div`
14
14
  margin-bottom: 20px;
15
15
 
16
- label {
16
+ > label {
17
17
  display: block;
18
18
  margin-bottom: 12px;
19
19
  font-weight: 400;
@@ -25,6 +25,19 @@ export const FormControl = styled.div`
25
25
  }
26
26
  `
27
27
 
28
+ export const TitleWrapper = styled.div`
29
+ margin-bottom: 12px;
30
+ display: flex;
31
+ align-items: center;
32
+ label {
33
+ display: block;
34
+ font-weight: 400;
35
+ font-size: 14px;
36
+ line-height: 24px;
37
+ margin-bottom: 0;
38
+ }
39
+ `
40
+
28
41
  export const SelectWrapper = styled.div`
29
42
  > div {
30
43
  width: 100%;
@@ -101,3 +114,62 @@ export const CheckBoxWrapper = styled.div`
101
114
  user-select: none;
102
115
  }
103
116
  `
117
+
118
+ export const CustomDomainInfo = styled.div`
119
+ position: relative;
120
+
121
+ > button {
122
+ height: 21px;
123
+ svg {
124
+ width: 14px;
125
+ height: 14px;
126
+ color: ${props => props.theme.colors.primary};
127
+ }
128
+ }
129
+ &:hover > div {
130
+ visibility: visible;
131
+ opacity: 1;
132
+ }
133
+ `
134
+
135
+ export const CustomDomainInfoContent = styled.div`
136
+ position: absolute;
137
+ top: 100%;
138
+ z-index: 999;
139
+ background: ${props => props.theme.colors.backgroundInfo};
140
+ border: 1px solid ${props => props.theme.colors.primary};
141
+ box-sizing: border-box;
142
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.12);
143
+ border-radius: 7.6px;
144
+ padding: 8px 12px;
145
+ font-size: 12px;
146
+ line-height: 18px;
147
+ min-width: 150px;
148
+ transition: all 0.3s linear;
149
+ visibility: hidden;
150
+ opacity: 0;
151
+ right: -100px;
152
+ ${props => props.theme.rtl && css`
153
+ left: 0px;s
154
+ right: initial;
155
+ `}
156
+
157
+ span {
158
+ display: block;
159
+ }
160
+
161
+ a {
162
+ color: ${props => props.theme.colors.primary};
163
+ padding-left: 5px;
164
+ }
165
+
166
+ @media (min-width: 576px) {
167
+ min-width: 350px;
168
+ padding: 10px 16px;
169
+ left: 0px;
170
+ ${props => props.theme.rtl && css`
171
+ right: 0px;
172
+ left: initial;
173
+ `}
174
+ }
175
+ `
@@ -23,6 +23,7 @@ import { CustomDomain } from '../CustomDomain'
23
23
  import { bytesConverter } from '../../../utils'
24
24
  import { SelectBusiness } from './SelectBusiness'
25
25
  import { SelectFranchise } from './SelectFranchise'
26
+ import { AdvancedLayouts } from '../AdvancedLayouts'
26
27
  import {
27
28
  Container,
28
29
  HeaderTitleContainer,
@@ -53,7 +54,9 @@ import {
53
54
  CustomeDomainDesc,
54
55
  TitleWrapper,
55
56
  CustomDomainInfo,
56
- CustomDomainInfoContent
57
+ CustomDomainInfoContent,
58
+ WebsiteThemeBlock,
59
+ WebsitePriviewImageWrapper
57
60
  } from './styles'
58
61
 
59
62
  const OrderingWebsiteUI = (props) => {
@@ -87,10 +90,18 @@ const OrderingWebsiteUI = (props) => {
87
90
  const [footerContent, setFooterContent] = useState(false)
88
91
  const [selectedSetting, setSelectedSetting] = useState('basic')
89
92
  const [isCustomDomain, setIsCustomDomain] = useState(false)
93
+ const [selectedSubSetting, setSelectedSubSetting] = useState('')
94
+
95
+ const previewImages = {
96
+ marketplace: theme.images.preview.marketplace,
97
+ franchise: theme.images.preview.franchise,
98
+ single_store: theme.images.preview.singleStore
99
+ }
90
100
 
91
101
  const settingsList = [
92
- { key: 'basic', name: t('BASIC_SETTINGS', 'Basic Settings') }
93
- // { key: 'advanced', name: t('ADVANCED_SETTINGS', 'Advanced Settings') }
102
+ { key: 'basic', name: t('BASIC_SETTINGS', 'Basic Settings') },
103
+ { key: 'advanced', name: t('ADVANCED_SETTINGS', 'Advanced Settings') }
104
+ // { key: 'advanced_layouts', name: t('ADVANCED_LAYOUTS', 'Advanced Layouts') }
94
105
  ]
95
106
 
96
107
  const handleClickImage = (type) => {
@@ -169,6 +180,11 @@ const OrderingWebsiteUI = (props) => {
169
180
  handleChangeValue(content, 'theme_settings', `values.${type}`)
170
181
  }
171
182
 
183
+ const handleChangeSubSetting = (setting) => {
184
+ setSelectedSubSetting(setting)
185
+ orderingTheme.themes[0]?.values && setAdvancedValues(JSON.parse(JSON.stringify(orderingTheme.themes[0]?.values)))
186
+ }
187
+
172
188
  return (
173
189
  <>
174
190
  <Container>
@@ -373,42 +389,49 @@ const OrderingWebsiteUI = (props) => {
373
389
  {orderingTheme?.loading ? (
374
390
  <Skeleton height={20} width={150} />
375
391
  ) : (
376
- <>
377
- <RadioItem
378
- onClick={() => handleChangeValue('marketplace', 'website_theme', 'type')}
379
- >
380
- {themeValues?.website_theme?.components?.type === 'marketplace' ? <RecordCircleFill className='active' /> : <Circle />}
381
- <span>{t('MARKETPLACE', 'Marketplace')}</span>
382
- </RadioItem>
392
+ <WebsiteThemeBlock>
393
+ <div>
394
+ <RadioItem
395
+ onClick={() => handleChangeValue('marketplace', 'website_theme', 'type')}
396
+ >
397
+ {themeValues?.website_theme?.components?.type === 'marketplace' ? <RecordCircleFill className='active' /> : <Circle />}
398
+ <span>{t('MARKETPLACE', 'Marketplace')}</span>
399
+ </RadioItem>
383
400
 
384
- <RadioItem
385
- onClick={() => handleChangeValue('franchise', 'website_theme', 'type')}
386
- >
387
- {themeValues?.website_theme?.components?.type === 'franchise' ? <RecordCircleFill className='active' /> : <Circle />}
388
- <span>{t('REPORT_HEADER_FRANCHISES', 'Franchise')}</span>
389
- </RadioItem>
390
- {themeValues?.website_theme?.components?.type === 'franchise' && (
391
- <SelectFranchise
392
- defaultValue={themeValues?.website_theme?.components?.franchise_slug}
393
- franchisesList={franchisesList}
394
- onChange={value => handleChangeValue(value, 'website_theme', 'franchise_slug')}
395
- />
396
- )}
401
+ <RadioItem
402
+ onClick={() => handleChangeValue('franchise', 'website_theme', 'type')}
403
+ >
404
+ {themeValues?.website_theme?.components?.type === 'franchise' ? <RecordCircleFill className='active' /> : <Circle />}
405
+ <span>{t('REPORT_HEADER_FRANCHISES', 'Franchise')}</span>
406
+ </RadioItem>
407
+ {themeValues?.website_theme?.components?.type === 'franchise' && (
408
+ <SelectFranchise
409
+ defaultValue={themeValues?.website_theme?.components?.franchise_slug}
410
+ franchisesList={franchisesList}
411
+ onChange={value => handleChangeValue(value, 'website_theme', 'franchise_slug')}
412
+ />
413
+ )}
397
414
 
398
- <RadioItem
399
- onClick={() => handleChangeValue('single_store', 'website_theme', 'type')}
400
- >
401
- {themeValues?.website_theme?.components?.type === 'single_store' ? <RecordCircleFill className='active' /> : <Circle />}
402
- <span>{t('SINGLE_STORE', 'Single Store')}</span>
403
- </RadioItem>
404
- {themeValues?.website_theme?.components?.type === 'single_store' && (
405
- <SelectBusiness
406
- defaultValue={themeValues?.website_theme?.components?.business_slug}
407
- businessesList={businessesList}
408
- onChange={value => handleChangeValue(value, 'website_theme', 'business_slug')}
409
- />
415
+ <RadioItem
416
+ onClick={() => handleChangeValue('single_store', 'website_theme', 'type')}
417
+ >
418
+ {themeValues?.website_theme?.components?.type === 'single_store' ? <RecordCircleFill className='active' /> : <Circle />}
419
+ <span>{t('SINGLE_STORE', 'Single Store')}</span>
420
+ </RadioItem>
421
+ {themeValues?.website_theme?.components?.type === 'single_store' && (
422
+ <SelectBusiness
423
+ defaultValue={themeValues?.website_theme?.components?.business_slug}
424
+ businessesList={businessesList}
425
+ onChange={value => handleChangeValue(value, 'website_theme', 'business_slug')}
426
+ />
427
+ )}
428
+ </div>
429
+ {themeValues?.website_theme?.components?.type && (
430
+ <WebsitePriviewImageWrapper>
431
+ <img src={previewImages?.[themeValues?.website_theme?.components?.type]} />
432
+ </WebsitePriviewImageWrapper>
410
433
  )}
411
- </>
434
+ </WebsiteThemeBlock>
412
435
  )}
413
436
  </InnerBlock>
414
437
  </InputFormWrapper>
@@ -593,7 +616,36 @@ const OrderingWebsiteUI = (props) => {
593
616
  </Button>
594
617
  </FormWrapper>
595
618
  )}
596
- {selectedSetting === 'advanced' && !orderingTheme?.loading && (
619
+ {selectedSetting === 'advanced' && (
620
+ <InputFormWrapper>
621
+ <TitleWrapper isMargin>
622
+ <h4>{t('SETTINGS', 'Settings')}</h4>
623
+ <CustomDomainInfo>
624
+ <IconButton
625
+ color='primary'
626
+ >
627
+ <InfoCircleFill />
628
+ </IconButton>
629
+ <CustomDomainInfoContent>
630
+ <span>{t('ADVANCED_SETTING_HELP', 'For now you can\'t use layouts and advanced setting together, if you change between layouts and advance settings the settings will be reset to default')}</span>
631
+ </CustomDomainInfoContent>
632
+ </CustomDomainInfo>
633
+ </TitleWrapper>
634
+ <RadioItem
635
+ onClick={() => handleChangeSubSetting('advanced')}
636
+ >
637
+ {selectedSubSetting === 'advanced' ? <RecordCircleFill className='active' /> : <Circle />}
638
+ <span>{t('ADVANCED_SETTINGS', 'Advanced Settings')}</span>
639
+ </RadioItem>
640
+ <RadioItem
641
+ onClick={() => handleChangeSubSetting('advanced_layouts')}
642
+ >
643
+ {selectedSubSetting === 'advanced_layouts' ? <RecordCircleFill className='active' /> : <Circle />}
644
+ <span>{t('ADVANCED_LAYOUTS', 'Advanced Layouts')}</span>
645
+ </RadioItem>
646
+ </InputFormWrapper>
647
+ )}
648
+ {selectedSubSetting === 'advanced' && !orderingTheme?.loading && (
597
649
  <AdvancedSettings
598
650
  themesList={themesList}
599
651
  advancedValues={advancedValues}
@@ -601,6 +653,14 @@ const OrderingWebsiteUI = (props) => {
601
653
  handleUpdateSiteTheme={handleUpdateSiteTheme}
602
654
  />
603
655
  )}
656
+ {selectedSubSetting === 'advanced_layouts' && !orderingTheme?.loading && (
657
+ <AdvancedLayouts
658
+ themesList={themesList}
659
+ advancedValues={advancedValues}
660
+ setAdvancedValues={setAdvancedValues}
661
+ handleUpdateSiteTheme={handleUpdateSiteTheme}
662
+ />
663
+ )}
604
664
  </Container>
605
665
  <Alert
606
666
  title={t('ORDERING', 'Ordering')}
@@ -495,6 +495,9 @@ export const CustomeDomainDesc = styled.p`
495
495
  export const TitleWrapper = styled.div`
496
496
  display: flex;
497
497
  align-items: center;
498
+ ${({ isMargin }) => isMargin && css`
499
+ margin-bottom: 20px;
500
+ `}
498
501
  `
499
502
 
500
503
  export const CustomDomainInfo = styled.div`
@@ -519,6 +522,7 @@ export const CustomDomainInfoContent = styled.div`
519
522
  top: 100%;
520
523
  z-index: 999;
521
524
  background: ${props => props.theme.colors.backgroundInfo};
525
+ border: 1px solid ${props => props.theme.colors.primary};
522
526
  box-sizing: border-box;
523
527
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.12);
524
528
  border-radius: 7.6px;
@@ -604,3 +608,37 @@ export const SelectWrapper = styled.div`
604
608
  }
605
609
  }
606
610
  `
611
+
612
+ export const WebsiteThemeBlock = styled.div`
613
+ display: flex;
614
+ flex-direction: column-reverse;
615
+ margin-top: 20px;
616
+
617
+ .select {
618
+ .list {
619
+ left: 0;
620
+ right: initial;
621
+ }
622
+ }
623
+
624
+ @media (min-width: 768px) {
625
+ flex-direction: row;
626
+ justify-content: space-between;
627
+ align-items: center;
628
+ }
629
+ `
630
+
631
+ export const WebsitePriviewImageWrapper = styled.div`
632
+ box-shadow: 0px 1px 4px rgba(0,0,0,0.1);
633
+ img {
634
+ height: auto;
635
+ width: 100%;
636
+ margin-bottom: 15px;
637
+ }
638
+ @media (min-width: 768px) {
639
+ img {
640
+ height: 200px;
641
+ margin-bottom: 0;
642
+ }
643
+ }
644
+ `
@@ -0,0 +1,137 @@
1
+ import React, { useState, useEffect } from 'react'
2
+ import { useConfig, DriversList as DriversController } from 'ordering-components-admin-external'
3
+ import { OrdersLateralBar } from '../../OrdersLateralBar'
4
+ import { GoogleMapsApiKeySettingButton } from '../../GoogleMapsApiKeySettingButton'
5
+ import { DriversOnlineOfflineFilter } from '../../DriversOnlineOfflineFilter'
6
+ import { DriversBusyStatusFilter } from '../../DriversBusyStatusFilter'
7
+ import { DriversList } from '../../DriversList'
8
+
9
+ import {
10
+ DriversHeader,
11
+ DriversContainer,
12
+ DriversContent,
13
+
14
+ DriverListContainer,
15
+ FilterContainer,
16
+ WrapperDriversList
17
+ } from './styles'
18
+
19
+ const DriversManagerUI = (props) => {
20
+ const {
21
+ driversIsOnline,
22
+ driversList,
23
+ handleChangeDriverIsOnline,
24
+ driversSubfilter,
25
+ handleChangeDriversSubFilter,
26
+ onlineDrivers,
27
+ offlineDrivers,
28
+ setMapsData
29
+ } = props
30
+
31
+ const [configState] = useConfig()
32
+ const googleMapsApiKey = configState?.configs?.google_maps_api_key?.value
33
+
34
+ const numberOfonlineDrivers = onlineDrivers.length
35
+ const numberOfofflineDrivers = offlineDrivers.length
36
+ const numberOfbusyDrivers = driversIsOnline ? onlineDrivers.filter(ele => ele.busy).length : offlineDrivers.filter(ele => ele.busy).length
37
+ const numberOfnotBusyDrivers = driversIsOnline ? onlineDrivers.filter(ele => !ele.busy).length : offlineDrivers.filter(ele => !ele.busy).length
38
+
39
+ const [isOpenDriverOrders, setIsOpenDriverOrders] = useState(false)
40
+ const [selectedDriver, setSelectedDriver] = useState(null)
41
+ const [openDriver, setOpenDriver] = useState(null)
42
+
43
+ const handleBackRedirect = () => {
44
+ setIsOpenDriverOrders(false)
45
+ }
46
+
47
+ const handleChangeDriver = (driver) => {
48
+ if (selectedDriver?.id === driver.id) {
49
+ setSelectedDriver(null)
50
+ } else {
51
+ setSelectedDriver(driver)
52
+ }
53
+ }
54
+
55
+ const handleOpenDriverOrders = (driver) => {
56
+ setOpenDriver(driver)
57
+ setIsOpenDriverOrders(true)
58
+ }
59
+
60
+ useEffect(() => {
61
+ setSelectedDriver(null)
62
+ }, [driversIsOnline])
63
+
64
+ useEffect(() => {
65
+ setMapsData({
66
+ driversIsOnline: driversIsOnline,
67
+ onlineDrivers: onlineDrivers,
68
+ offlineDrivers: offlineDrivers,
69
+ selectedDriver: selectedDriver
70
+ })
71
+ }, [driversIsOnline, selectedDriver, onlineDrivers, offlineDrivers])
72
+
73
+ return (
74
+ <>
75
+ <DriversContainer>
76
+ <DriversHeader>
77
+ {!googleMapsApiKey && (
78
+ <GoogleMapsApiKeySettingButton />
79
+ )}
80
+ </DriversHeader>
81
+ <DriversContent>
82
+ <DriverListContainer>
83
+ <FilterContainer>
84
+ <DriversOnlineOfflineFilter
85
+ driversIsOnline={driversIsOnline}
86
+ handleChangeDriverIsOnline={handleChangeDriverIsOnline}
87
+ numberOfonlineDrivers={numberOfonlineDrivers}
88
+ numberOfofflineDrivers={numberOfofflineDrivers}
89
+ />
90
+ <DriversBusyStatusFilter
91
+ driversSubfilter={driversSubfilter}
92
+ handleChangeDriversSubFilter={handleChangeDriversSubFilter}
93
+ numberOfbusyDrivers={numberOfbusyDrivers}
94
+ numberOfnotBusyDrivers={numberOfnotBusyDrivers}
95
+ />
96
+ </FilterContainer>
97
+ <WrapperDriversList>
98
+ <DriversList
99
+ hidePhoto
100
+ loading={driversList.loading}
101
+ driversIsOnline={driversIsOnline}
102
+ onlineDrivers={onlineDrivers}
103
+ offlineDrivers={offlineDrivers}
104
+ selectedDriver={selectedDriver}
105
+ handleChangeDriver={handleChangeDriver}
106
+ handleOpenDriverOrders={handleOpenDriverOrders}
107
+ />
108
+ </WrapperDriversList>
109
+ </DriverListContainer>
110
+ </DriversContent>
111
+
112
+ {isOpenDriverOrders && openDriver && (
113
+ <OrdersLateralBar
114
+ isDriver
115
+ open={isOpenDriverOrders}
116
+ user={openDriver}
117
+ onClose={() => handleBackRedirect()}
118
+ />
119
+ )}
120
+ </DriversContainer>
121
+ </>
122
+ )
123
+ }
124
+
125
+ export const DriversManager = (props) => {
126
+ const DriversControlProps = {
127
+ ...props,
128
+ asDashboard: true,
129
+ propsToFetch: ['id', 'name', 'lastname', 'location', 'enabled', 'available', 'busy', 'driver_groups', 'assigned_orders_count', 'last_order_assigned_at', 'last_location_at', 'cellphone', 'photo', 'qualification'],
130
+ UIComponent: DriversManagerUI
131
+ }
132
+ return (
133
+ <>
134
+ <DriversController {...DriversControlProps} />
135
+ </>
136
+ )
137
+ }
@@ -0,0 +1,51 @@
1
+ import styled from 'styled-components'
2
+
3
+ export const DriversContainer = styled.div`
4
+ box-sizing: border-box;
5
+ `
6
+
7
+ export const DriversHeader = styled.div`
8
+ display: flex;
9
+ flex-direction: column;
10
+ > div:last-child {
11
+ margin-top: 20px;
12
+ }
13
+ input {
14
+ background: ${props => props.theme.colors.secundary};
15
+ border: none;
16
+ }
17
+ @media (min-width: 768px) {
18
+ flex-direction: row;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+ > div:last-child {
22
+ margin-top: 0px;
23
+ }
24
+ }
25
+ `
26
+
27
+ export const DriversContent = styled.div`
28
+ `
29
+
30
+ export const DriverListContainer = styled.div`
31
+ height: 100%;
32
+ overflow: hidden;
33
+ margin-top: 20px;
34
+ @media (min-width: 992px) {
35
+ width: 350px;
36
+ max-width: 350px;
37
+ margin-top: 0px;
38
+ }
39
+ `
40
+ export const FilterContainer = styled.div`
41
+ position: sticky;
42
+ top: 0px;
43
+ background: ${props => props.theme.colors?.backgroundPage || '#FFF'};
44
+ z-index: 100;
45
+ `
46
+ export const WrapperDriversList = styled.div`
47
+ overflow-x: hidden;
48
+ @media (min-width: 992px) {
49
+ max-height: calc(var(--vh, 1vh) * 100 - 410px);
50
+ }
51
+ `