ordering-ui-admin-external 1.6.5 → 1.7.1
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.
- package/_bundles/{ordering-ui-admin.0b48ec00b24a060f7133.js → ordering-ui-admin.4e91d784f3b95343e365.js} +2 -2
- package/_bundles/{ordering-ui-admin.0b48ec00b24a060f7133.js.LICENSE.txt → ordering-ui-admin.4e91d784f3b95343e365.js.LICENSE.txt} +0 -0
- package/_modules/components/Marketing/EnterprisePromotionDetails/index.js +4 -3
- package/_modules/components/OrderingProducts/SiteTheme/index.js +16 -6
- package/_modules/components/OrderingProducts/SiteTheme/styles.js +8 -3
- package/_modules/components/Orders/Messages/index.js +6 -3
- package/_modules/components/Orders/OrderDetails/styles.js +1 -1
- package/_modules/components/Orders/OrdersManager/index.js +6 -2
- package/_modules/components/Settings/DoordashConnect/index.js +174 -0
- package/_modules/components/Settings/DoordashConnect/styles.js +109 -0
- package/_modules/components/Settings/IntegrationListing/index.js +26 -2
- package/_modules/components/Settings/IntegrationListing/styles.js +1 -1
- package/_modules/components/Settings/LalamoveConnect/index.js +176 -0
- package/_modules/components/Settings/LalamoveConnect/styles.js +111 -0
- package/_modules/components/Settings/index.js +7 -0
- package/_modules/components/Shared/Pagination/index.js +3 -2
- package/_modules/components/Shared/SelectSites/index.js +3 -4
- package/_modules/components/Shared/SelectUsers/index.js +37 -5
- package/_modules/components/Stores/BusinessDeliveryZoneInformation/index.js +5 -2
- package/_modules/components/Stores/BusinessDetails/index.js +42 -6
- package/index-template.js +3 -1
- package/package.json +2 -2
- package/src/components/Marketing/EnterprisePromotionDetails/index.js +3 -3
- package/src/components/OrderingProducts/SiteTheme/index.js +18 -2
- package/src/components/OrderingProducts/SiteTheme/styles.js +18 -0
- package/src/components/Orders/Messages/index.js +24 -2
- package/src/components/Orders/OrderDetails/styles.js +1 -0
- package/src/components/Orders/OrdersManager/index.js +5 -1
- package/src/components/Settings/DoordashConnect/index.js +222 -0
- package/src/components/Settings/DoordashConnect/styles.js +321 -0
- package/src/components/Settings/IntegrationListing/index.js +38 -0
- package/src/components/Settings/IntegrationListing/styles.js +4 -0
- package/src/components/Settings/LalamoveConnect/index.js +222 -0
- package/src/components/Settings/LalamoveConnect/styles.js +330 -0
- package/src/components/Settings/index.js +2 -0
- package/src/components/Shared/Pagination/index.js +3 -2
- package/src/components/Shared/SelectSites/index.js +2 -3
- package/src/components/Shared/SelectUsers/index.js +50 -21
- package/src/components/Stores/BusinessDeliveryZoneInformation/index.js +11 -6
- package/src/components/Stores/BusinessDetails/index.js +25 -3
- package/template/assets/images/lala-move.png +0 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components'
|
|
2
|
+
|
|
3
|
+
export const DoordashConnectContainer = styled.div`
|
|
4
|
+
padding: 26px 20px;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
width: 100%;
|
|
7
|
+
overflow-x: hidden;
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
@media (min-width: 768px) {
|
|
11
|
+
padding: 26px 40px;
|
|
12
|
+
}
|
|
13
|
+
`
|
|
14
|
+
|
|
15
|
+
export const Header = styled.div`
|
|
16
|
+
display: flex;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
align-items: center;
|
|
19
|
+
margin-bottom: 30px;
|
|
20
|
+
|
|
21
|
+
${props => props.theme?.rtl ? css`
|
|
22
|
+
margin-left: 35px;
|
|
23
|
+
` : css`
|
|
24
|
+
margin-right: 35px;
|
|
25
|
+
`}
|
|
26
|
+
|
|
27
|
+
h1 {
|
|
28
|
+
font-size: 20px;
|
|
29
|
+
font-weight: 700;
|
|
30
|
+
margin: 0px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
button {
|
|
34
|
+
height: 42px;
|
|
35
|
+
}
|
|
36
|
+
`
|
|
37
|
+
|
|
38
|
+
export const ApiKeysListTable = styled.table`
|
|
39
|
+
width: 100%;
|
|
40
|
+
margin-top: 25px;
|
|
41
|
+
|
|
42
|
+
thead {
|
|
43
|
+
border-bottom: 1px solid ${props => props.theme.colors.secundaryLight};
|
|
44
|
+
th {
|
|
45
|
+
padding: 10px 0;
|
|
46
|
+
&:last-child {
|
|
47
|
+
padding-left: 20px;
|
|
48
|
+
padding-right: 20px;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
tr {
|
|
53
|
+
width: 100%;
|
|
54
|
+
th,
|
|
55
|
+
td {
|
|
56
|
+
font-size: 12px;
|
|
57
|
+
word-break: break-all;
|
|
58
|
+
|
|
59
|
+
&:last-child {
|
|
60
|
+
width: 100px;
|
|
61
|
+
> div {
|
|
62
|
+
padding-left: 20px;
|
|
63
|
+
padding-right: 20px;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
tbody {
|
|
70
|
+
border-bottom: 1px solid ${props => props.theme.colors.borderColor};
|
|
71
|
+
td {
|
|
72
|
+
padding-top: 9px;
|
|
73
|
+
padding-bottom: 9px;
|
|
74
|
+
|
|
75
|
+
&:last-child {
|
|
76
|
+
> div {
|
|
77
|
+
display: flex;
|
|
78
|
+
justify-content: flex-end;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
`
|
|
84
|
+
|
|
85
|
+
export const DropdownButtonWrapper = styled.div`
|
|
86
|
+
${props => props?.theme?.rtl ? css`
|
|
87
|
+
border-right: 1px solid ${props => props.theme.colors.borderColor};
|
|
88
|
+
` : css`
|
|
89
|
+
border-left: 1px solid ${props => props.theme.colors.borderColor};
|
|
90
|
+
`}
|
|
91
|
+
padding: 5px 20px;
|
|
92
|
+
button {
|
|
93
|
+
background: transparent !important;
|
|
94
|
+
border: none;
|
|
95
|
+
padding: 0px;
|
|
96
|
+
&:active,
|
|
97
|
+
&:focus {
|
|
98
|
+
border-color: unset !important;
|
|
99
|
+
box-shadow: none !important;
|
|
100
|
+
}
|
|
101
|
+
svg {
|
|
102
|
+
color: ${props => props.theme.colors.headingColor};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&:after {
|
|
106
|
+
display: none;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.show {
|
|
111
|
+
button {
|
|
112
|
+
background: ${props => props.theme.colors.secundary} !important;
|
|
113
|
+
border-color: unset !important;
|
|
114
|
+
box-shadow: none !important;
|
|
115
|
+
}
|
|
116
|
+
>div {
|
|
117
|
+
border: 1px solid ${props => props.theme.colors.borderColor};
|
|
118
|
+
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.12);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
> div {
|
|
123
|
+
> div {
|
|
124
|
+
border-radius: 8px;
|
|
125
|
+
.dropdown-item {
|
|
126
|
+
font-size: 12px;
|
|
127
|
+
color: ${props => props.theme.colors.headingColor};
|
|
128
|
+
}
|
|
129
|
+
.dropdown-item:last-child {
|
|
130
|
+
color: #E63757;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
`
|
|
135
|
+
export const AddNewButton = styled.div`
|
|
136
|
+
cursor: pointer;
|
|
137
|
+
font-size: 12px;
|
|
138
|
+
color: ${props => props.theme.colors.lightGray};
|
|
139
|
+
margin: 20px 0;
|
|
140
|
+
width: fit-content;
|
|
141
|
+
|
|
142
|
+
&:hover {
|
|
143
|
+
color: ${props => props.theme.colors.primary};
|
|
144
|
+
}
|
|
145
|
+
`
|
|
146
|
+
|
|
147
|
+
export const AllSetting = styled.div`
|
|
148
|
+
user-select: none;
|
|
149
|
+
cursor: pointer;
|
|
150
|
+
margin-top: 36px;
|
|
151
|
+
cursor: pointer;
|
|
152
|
+
span {
|
|
153
|
+
font-weight: 600;
|
|
154
|
+
font-size: 14px;
|
|
155
|
+
color: ${props => props.theme.colors.primary};
|
|
156
|
+
}
|
|
157
|
+
svg {
|
|
158
|
+
color: ${props => props.theme.colors.primary};
|
|
159
|
+
margin-left: 5px;
|
|
160
|
+
transition: 0.2s linear;
|
|
161
|
+
${props => props.theme.rtl && css`
|
|
162
|
+
margin-right: 5px;
|
|
163
|
+
margin-left: 0px;
|
|
164
|
+
`}
|
|
165
|
+
}
|
|
166
|
+
&:hover {
|
|
167
|
+
svg {
|
|
168
|
+
transform: translateX(3px);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
`
|
|
172
|
+
|
|
173
|
+
export const Description = styled.p`
|
|
174
|
+
margin-top: 40px;
|
|
175
|
+
font-size: 14px;
|
|
176
|
+
margin-bottom: 0px;
|
|
177
|
+
text-align: justify;
|
|
178
|
+
|
|
179
|
+
@media (min-width: 768px) {
|
|
180
|
+
text-align: initial;
|
|
181
|
+
}
|
|
182
|
+
`
|
|
183
|
+
|
|
184
|
+
export const CategoryExtraContent = styled.div`
|
|
185
|
+
position: relative;
|
|
186
|
+
padding: 26px 26px 60px 26px;
|
|
187
|
+
box-sizing: border-box;
|
|
188
|
+
width: 100%;
|
|
189
|
+
overflow: auto;
|
|
190
|
+
|
|
191
|
+
${props => props.theme?.rtl ? css`
|
|
192
|
+
border-right: 1px solid #E9ECEF;
|
|
193
|
+
` : css`
|
|
194
|
+
border-left: 1px solid #E9ECEF;
|
|
195
|
+
`}
|
|
196
|
+
|
|
197
|
+
> button {
|
|
198
|
+
z-index: 100;
|
|
199
|
+
position: absolute;
|
|
200
|
+
top: 25px;
|
|
201
|
+
${props => props.theme?.rtl ? css`
|
|
202
|
+
left: 20px;
|
|
203
|
+
` : css`
|
|
204
|
+
right: 20px;
|
|
205
|
+
`}
|
|
206
|
+
}
|
|
207
|
+
`
|
|
208
|
+
|
|
209
|
+
export const Container = styled.div`
|
|
210
|
+
display: flex;
|
|
211
|
+
width: 0;
|
|
212
|
+
position: fixed;
|
|
213
|
+
box-shadow: -4px 0px 7px #ccc;
|
|
214
|
+
|
|
215
|
+
${({ isDriverOrders }) => isDriverOrders && css`
|
|
216
|
+
position: absolute;
|
|
217
|
+
box-shadow: none;
|
|
218
|
+
|
|
219
|
+
${props => props.theme?.rtl ? css`
|
|
220
|
+
border-right: 1px solid #CCC;
|
|
221
|
+
` : css`
|
|
222
|
+
border-left: 1px solid #CCC;
|
|
223
|
+
`}
|
|
224
|
+
`}
|
|
225
|
+
background: ${props => props.theme.colors?.backgroundPage || '#FFF'};
|
|
226
|
+
height: calc(var(--vh, 1vh) * 100);
|
|
227
|
+
top: 0px;
|
|
228
|
+
z-index: 1001;
|
|
229
|
+
overflow-x: hidden;
|
|
230
|
+
transition: 0.3s;
|
|
231
|
+
|
|
232
|
+
${props => props.theme?.rtl ? css`
|
|
233
|
+
left: 0px;
|
|
234
|
+
` : css`
|
|
235
|
+
right: 0px;
|
|
236
|
+
`}
|
|
237
|
+
@media print {
|
|
238
|
+
box-shadow: none;
|
|
239
|
+
}
|
|
240
|
+
`
|
|
241
|
+
|
|
242
|
+
export const DescriptionHeader = styled.div`
|
|
243
|
+
display: flex;
|
|
244
|
+
justify-content: flex-end;
|
|
245
|
+
align-items: center;
|
|
246
|
+
`
|
|
247
|
+
|
|
248
|
+
export const HeaderIcons = styled.div`
|
|
249
|
+
display: flex;
|
|
250
|
+
position: absolute;
|
|
251
|
+
top: 25px;
|
|
252
|
+
right: 20px;
|
|
253
|
+
|
|
254
|
+
> button:first-child {
|
|
255
|
+
${props => props.theme?.rtl ? css`
|
|
256
|
+
margin-left: 8px;
|
|
257
|
+
` : css`
|
|
258
|
+
margin-right: 8px;
|
|
259
|
+
`}
|
|
260
|
+
}
|
|
261
|
+
`
|
|
262
|
+
|
|
263
|
+
export const SettingListConatiner = styled.div`
|
|
264
|
+
width: 100%;
|
|
265
|
+
margin: 20px 0;
|
|
266
|
+
border-bottom: 1px solid #E9ECEF;
|
|
267
|
+
`
|
|
268
|
+
|
|
269
|
+
export const Tab = styled.div`
|
|
270
|
+
user-select: none;
|
|
271
|
+
padding: 10px 0px;
|
|
272
|
+
cursor: pointer;
|
|
273
|
+
color: ${props => props.theme.colors?.headingColor};
|
|
274
|
+
font-size: 14px;
|
|
275
|
+
white-space: nowrap;
|
|
276
|
+
${props => props.theme?.rtl ? css`
|
|
277
|
+
margin-left: 30px;
|
|
278
|
+
` : css`
|
|
279
|
+
margin-right: 30px;
|
|
280
|
+
`}
|
|
281
|
+
|
|
282
|
+
${({ active }) => active && css`
|
|
283
|
+
border-bottom: 2px solid;
|
|
284
|
+
font-weight: 500;
|
|
285
|
+
`}
|
|
286
|
+
|
|
287
|
+
${({ active }) => !active && css`
|
|
288
|
+
color: #909BA9;
|
|
289
|
+
`}
|
|
290
|
+
`
|
|
291
|
+
|
|
292
|
+
export const Paragraph = styled.div`
|
|
293
|
+
margin-top: 20px;
|
|
294
|
+
h2{
|
|
295
|
+
font-size: 16px;
|
|
296
|
+
}
|
|
297
|
+
p{
|
|
298
|
+
white-space: pre-line;
|
|
299
|
+
font-size: 12px;
|
|
300
|
+
margin: 0;
|
|
301
|
+
}
|
|
302
|
+
span {
|
|
303
|
+
font-size: 12px;
|
|
304
|
+
}
|
|
305
|
+
a {
|
|
306
|
+
text-decoration: underline !important;
|
|
307
|
+
cursor: pointer;
|
|
308
|
+
font-size: 12px;
|
|
309
|
+
color: ${props => props.theme.colors.primary} !important;
|
|
310
|
+
}
|
|
311
|
+
.bold {
|
|
312
|
+
font-weight: 600;
|
|
313
|
+
}
|
|
314
|
+
`
|
|
315
|
+
|
|
316
|
+
export const PurchaseWrapper = styled.div`
|
|
317
|
+
button {
|
|
318
|
+
border-radius: 5px;
|
|
319
|
+
}
|
|
320
|
+
margin-top: 15px;
|
|
321
|
+
`
|
|
@@ -8,6 +8,7 @@ import { SideBar } from '../../Shared'
|
|
|
8
8
|
import { PluginList } from '../PluginList'
|
|
9
9
|
import { WebhookList } from '../WebhookList'
|
|
10
10
|
import { ApiKeysList } from '../ApiKeysList'
|
|
11
|
+
import { DoordashConnect } from '../DoordashConnect'
|
|
11
12
|
|
|
12
13
|
import {
|
|
13
14
|
IntegrationsContainer,
|
|
@@ -17,11 +18,14 @@ import {
|
|
|
17
18
|
IconWrapper,
|
|
18
19
|
SettingItemContent
|
|
19
20
|
} from './styles'
|
|
21
|
+
import { useTheme } from 'styled-components'
|
|
22
|
+
import { LalaMoveConnect } from '../LalaMoveConnect'
|
|
20
23
|
|
|
21
24
|
export const IntegrationListing = (props) => {
|
|
22
25
|
const [, t] = useLanguage()
|
|
23
26
|
const { search } = useLocation()
|
|
24
27
|
const [events] = useEvent()
|
|
28
|
+
const theme = useTheme()
|
|
25
29
|
const [{ isCollapse }, { handleMenuCollapse }] = useInfoShare()
|
|
26
30
|
const [showOption, setShowOption] = useState(null)
|
|
27
31
|
|
|
@@ -112,6 +116,28 @@ export const IntegrationListing = (props) => {
|
|
|
112
116
|
<p>{t('APIKEYS_DESCRIPTION', 'These keys serve to obtain a direct connection to the API without the need for authentication.')}</p>
|
|
113
117
|
</SettingItemContent>
|
|
114
118
|
</SettingItemContainer>
|
|
119
|
+
<SettingItemContainer
|
|
120
|
+
onClick={() => handleOpenSetting('doordash')}
|
|
121
|
+
>
|
|
122
|
+
<IconWrapper>
|
|
123
|
+
<img src={theme.images.general.doordash} />
|
|
124
|
+
</IconWrapper>
|
|
125
|
+
<SettingItemContent>
|
|
126
|
+
<h5>{t('CONNECT_WITH_DOORDASH', 'Connect with Doordash')}</h5>
|
|
127
|
+
<p>{t('CONNECT_DOORDASH_DESCRIPTION', 'Send orders directly to your driver in Doordash and keep customers happy with their deliveries.')}</p>
|
|
128
|
+
</SettingItemContent>
|
|
129
|
+
</SettingItemContainer>
|
|
130
|
+
<SettingItemContainer
|
|
131
|
+
onClick={() => handleOpenSetting('lalamove')}
|
|
132
|
+
>
|
|
133
|
+
<IconWrapper>
|
|
134
|
+
<img src={theme.images.general.lalamove} />
|
|
135
|
+
</IconWrapper>
|
|
136
|
+
<SettingItemContent>
|
|
137
|
+
<h5>{t('CONNECT_WITH_LALAMOVE', 'Connect with lalamove')}</h5>
|
|
138
|
+
<p>{t('CONNECT_LALAMOVE_DESCRIPTION', 'Send orders directly to your drivers in LalaMove and keep customers happy with their deliveries.')}</p>
|
|
139
|
+
</SettingItemContent>
|
|
140
|
+
</SettingItemContainer>
|
|
115
141
|
</SettingListContainer>
|
|
116
142
|
</IntegrationsContainer>
|
|
117
143
|
|
|
@@ -147,6 +173,18 @@ export const IntegrationListing = (props) => {
|
|
|
147
173
|
<ApiKeysList />
|
|
148
174
|
</SideBar>
|
|
149
175
|
)}
|
|
176
|
+
|
|
177
|
+
{showOption === 'doordash' && (
|
|
178
|
+
<DoordashConnect
|
|
179
|
+
onClose={() => handleCloseSettings()}
|
|
180
|
+
/>
|
|
181
|
+
)}
|
|
182
|
+
|
|
183
|
+
{showOption === 'lalamove' && (
|
|
184
|
+
<LalaMoveConnect
|
|
185
|
+
onClose={() => handleCloseSettings()}
|
|
186
|
+
/>
|
|
187
|
+
)}
|
|
150
188
|
</>
|
|
151
189
|
)
|
|
152
190
|
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react'
|
|
2
|
+
import { useLanguage, ApiKeysList as ApiKeysListController } from 'ordering-components-admin-external'
|
|
3
|
+
import { Button, IconButton } from '../../../styles'
|
|
4
|
+
import { Alert, Confirm, DragScroll, Modal } from '../../Shared'
|
|
5
|
+
import BsArrowRight from '@meronex/icons/bs/BsArrowRight'
|
|
6
|
+
import { XLg } from 'react-bootstrap-icons'
|
|
7
|
+
import { useWindowSize } from '../../../hooks/useWindowSize'
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
Header,
|
|
11
|
+
AllSetting,
|
|
12
|
+
Description,
|
|
13
|
+
CategoryExtraContent,
|
|
14
|
+
Container,
|
|
15
|
+
DescriptionHeader,
|
|
16
|
+
HeaderIcons,
|
|
17
|
+
LalaMoveConnectContainer,
|
|
18
|
+
SettingListConatiner,
|
|
19
|
+
Tab,
|
|
20
|
+
Paragraph,
|
|
21
|
+
PurchaseWrapper
|
|
22
|
+
} from './styles'
|
|
23
|
+
|
|
24
|
+
const LalaMoveConnectUI = (props) => {
|
|
25
|
+
const {
|
|
26
|
+
actionState,
|
|
27
|
+
onClose
|
|
28
|
+
} = props
|
|
29
|
+
|
|
30
|
+
const [, t] = useLanguage()
|
|
31
|
+
const { width } = useWindowSize()
|
|
32
|
+
|
|
33
|
+
const [alertState, setAlertState] = useState({ open: false, content: [] })
|
|
34
|
+
const [confirm, setConfirm] = useState({ open: false, content: null, handleOnAccept: null })
|
|
35
|
+
const [settingsOpen, setSettingsOpen] = useState(false)
|
|
36
|
+
|
|
37
|
+
const toggleMainContent = () => {
|
|
38
|
+
if (width <= 500) {
|
|
39
|
+
document.getElementById('catDescription').style.width = '100vw'
|
|
40
|
+
} else {
|
|
41
|
+
if ((settingsOpen) && width >= 1000) {
|
|
42
|
+
document.getElementById('catDescription').style.width = '1000px'
|
|
43
|
+
} else {
|
|
44
|
+
document.getElementById('catDescription').style.width = '500px'
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const handleGoToLink = (link) => {
|
|
50
|
+
window.open(link, '_blank')
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (!actionState?.error) return
|
|
55
|
+
setAlertState({
|
|
56
|
+
open: true,
|
|
57
|
+
content: actionState?.error
|
|
58
|
+
})
|
|
59
|
+
}, [actionState?.error])
|
|
60
|
+
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (width < 1000) return
|
|
63
|
+
if (settingsOpen) {
|
|
64
|
+
document.getElementById('catDescription').style.width = '1000px'
|
|
65
|
+
} else {
|
|
66
|
+
toggleMainContent()
|
|
67
|
+
}
|
|
68
|
+
}, [settingsOpen])
|
|
69
|
+
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
toggleMainContent()
|
|
72
|
+
}, [width])
|
|
73
|
+
|
|
74
|
+
const LalaMoveConnectDescription = () => {
|
|
75
|
+
return (
|
|
76
|
+
<CategoryExtraContent>
|
|
77
|
+
<IconButton
|
|
78
|
+
color='black'
|
|
79
|
+
onClick={() => setSettingsOpen(false)}
|
|
80
|
+
>
|
|
81
|
+
<XLg />
|
|
82
|
+
</IconButton>
|
|
83
|
+
<div>
|
|
84
|
+
<Header>
|
|
85
|
+
<h1>{t('MORE_INFO', 'More Info')}</h1>
|
|
86
|
+
</Header>
|
|
87
|
+
<SettingListConatiner>
|
|
88
|
+
<DragScroll>
|
|
89
|
+
<Tab
|
|
90
|
+
active
|
|
91
|
+
>
|
|
92
|
+
{t('GENERAL', 'General')}
|
|
93
|
+
</Tab>
|
|
94
|
+
</DragScroll>
|
|
95
|
+
</SettingListConatiner>
|
|
96
|
+
<Paragraph>
|
|
97
|
+
<h2>{t('REQUIREMENTS', 'Requirements')}</h2>
|
|
98
|
+
<p>
|
|
99
|
+
{t('LALAMOVE_CONNECT_REQUIREMENTS',
|
|
100
|
+
'For this integration to work you need: \n' +
|
|
101
|
+
'1.- LalaMove account. \n' +
|
|
102
|
+
'2.- The advanced logistics module must be active. \n' +
|
|
103
|
+
'3.- Package of Ordering.'
|
|
104
|
+
)}
|
|
105
|
+
</p>
|
|
106
|
+
</Paragraph>
|
|
107
|
+
<Paragraph>
|
|
108
|
+
<h2>{t('ARTICLE', 'Article')}</h2>
|
|
109
|
+
<p>
|
|
110
|
+
{t('LALAMOVE_CONNECT_ARTICLE', 'To connect with LalaMove, you’ll have to use plugins, put in your LalaMove credentials, connect your LalaMove account, and create a driver company inside this dashboard; follow the next article step by step and get this connected in less than 5 minutes.')}
|
|
111
|
+
</p>
|
|
112
|
+
<a onClick={() => handleGoToLink(t('LALAMOVE_CONNECT_ARTICLE_LINK', 'https://support.ordering.co/hc/en-us/articles/10673894748941'))}>
|
|
113
|
+
{t('VIEW_ARTICLE', 'View Article')}
|
|
114
|
+
</a>
|
|
115
|
+
</Paragraph>
|
|
116
|
+
<Paragraph>
|
|
117
|
+
<h2>{t('SUPPORT', 'Support')}</h2>
|
|
118
|
+
<p>
|
|
119
|
+
{t('LALAMOVE_CONNECT_SUPPORT', 'Are you having trouble connecting this?')}
|
|
120
|
+
</p>
|
|
121
|
+
<p>
|
|
122
|
+
<a onClick={() => handleGoToLink(t('LALAMOVE_CONNECT_SUPPORT_LINK', 'https://www.ordering.co/contact-ordering'))}>{t('CONTACT_US', 'Contact us')}</a>; <span>{t('WE_ARE_HAPPY_TO_HELP', 'we are happy to help.')}</span>
|
|
123
|
+
</p>
|
|
124
|
+
</Paragraph>
|
|
125
|
+
<Paragraph>
|
|
126
|
+
<h2>{t('PRICE_INSTALATION', 'Price and installation time.')}</h2>
|
|
127
|
+
<p>
|
|
128
|
+
<span className='bold'>{t('DOORDASH_CONNECT_PRICE', '$99 monthly')}</span> | {t('DOORDASH_CONNECT_INSTALLATION', 'less than 24 hrs to get it installed in your project.')}
|
|
129
|
+
</p>
|
|
130
|
+
</Paragraph>
|
|
131
|
+
<PurchaseWrapper>
|
|
132
|
+
<Button
|
|
133
|
+
outline
|
|
134
|
+
color='primary'
|
|
135
|
+
onClick={() => handleGoToLink(t('PURCHASE_INTEGRATION_LINK', 'https://www.ordering.co/ordering-sales'))}
|
|
136
|
+
>
|
|
137
|
+
{t('PURCHASE_INTEGRATION', 'Purchase Integration')}
|
|
138
|
+
</Button>
|
|
139
|
+
</PurchaseWrapper>
|
|
140
|
+
</div>
|
|
141
|
+
</CategoryExtraContent>
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<Container
|
|
147
|
+
id='catDescription'
|
|
148
|
+
>
|
|
149
|
+
<LalaMoveConnectContainer>
|
|
150
|
+
<DescriptionHeader>
|
|
151
|
+
<HeaderIcons>
|
|
152
|
+
<IconButton
|
|
153
|
+
color='black'
|
|
154
|
+
onClick={onClose}
|
|
155
|
+
>
|
|
156
|
+
<XLg />
|
|
157
|
+
</IconButton>
|
|
158
|
+
</HeaderIcons>
|
|
159
|
+
</DescriptionHeader>
|
|
160
|
+
<Header>
|
|
161
|
+
<h1>{t('CONNECT_WITH_LALAMOVE', 'Connect with Lalamove')}</h1>
|
|
162
|
+
<Button color='lightPrimary'>{t('NEW', 'New')}</Button>
|
|
163
|
+
</Header>
|
|
164
|
+
<Description>
|
|
165
|
+
{t('CONNECT_WITH_LALAMOVE_DESCRIPTION', 'If you have already worked with LalaMove or are running your business with LalaMove and Ordering simultaneously, this integration will help you connect both platforms and assign orders through them, making your job easy and automated.')}
|
|
166
|
+
</Description>
|
|
167
|
+
<AllSetting onClick={() => setSettingsOpen(true)}>
|
|
168
|
+
<span>{t('SETTINGS', 'All settings')}</span>
|
|
169
|
+
<BsArrowRight />
|
|
170
|
+
</AllSetting>
|
|
171
|
+
</LalaMoveConnectContainer>
|
|
172
|
+
{settingsOpen && (
|
|
173
|
+
<>
|
|
174
|
+
{width >= 1000 ? (
|
|
175
|
+
<LalaMoveConnectDescription />
|
|
176
|
+
) : (
|
|
177
|
+
<>
|
|
178
|
+
<Modal
|
|
179
|
+
width='70%'
|
|
180
|
+
height='90vh'
|
|
181
|
+
open
|
|
182
|
+
padding='0px'
|
|
183
|
+
onClose={() => setSettingsOpen(false)}
|
|
184
|
+
hideCloseDefault
|
|
185
|
+
>
|
|
186
|
+
<LalaMoveConnectDescription />
|
|
187
|
+
</Modal>
|
|
188
|
+
</>
|
|
189
|
+
)}
|
|
190
|
+
</>
|
|
191
|
+
)}
|
|
192
|
+
<Alert
|
|
193
|
+
title={t('WEB_APPNAME', 'Ordering')}
|
|
194
|
+
content={alertState.content}
|
|
195
|
+
acceptText={t('ACCEPT', 'Accept')}
|
|
196
|
+
open={alertState.open}
|
|
197
|
+
onClose={() => setAlertState({ open: false, content: [] })}
|
|
198
|
+
onAccept={() => setAlertState({ open: false, content: [] })}
|
|
199
|
+
closeOnBackdrop={false}
|
|
200
|
+
/>
|
|
201
|
+
<Confirm
|
|
202
|
+
title={t('WEB_APPNAME', 'Ordering')}
|
|
203
|
+
content={confirm.content}
|
|
204
|
+
acceptText={t('ACCEPT', 'Accept')}
|
|
205
|
+
open={confirm.open}
|
|
206
|
+
onClose={() => setConfirm({ ...confirm, open: false })}
|
|
207
|
+
onCancel={() => setConfirm({ ...confirm, open: false })}
|
|
208
|
+
onAccept={confirm.handleOnAccept}
|
|
209
|
+
closeOnBackdrop={false}
|
|
210
|
+
/>
|
|
211
|
+
</Container>
|
|
212
|
+
)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export const LalaMoveConnect = (props) => {
|
|
216
|
+
const apiKeysProps = {
|
|
217
|
+
...props,
|
|
218
|
+
UIComponent: LalaMoveConnectUI
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return <ApiKeysListController {...apiKeysProps} />
|
|
222
|
+
}
|