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.
- package/_bundles/main.css +1829 -1829
- package/_bundles/{ordering-ui-admin.f2522b983a000252b407.js → ordering-ui-admin.efcc125026af46873802.js} +2 -2
- package/_modules/components/BusinessIntelligence/AnalyticsCalendar/index.js +8 -1
- package/_modules/components/Delivery/DriversCompanyAddForm/styles.js +1 -1
- package/_modules/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/index.js +68 -0
- package/_modules/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/styles.js +42 -0
- package/_modules/components/Delivery/DriversGroupAddForm/BusinessesForm/index.js +89 -0
- package/_modules/components/Delivery/DriversGroupAddForm/BusinessesForm/styles.js +47 -0
- package/_modules/components/Delivery/DriversGroupAddForm/GeneralForm/index.js +106 -0
- package/_modules/components/Delivery/DriversGroupAddForm/GeneralForm/styles.js +16 -0
- package/_modules/components/Delivery/DriversGroupAddForm/PaymethodsForm/index.js +87 -0
- package/_modules/components/Delivery/DriversGroupAddForm/PaymethodsForm/styles.js +33 -0
- package/_modules/components/Delivery/DriversGroupAddForm/index.js +132 -0
- package/_modules/components/Delivery/DriversGroupAddForm/styles.js +18 -0
- package/_modules/components/Delivery/DriversGroupCompanies/styles.js +1 -1
- package/_modules/components/Delivery/DriversGroupDrivers/styles.js +1 -1
- package/_modules/components/Delivery/DriversGroupOrders/index.js +5 -5
- package/_modules/components/Delivery/DriversGroupsList/styles.js +1 -1
- package/_modules/components/Delivery/DriversGroupsListing/index.js +28 -7
- package/_modules/components/Delivery/DriversGroupsListing/styles.js +2 -2
- package/_modules/components/Delivery/UserAddForm/index.js +39 -6
- package/_modules/components/Delivery/UserAddForm/styles.js +28 -21
- package/_modules/components/Delivery/UserDetails/index.js +2 -2
- package/_modules/components/Home/HomePage/index.js +71 -3
- package/_modules/components/Home/HomePage/styles.js +27 -5
- package/_modules/components/Login/LoginForm/index.js +0 -5
- package/_modules/components/MyProducts/AdvancedLayouts/LayoutStyleGroup.js +46 -0
- package/_modules/components/MyProducts/AdvancedLayouts/index.js +213 -0
- package/_modules/components/MyProducts/AdvancedLayouts/styles.js +146 -0
- package/_modules/components/MyProducts/AdvancedSettings/index.js +12 -0
- package/_modules/components/MyProducts/CustomDomain/index.js +6 -4
- package/_modules/components/MyProducts/CustomDomain/styles.js +27 -9
- package/_modules/components/MyProducts/OrderingWebsite/index.js +47 -6
- package/_modules/components/MyProducts/OrderingWebsite/styles.js +20 -11
- package/_modules/components/Orders/AllInOne/DriversManager/index.js +128 -0
- package/_modules/components/Orders/AllInOne/DriversManager/styles.js +27 -0
- package/_modules/components/Orders/AllInOne/index.js +337 -0
- package/_modules/components/Orders/AllInOne/styles.js +67 -0
- package/_modules/components/Orders/CompanySelector/index.js +259 -0
- package/_modules/components/Orders/CompanySelector/styles.js +86 -0
- package/_modules/components/Orders/DriversBusyStatusFilter/styles.js +6 -3
- package/_modules/components/Orders/DriversList/index.js +3 -2
- package/_modules/components/Orders/DriversList/styles.js +2 -2
- package/_modules/components/Orders/DriversManager/index.js +2 -1
- package/_modules/components/Orders/DriversOnlineOfflineFilter/styles.js +5 -2
- package/_modules/components/Orders/OrderBill/RefundToWallet.js +1 -1
- package/_modules/components/Orders/OrderBill/index.js +17 -18
- package/_modules/components/Orders/OrderContactInformation/index.js +14 -3
- package/_modules/components/Orders/OrderDetails/index.js +1 -1
- package/_modules/components/Orders/OrderStatusSubFilter/styles.js +1 -1
- package/_modules/components/Orders/OrderToPrint/index.js +2 -1
- package/_modules/components/Orders/OrderToPrintTicket/index.js +4 -2
- package/_modules/components/Orders/OrdersContentHeader/index.js +2 -1
- package/_modules/components/Orders/OrdersListing/index.js +3 -1
- package/_modules/components/Orders/OrdersManager/index.js +5 -1
- package/_modules/components/Orders/OrdersTable/index.js +11 -10
- package/_modules/components/Orders/ProductItemAccordion/index.js +5 -9
- package/_modules/components/Orders/WebsocketStatus/index.js +119 -0
- package/_modules/components/Orders/WebsocketStatus/styles.js +65 -0
- package/_modules/components/Orders/index.js +7 -0
- package/_modules/components/Settings/IntegrationListing/Analytics.js +130 -0
- package/_modules/components/Settings/IntegrationListing/PaymentGateway.js +130 -0
- package/_modules/components/Settings/IntegrationListing/index.js +174 -31
- package/_modules/components/Settings/IntegrationListing/styles.js +42 -11
- package/_modules/components/Settings/NotificationSetting/index.js +25 -4
- package/_modules/components/Settings/NotificationSetting/styles.js +5 -3
- package/_modules/components/Settings/SettingsSelectUI/index.js +3 -2
- package/_modules/components/Shared/RangeCalendar/index.js +9 -1
- package/_modules/components/Shared/SearchBar/index.js +11 -6
- package/_modules/components/Shared/SearchBar/styles.js +9 -15
- package/_modules/components/SidebarMenu/index.js +19 -10
- package/_modules/components/Stores/ImporterHelpContent/index.js +1 -1
- package/_modules/components/Stores/ImportersButton/index.js +2 -2
- package/_modules/components/Users/UserDetails/index.js +2 -2
- package/_modules/config/currency.js +1017 -0
- package/_modules/index.js +6 -0
- package/_modules/utils/index.js +26 -3
- package/index-template.js +10 -0
- package/package.json +3 -2
- package/src/components/BusinessIntelligence/AnalyticsCalendar/index.js +7 -1
- package/src/components/Delivery/DriversCompanyAddForm/styles.js +0 -1
- package/src/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/index.js +113 -0
- package/src/components/Delivery/DriversGroupAddForm/AdvancedLogisticsForm/styles.js +72 -0
- package/src/components/Delivery/DriversGroupAddForm/BusinessesForm/index.js +87 -0
- package/src/components/Delivery/DriversGroupAddForm/BusinessesForm/styles.js +87 -0
- package/src/components/Delivery/DriversGroupAddForm/GeneralForm/index.js +104 -0
- package/src/components/Delivery/DriversGroupAddForm/GeneralForm/styles.js +31 -0
- package/src/components/Delivery/DriversGroupAddForm/PaymethodsForm/index.js +82 -0
- package/src/components/Delivery/DriversGroupAddForm/PaymethodsForm/styles.js +46 -0
- package/src/components/Delivery/DriversGroupAddForm/index.js +130 -0
- package/src/components/Delivery/DriversGroupAddForm/styles.js +38 -0
- package/src/components/Delivery/DriversGroupCompanies/styles.js +1 -0
- package/src/components/Delivery/DriversGroupDrivers/styles.js +1 -0
- package/src/components/Delivery/DriversGroupOrders/index.js +2 -2
- package/src/components/Delivery/DriversGroupsList/styles.js +1 -1
- package/src/components/Delivery/DriversGroupsListing/index.js +35 -13
- package/src/components/Delivery/DriversGroupsListing/styles.js +1 -1
- package/src/components/Delivery/UserAddForm/index.js +34 -2
- package/src/components/Delivery/UserAddForm/styles.js +25 -0
- package/src/components/Delivery/UserDetails/index.js +1 -1
- package/src/components/Home/HomePage/index.js +215 -142
- package/src/components/Home/HomePage/styles.js +105 -1
- package/src/components/Login/LoginForm/index.js +0 -7
- package/src/components/MyProducts/AdvancedLayouts/LayoutStyleGroup.js +37 -0
- package/src/components/MyProducts/AdvancedLayouts/index.js +240 -0
- package/src/components/MyProducts/AdvancedLayouts/styles.js +388 -0
- package/src/components/MyProducts/AdvancedSettings/index.js +5 -2
- package/src/components/MyProducts/CustomDomain/index.js +35 -16
- package/src/components/MyProducts/CustomDomain/styles.js +73 -1
- package/src/components/MyProducts/OrderingWebsite/index.js +97 -37
- package/src/components/MyProducts/OrderingWebsite/styles.js +38 -0
- package/src/components/Orders/AllInOne/DriversManager/index.js +137 -0
- package/src/components/Orders/AllInOne/DriversManager/styles.js +51 -0
- package/src/components/Orders/AllInOne/index.js +339 -0
- package/src/components/Orders/AllInOne/styles.js +144 -0
- package/src/components/Orders/CompanySelector/index.js +250 -0
- package/src/components/Orders/CompanySelector/styles.js +142 -0
- package/src/components/Orders/DriversBusyStatusFilter/styles.js +7 -1
- package/src/components/Orders/DriversList/index.js +7 -4
- package/src/components/Orders/DriversList/styles.js +2 -1
- package/src/components/Orders/DriversManager/index.js +2 -0
- package/src/components/Orders/DriversOnlineOfflineFilter/styles.js +8 -1
- package/src/components/Orders/OrderBill/RefundToWallet.js +12 -10
- package/src/components/Orders/OrderBill/index.js +18 -18
- package/src/components/Orders/OrderContactInformation/index.js +20 -1
- package/src/components/Orders/OrderDetails/index.js +8 -8
- package/src/components/Orders/OrderStatusSubFilter/styles.js +1 -1
- package/src/components/Orders/OrderToPrint/index.js +2 -1
- package/src/components/Orders/OrderToPrintTicket/index.js +160 -173
- package/src/components/Orders/OrdersContentHeader/index.js +2 -0
- package/src/components/Orders/OrdersListing/index.js +2 -0
- package/src/components/Orders/OrdersManager/index.js +2 -2
- package/src/components/Orders/OrdersTable/index.js +39 -25
- package/src/components/Orders/ProductItemAccordion/index.js +3 -3
- package/src/components/Orders/WebsocketStatus/index.js +138 -0
- package/src/components/Orders/WebsocketStatus/styles.js +171 -0
- package/src/components/Orders/index.js +2 -0
- package/src/components/Settings/IntegrationListing/Analytics.js +127 -0
- package/src/components/Settings/IntegrationListing/PaymentGateway.js +126 -0
- package/src/components/Settings/IntegrationListing/index.js +189 -96
- package/src/components/Settings/IntegrationListing/styles.js +90 -1
- package/src/components/Settings/NotificationSetting/index.js +73 -10
- package/src/components/Settings/NotificationSetting/styles.js +19 -0
- package/src/components/Settings/SettingsSelectUI/index.js +12 -9
- package/src/components/Shared/RangeCalendar/index.js +7 -1
- package/src/components/Shared/SearchBar/index.js +14 -5
- package/src/components/Shared/SearchBar/styles.js +19 -32
- package/src/components/SidebarMenu/index.js +15 -8
- package/src/components/Stores/ImporterHelpContent/index.js +17 -17
- package/src/components/Stores/ImportersButton/index.js +2 -2
- package/src/components/Users/UserDetails/index.js +1 -1
- package/src/config/currency.js +1010 -0
- package/src/index.js +2 -0
- package/src/utils/index.js +21 -0
- package/template/app.js +4 -0
- package/template/assets/images/preview/franchise.png +0 -0
- package/template/assets/images/preview/marketplace.png +0 -0
- package/template/assets/images/preview/single-store.png +0 -0
- package/template/components/AutologinParams/index.js +1 -3
- package/template/components/ListenPageChanges/index.js +1 -0
- package/template/helmetdata.json +7 -0
- package/template/pages/AllInOne/index.js +23 -0
- /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
|
-
<
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
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
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
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' &&
|
|
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
|
+
`
|