ordering-ui-admin-external 1.39.9 → 1.40.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/{ordering-ui-admin.a195abab9ce10c18d568.js → ordering-ui-admin.27b7bb0f04b6581074ce.js} +2 -2
- package/_modules/components/BusinessIntelligence/InvoiceDriverPdf/index.js +2 -1
- package/_modules/components/BusinessIntelligence/Reports/ReportsSlaOrders/index.js +84 -8
- package/_modules/components/BusinessIntelligence/Reports/ReportsSlaOrders/styles.js +8 -4
- package/_modules/components/Delivery/DriversGroupAddForm/BusinessesForm/index.js +23 -4
- package/_modules/components/Delivery/DriversGroupAddForm/BusinessesForm/styles.js +7 -3
- package/_modules/components/Delivery/DriversGroupBusinesses/index.js +23 -4
- package/_modules/components/Delivery/DriversGroupBusinesses/styles.js +7 -3
- package/_modules/components/Delivery/DriversGroupsListing/index.js +2 -0
- package/_modules/components/Delivery/UsersListingHeader/index.js +9 -1
- package/_modules/components/Delivery/UsersListingHeader/styles.js +17 -2
- package/_modules/components/MyProducts/AdvancedSettings/index.js +20 -0
- package/_modules/components/MyProducts/AppLayout/index.js +56 -46
- package/_modules/components/MyProducts/CallCenterApp/index.js +2 -6
- package/_modules/components/MyProducts/CustomProject/index.js +1 -1
- package/_modules/components/MyProducts/CustomerApp/index.js +3 -1
- package/_modules/components/MyProducts/DriverApp/index.js +3 -1
- package/_modules/components/MyProducts/KioskApp/index.js +2 -4
- package/_modules/components/MyProducts/StoreApp/index.js +3 -1
- package/_modules/components/Orders/AllInOne/DriversManager/index.js +13 -5
- package/_modules/components/Orders/AllInOne/index.js +13 -4
- package/_modules/components/Orders/DeliveriesLocation/index.js +6 -2
- package/_modules/components/Orders/DriversBusyStatusFilter/index.js +5 -2
- package/_modules/components/Orders/DriversBusyStatusFilter/styles.js +5 -2
- package/_modules/components/Orders/DriversList/Driver.js +67 -0
- package/_modules/components/Orders/DriversList/index.js +21 -48
- package/_modules/components/Orders/DriversList/styles.js +35 -26
- package/_modules/components/Orders/DriversLocation/index.js +8 -13
- package/_modules/components/Orders/DriversManager/index.js +10 -1
- package/_modules/components/Orders/DriversManager/styles.js +18 -3
- package/_modules/components/Orders/DriversOnlineOfflineFilter/index.js +5 -2
- package/_modules/components/Orders/DriversOnlineOfflineFilter/styles.js +11 -8
- package/_modules/components/Orders/OrderContactInformation/index.js +39 -18
- package/_modules/components/Orders/OrderContactInformation/styles.js +4 -3
- package/_modules/components/Orders/OrderDetails/index.js +8 -3
- package/_modules/components/Orders/OrderDetailsHeader/styles.js +1 -1
- package/_modules/components/Orders/OrderStatusTypeSelector/index.js +19 -27
- package/_modules/components/Orders/OrdersDashboard/index.js +2 -2
- package/_modules/components/Orders/OrdersFilterGroup/index.js +5 -2
- package/_modules/components/Orders/OrdersFilterGroup/styles.js +9 -3
- package/_modules/components/Orders/OrdersLateralBar/index.js +1 -0
- package/_modules/components/Orders/OrdersListing/index.js +12 -3
- package/_modules/components/Orders/OrdersListing/styles.js +23 -2
- package/_modules/components/Orders/OrdersManager/index.js +4 -2
- package/_modules/components/Orders/OrdersManager/test.js +975 -0
- package/_modules/components/Orders/OrdersTable/Order.js +230 -0
- package/_modules/components/Orders/OrdersTable/index.js +30 -200
- package/_modules/components/Orders/ProductItemAccordion/styles.js +1 -1
- package/_modules/components/Settings/SettingsLogs/index.js +174 -0
- package/_modules/components/Settings/SettingsLogs/styles.js +80 -0
- package/_modules/components/Settings/index.js +7 -0
- package/_modules/components/SidebarMenu/index.js +6 -1
- package/_modules/components/Stores/BusinessAdd/BusinessDetails/index.js +8 -3
- package/_modules/index.js +6 -0
- package/index-template.js +1 -1
- package/package.json +2 -2
- package/src/components/BusinessIntelligence/InvoiceDriverPdf/index.js +1 -1
- package/src/components/BusinessIntelligence/Reports/ReportsSlaOrders/index.js +71 -2
- package/src/components/BusinessIntelligence/Reports/ReportsSlaOrders/styles.js +15 -1
- package/src/components/Delivery/DriversGroupAddForm/BusinessesForm/index.js +46 -18
- package/src/components/Delivery/DriversGroupAddForm/BusinessesForm/styles.js +12 -0
- package/src/components/Delivery/DriversGroupBusinesses/index.js +46 -18
- package/src/components/Delivery/DriversGroupBusinesses/styles.js +12 -0
- package/src/components/Delivery/DriversGroupsListing/index.js +2 -0
- package/src/components/Delivery/UsersListingHeader/index.js +14 -2
- package/src/components/Delivery/UsersListingHeader/styles.js +55 -0
- package/src/components/MyProducts/AdvancedSettings/index.js +6 -1
- package/src/components/MyProducts/AppLayout/index.js +82 -64
- package/src/components/MyProducts/CallCenterApp/index.js +2 -6
- package/src/components/MyProducts/CustomProject/index.js +1 -1
- package/src/components/MyProducts/CustomerApp/index.js +3 -1
- package/src/components/MyProducts/DriverApp/index.js +3 -1
- package/src/components/MyProducts/KioskApp/index.js +2 -4
- package/src/components/MyProducts/StoreApp/index.js +3 -1
- package/src/components/Orders/AllInOne/DriversManager/index.js +8 -2
- package/src/components/Orders/AllInOne/index.js +10 -2
- package/src/components/Orders/DeliveriesLocation/index.js +8 -2
- package/src/components/Orders/DriversBusyStatusFilter/index.js +3 -2
- package/src/components/Orders/DriversBusyStatusFilter/styles.js +5 -0
- package/src/components/Orders/DriversList/Driver.js +61 -0
- package/src/components/Orders/DriversList/index.js +14 -41
- package/src/components/Orders/DriversList/styles.js +25 -1
- package/src/components/Orders/DriversLocation/index.js +12 -25
- package/src/components/Orders/DriversManager/index.js +15 -2
- package/src/components/Orders/DriversManager/styles.js +55 -0
- package/src/components/Orders/DriversOnlineOfflineFilter/index.js +3 -2
- package/src/components/Orders/DriversOnlineOfflineFilter/styles.js +11 -0
- package/src/components/Orders/OrderContactInformation/index.js +26 -3
- package/src/components/Orders/OrderContactInformation/styles.js +16 -0
- package/src/components/Orders/OrderDetails/index.js +19 -2
- package/src/components/Orders/OrderDetailsHeader/styles.js +3 -1
- package/src/components/Orders/OrderStatusTypeSelector/index.js +19 -27
- package/src/components/Orders/OrdersDashboard/index.js +2 -2
- package/src/components/Orders/OrdersFilterGroup/index.js +2 -1
- package/src/components/Orders/OrdersFilterGroup/styles.js +14 -5
- package/src/components/Orders/OrdersLateralBar/index.js +1 -0
- package/src/components/Orders/OrdersListing/index.js +20 -4
- package/src/components/Orders/OrdersListing/styles.js +62 -0
- package/src/components/Orders/OrdersManager/index.js +2 -0
- package/src/components/Orders/OrdersManager/test.js +602 -0
- package/src/components/Orders/OrdersTable/Order.js +281 -0
- package/src/components/Orders/OrdersTable/index.js +35 -252
- package/src/components/Orders/ProductItemAccordion/styles.js +0 -4
- package/src/components/Settings/SettingsLogs/index.js +307 -0
- package/src/components/Settings/SettingsLogs/styles.js +268 -0
- package/src/components/Settings/index.js +2 -0
- package/src/components/SidebarMenu/index.js +8 -1
- package/src/components/Stores/BusinessAdd/BusinessDetails/index.js +9 -0
- package/src/index.js +2 -0
- package/template/app.js +4 -0
- package/template/components/ListenPageChanges/index.js +1 -0
- package/template/helmetdata.json +7 -0
- package/template/pages/SettingsLogs/index.js +12 -0
- /package/_bundles/{ordering-ui-admin.a195abab9ce10c18d568.js.LICENSE.txt → ordering-ui-admin.27b7bb0f04b6581074ce.js.LICENSE.txt} +0 -0
|
@@ -11,8 +11,11 @@ import {
|
|
|
11
11
|
BusinessesContainer,
|
|
12
12
|
BusinessWrapper,
|
|
13
13
|
WrapperImage,
|
|
14
|
-
Image
|
|
14
|
+
Image,
|
|
15
|
+
SkeletonContainer,
|
|
16
|
+
SkeletonWrapper
|
|
15
17
|
} from './styles'
|
|
18
|
+
import Skeleton from 'react-loading-skeleton'
|
|
16
19
|
|
|
17
20
|
export const BusinessesForm = (props) => {
|
|
18
21
|
const {
|
|
@@ -20,7 +23,8 @@ export const BusinessesForm = (props) => {
|
|
|
20
23
|
handleSelectBusiness,
|
|
21
24
|
actionState,
|
|
22
25
|
handleSelectAllBusiness,
|
|
23
|
-
selectedBusinessIds
|
|
26
|
+
selectedBusinessIds,
|
|
27
|
+
businessesLoading
|
|
24
28
|
} = props
|
|
25
29
|
|
|
26
30
|
const [, t] = useLanguage()
|
|
@@ -35,7 +39,7 @@ export const BusinessesForm = (props) => {
|
|
|
35
39
|
_filteredBusinesses = [...businesses]
|
|
36
40
|
}
|
|
37
41
|
setFilteredBusinesses(_filteredBusinesses)
|
|
38
|
-
}, [searchValue])
|
|
42
|
+
}, [searchValue, businesses])
|
|
39
43
|
|
|
40
44
|
return (
|
|
41
45
|
<Container>
|
|
@@ -66,21 +70,45 @@ export const BusinessesForm = (props) => {
|
|
|
66
70
|
</Button>
|
|
67
71
|
</ButtonGroup>
|
|
68
72
|
<BusinessesContainer>
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
73
|
+
{businessesLoading ? (
|
|
74
|
+
<>
|
|
75
|
+
{
|
|
76
|
+
[...Array(9).keys()].map(i => (
|
|
77
|
+
<SkeletonWrapper key={i}>
|
|
78
|
+
<tr>
|
|
79
|
+
<td>
|
|
80
|
+
<SkeletonContainer>
|
|
81
|
+
<Skeleton width={18} height={18} />
|
|
82
|
+
<Skeleton width={35} height={35} style={{ margin: '0px 5px', borderRadius: '100%' }} />
|
|
83
|
+
</SkeletonContainer>
|
|
84
|
+
</td>
|
|
85
|
+
<td>
|
|
86
|
+
<Skeleton width={250} />
|
|
87
|
+
</td>
|
|
88
|
+
</tr>
|
|
89
|
+
</SkeletonWrapper>
|
|
90
|
+
))
|
|
91
|
+
}
|
|
92
|
+
</>
|
|
93
|
+
) : (
|
|
94
|
+
<>
|
|
95
|
+
{filteredBusinesses.map(business => (
|
|
96
|
+
<BusinessWrapper
|
|
97
|
+
key={business.id}
|
|
98
|
+
isDisabed={actionState.loading}
|
|
99
|
+
>
|
|
100
|
+
<Checkbox
|
|
101
|
+
checked={selectedBusinessIds.includes(business.id)}
|
|
102
|
+
onChange={e => handleSelectBusiness(business.id, e.target.checked)}
|
|
103
|
+
/>
|
|
104
|
+
<WrapperImage>
|
|
105
|
+
<Image bgimage={business?.logo} alt='logo' />
|
|
106
|
+
</WrapperImage>
|
|
107
|
+
<p>{business?.name}</p>
|
|
108
|
+
</BusinessWrapper>
|
|
109
|
+
))}
|
|
110
|
+
</>
|
|
111
|
+
)}
|
|
84
112
|
</BusinessesContainer>
|
|
85
113
|
</Container>
|
|
86
114
|
)
|
|
@@ -85,3 +85,15 @@ export const Image = (props) => {
|
|
|
85
85
|
</ImageStyled>
|
|
86
86
|
)
|
|
87
87
|
}
|
|
88
|
+
|
|
89
|
+
export const SkeletonWrapper = styled.div`
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
padding: 10px 0;
|
|
93
|
+
border-bottom: 1px solid ${props => props.theme.colors.borderColor};
|
|
94
|
+
`
|
|
95
|
+
|
|
96
|
+
export const SkeletonContainer = styled.div`
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
`
|
|
@@ -12,8 +12,11 @@ import {
|
|
|
12
12
|
BusinessesContainer,
|
|
13
13
|
BusinessWrapper,
|
|
14
14
|
WrapperImage,
|
|
15
|
-
Image
|
|
15
|
+
Image,
|
|
16
|
+
SkeletonWrapper,
|
|
17
|
+
SkeletonContainer
|
|
16
18
|
} from './styles'
|
|
19
|
+
import Skeleton from 'react-loading-skeleton'
|
|
17
20
|
|
|
18
21
|
export const DriversGroupBusinesses = (props) => {
|
|
19
22
|
const {
|
|
@@ -26,7 +29,8 @@ export const DriversGroupBusinesses = (props) => {
|
|
|
26
29
|
handleAddDriversGroup,
|
|
27
30
|
handleSelectAllBusiness,
|
|
28
31
|
selectedBusinessIds,
|
|
29
|
-
actionDisabled
|
|
32
|
+
actionDisabled,
|
|
33
|
+
businessesLoading
|
|
30
34
|
} = props
|
|
31
35
|
|
|
32
36
|
const [, t] = useLanguage()
|
|
@@ -43,7 +47,7 @@ export const DriversGroupBusinesses = (props) => {
|
|
|
43
47
|
_filteredBusinesses = [...businesses]
|
|
44
48
|
}
|
|
45
49
|
setFilteredBusinesses(_filteredBusinesses)
|
|
46
|
-
}, [searchValue])
|
|
50
|
+
}, [searchValue, businesses])
|
|
47
51
|
|
|
48
52
|
const onSubmit = () => {
|
|
49
53
|
if (driversGroupState.driversGroup) {
|
|
@@ -85,21 +89,45 @@ export const DriversGroupBusinesses = (props) => {
|
|
|
85
89
|
</Button>
|
|
86
90
|
</ButtonGroup>
|
|
87
91
|
<BusinessesContainer>
|
|
88
|
-
{
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
92
|
+
{businessesLoading ? (
|
|
93
|
+
<>
|
|
94
|
+
{
|
|
95
|
+
[...Array(9).keys()].map(i => (
|
|
96
|
+
<SkeletonWrapper key={i}>
|
|
97
|
+
<tr>
|
|
98
|
+
<td>
|
|
99
|
+
<SkeletonContainer>
|
|
100
|
+
<Skeleton width={18} height={18} />
|
|
101
|
+
<Skeleton width={35} height={35} style={{ margin: '0px 5px', borderRadius: '100%' }} />
|
|
102
|
+
</SkeletonContainer>
|
|
103
|
+
</td>
|
|
104
|
+
<td>
|
|
105
|
+
<Skeleton width={250} />
|
|
106
|
+
</td>
|
|
107
|
+
</tr>
|
|
108
|
+
</SkeletonWrapper>
|
|
109
|
+
))
|
|
110
|
+
}
|
|
111
|
+
</>
|
|
112
|
+
) : (
|
|
113
|
+
<>
|
|
114
|
+
{filteredBusinesses.map(business => (
|
|
115
|
+
<BusinessWrapper
|
|
116
|
+
key={business.id}
|
|
117
|
+
isDisabed={actionState.loading}
|
|
118
|
+
>
|
|
119
|
+
<Checkbox
|
|
120
|
+
checked={selectedBusinessIds.includes(business.id)}
|
|
121
|
+
onChange={e => handleSelectBusiness(business.id, e.target.checked)}
|
|
122
|
+
/>
|
|
123
|
+
<WrapperImage>
|
|
124
|
+
<Image bgimage={business?.logo} alt='logo' />
|
|
125
|
+
</WrapperImage>
|
|
126
|
+
<p>{business?.name}</p>
|
|
127
|
+
</BusinessWrapper>
|
|
128
|
+
))}
|
|
129
|
+
</>
|
|
130
|
+
)}
|
|
103
131
|
</BusinessesContainer>
|
|
104
132
|
<Button
|
|
105
133
|
borderRadius='8px'
|
|
@@ -97,3 +97,15 @@ export const Image = (props) => {
|
|
|
97
97
|
</ImageStyled>
|
|
98
98
|
)
|
|
99
99
|
}
|
|
100
|
+
|
|
101
|
+
export const SkeletonWrapper = styled.div`
|
|
102
|
+
display: flex;
|
|
103
|
+
align-items: center;
|
|
104
|
+
padding: 10px 0;
|
|
105
|
+
border-bottom: 1px solid ${props => props.theme.colors.borderColor};
|
|
106
|
+
`
|
|
107
|
+
|
|
108
|
+
export const SkeletonContainer = styled.div`
|
|
109
|
+
display: flex;
|
|
110
|
+
align-items: center;
|
|
111
|
+
`
|
|
@@ -219,6 +219,7 @@ const DriversGroupsListingUI = (props) => {
|
|
|
219
219
|
driversGroupId={curDriversGroupId}
|
|
220
220
|
driversManagers={driversManagersList?.managers}
|
|
221
221
|
businesses={businessesList?.businesses}
|
|
222
|
+
businessesLoading={businessesList?.loading}
|
|
222
223
|
paymethods={paymethodsList?.paymethods}
|
|
223
224
|
drivers={driversList?.drivers}
|
|
224
225
|
companies={driversCompanyList?.companies}
|
|
@@ -246,6 +247,7 @@ const DriversGroupsListingUI = (props) => {
|
|
|
246
247
|
driversGroupId={curDriversGroupId}
|
|
247
248
|
driversManagers={driversManagersList?.managers}
|
|
248
249
|
businesses={businessesList?.businesses}
|
|
250
|
+
businessesLoading={businessesList?.loading}
|
|
249
251
|
paymethods={paymethodsList?.paymethods}
|
|
250
252
|
drivers={driversList?.drivers}
|
|
251
253
|
companies={driversCompanyList?.companies}
|
|
@@ -2,7 +2,7 @@ import React from 'react'
|
|
|
2
2
|
import { useLanguage } from 'ordering-components-admin-external'
|
|
3
3
|
import { SearchBar } from '../../Shared'
|
|
4
4
|
import { List as MenuIcon, LifePreserver } from 'react-bootstrap-icons'
|
|
5
|
-
import { Button, IconButton } from '../../../styles'
|
|
5
|
+
import { Button, IconButton, LinkButton } from '../../../styles'
|
|
6
6
|
import { useInfoShare } from '../../../contexts/InfoShareContext'
|
|
7
7
|
import { UsersDeleteButton, UsersExportCSV } from '../../Users'
|
|
8
8
|
import { OverlayTrigger, Tooltip } from 'react-bootstrap'
|
|
@@ -10,8 +10,10 @@ import { OverlayTrigger, Tooltip } from 'react-bootstrap'
|
|
|
10
10
|
import {
|
|
11
11
|
HeaderContainer,
|
|
12
12
|
HeaderTitleContainer,
|
|
13
|
-
ActionContainer
|
|
13
|
+
ActionContainer,
|
|
14
|
+
WarningMessage
|
|
14
15
|
} from './styles'
|
|
16
|
+
import TiWarningOutline from '@meronex/icons/ti/TiWarningOutline'
|
|
15
17
|
|
|
16
18
|
export const UsersListingHeader = (props) => {
|
|
17
19
|
const {
|
|
@@ -35,6 +37,9 @@ export const UsersListingHeader = (props) => {
|
|
|
35
37
|
|
|
36
38
|
const [, t] = useLanguage()
|
|
37
39
|
const [{ isCollapse }, { handleMenuCollapse }] = useInfoShare()
|
|
40
|
+
const handleClearFilters = () => {
|
|
41
|
+
if (searchValue) onSearch('')
|
|
42
|
+
}
|
|
38
43
|
|
|
39
44
|
return (
|
|
40
45
|
<HeaderContainer>
|
|
@@ -96,6 +101,13 @@ export const UsersListingHeader = (props) => {
|
|
|
96
101
|
handleDeleteSeveralUsers={handleDeleteSeveralUsers}
|
|
97
102
|
disabled={actionDisabled}
|
|
98
103
|
/>
|
|
104
|
+
{(!!searchValue) && (
|
|
105
|
+
<WarningMessage>
|
|
106
|
+
<TiWarningOutline />
|
|
107
|
+
<span>{t('WARNING_FILTER_APPLIED', 'Filters applied. You may miss new orders.')}</span>
|
|
108
|
+
<LinkButton onClick={() => handleClearFilters()}>{t('CLEAR_FILTERS', 'Clear filters')}</LinkButton>
|
|
109
|
+
</WarningMessage>
|
|
110
|
+
)}
|
|
99
111
|
<SearchBar
|
|
100
112
|
lazyLoad
|
|
101
113
|
isCustomLayout
|
|
@@ -93,3 +93,58 @@ export const ActionContainer = styled.div`
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
`
|
|
96
|
+
|
|
97
|
+
export const WarningMessage = styled.div`
|
|
98
|
+
position: absolute;
|
|
99
|
+
display: flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
z-index: 100;
|
|
102
|
+
top: 50px;
|
|
103
|
+
background: ${props => props.theme.colors.warning100};
|
|
104
|
+
border: 1px solid ${props => props.theme.colors.warning};
|
|
105
|
+
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.12);
|
|
106
|
+
border-radius: 7.6px;
|
|
107
|
+
padding: 0px 15px;
|
|
108
|
+
box-sizing: border-box;
|
|
109
|
+
margin: 10px 0px 0px 0px !important;
|
|
110
|
+
|
|
111
|
+
right: 0px;
|
|
112
|
+
${props => props.theme?.rtl && css`
|
|
113
|
+
left: 0px;
|
|
114
|
+
right: initial;
|
|
115
|
+
`}
|
|
116
|
+
|
|
117
|
+
svg {
|
|
118
|
+
font-size: 20px;
|
|
119
|
+
color: ${props => props.theme.colors.warning};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
span {
|
|
123
|
+
font-size: 12px;
|
|
124
|
+
line-height: 18px;
|
|
125
|
+
color: ${props => props.theme.colors.headingColor};
|
|
126
|
+
margin: 0 10px;
|
|
127
|
+
flex: 1;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
a {
|
|
131
|
+
font-size: 12px;
|
|
132
|
+
white-space: nowrap;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@media (min-width: 768px) {
|
|
136
|
+
padding: 0px 20px;
|
|
137
|
+
font-size: 14px;
|
|
138
|
+
line-height: 24px;
|
|
139
|
+
right: 0px;
|
|
140
|
+
z-index: 10;
|
|
141
|
+
${props => props.theme?.rtl && css`
|
|
142
|
+
left: 0px;
|
|
143
|
+
right: initial;
|
|
144
|
+
`}
|
|
145
|
+
|
|
146
|
+
span {
|
|
147
|
+
white-space: nowrap;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
`
|
|
@@ -30,7 +30,7 @@ export const AdvancedSettings = (props) => {
|
|
|
30
30
|
const [themeStructure, setThemeStructure] = useState({})
|
|
31
31
|
const [alertState, setAlertState] = useState({ open: false, content: [] })
|
|
32
32
|
const themeValuesRef = useRef({})
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
const [isOpenSound, setIsOpenSound] = useState(false)
|
|
35
35
|
|
|
36
36
|
const headerList = [
|
|
@@ -65,6 +65,11 @@ export const AdvancedSettings = (props) => {
|
|
|
65
65
|
{ name: t('DEFAULT_BACKGROUND_COLOR', 'Default Background color'), type: 'color', path: 'business_view.components.style.backgroundColor' },
|
|
66
66
|
{ name: t('PRODUCTS_FROM_PREVIOUS_ORDERS_BLOCK', 'Products from previous orders block'), type: 'hidden', path: 'business_view.components.products_ordered.hidden' },
|
|
67
67
|
{ name: t('NEAR_BUSINESS_BLOCK', 'Near business block'), type: 'hidden', path: 'business_view.components.near_business.hidden' },
|
|
68
|
+
{ name: t('REVIEWS', 'Reviews'), type: 'hidden', path: 'business_view.components.reviews.hidden' },
|
|
69
|
+
{ name: t('CUSTOMER_COMMENTS', 'Customer comments'), type: 'hidden', path: 'business_view.components.reviews.components.customer_comments.hidden' },
|
|
70
|
+
{ name: t('RANKING', 'Ranking'), type: 'hidden', path: 'business_view.components.reviews.components.ranking.hidden' },
|
|
71
|
+
{ name: t('REVIEWS_DATE', 'Reviews date'), type: 'hidden', path: 'business_view.components.reviews.components.review_date.hidden' },
|
|
72
|
+
{ name: t('SEARCH', 'Search'), type: 'hidden', path: 'business_view.components.reviews.components.search.hidden' },
|
|
68
73
|
{ name: t('BUSINESS_LOGO', 'Business logo'), type: 'hidden', path: 'business_view.components.header.components.logo.hidden' },
|
|
69
74
|
{ name: t('BUSINESS_INFO_ICON', 'Business info icon'), type: 'hidden', path: 'business_view.components.header.components.business_info.hidden' },
|
|
70
75
|
{ name: t('BUSINESS_HEADER', 'Business header'), type: 'hidden', path: 'business_view.components.header.hidden' }
|
|
@@ -24,9 +24,86 @@ export const AppLayout = (props) => {
|
|
|
24
24
|
const [{ isCollapse }, { handleMenuCollapse }] = useInfoShare()
|
|
25
25
|
const location = useLocation()
|
|
26
26
|
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const LeftContent = () => (
|
|
28
|
+
<AppInfoContainer>
|
|
29
|
+
<ImageWrapper isDriver={isDriver}>
|
|
30
|
+
<img src={appInfo.images.live} alt='' />
|
|
31
|
+
</ImageWrapper>
|
|
32
|
+
<h2>{appInfo.live_title}</h2>
|
|
33
|
+
{appInfo?.downloads && (
|
|
34
|
+
<DownLoadWrapper>
|
|
35
|
+
{appInfo.downloads.map(item => (
|
|
36
|
+
<img
|
|
37
|
+
src={item.icon}
|
|
38
|
+
alt=''
|
|
39
|
+
key={item.id}
|
|
40
|
+
onClick={() => window.open(item.link, '_blank')}
|
|
41
|
+
/>
|
|
42
|
+
))}
|
|
43
|
+
</DownLoadWrapper>
|
|
44
|
+
)}
|
|
45
|
+
{appInfo?.web_url && (
|
|
46
|
+
<DownloadLink href={appInfo.web_url} target='_blank' isSingle className='download-link'>
|
|
47
|
+
{appInfo.web_link_title}
|
|
48
|
+
</DownloadLink>
|
|
49
|
+
)}
|
|
50
|
+
<p>{appInfo.live_description}</p>
|
|
51
|
+
{appInfo?.purchase_message && (
|
|
52
|
+
<ButtonWRapper>
|
|
53
|
+
{appInfo?.purchase_link && (
|
|
54
|
+
<Button
|
|
55
|
+
color='primary'
|
|
56
|
+
borderRadius='8px'
|
|
57
|
+
onClick={() => window.open(appInfo?.purchase_link, '_blank')}
|
|
58
|
+
>
|
|
59
|
+
{t('PURCHASE_NOW', 'Purchase Now')}
|
|
60
|
+
</Button>
|
|
61
|
+
)}
|
|
62
|
+
{appInfo?.demo_link && (
|
|
63
|
+
<Button
|
|
64
|
+
color='primary'
|
|
65
|
+
outline
|
|
66
|
+
borderRadius='8px'
|
|
67
|
+
onClick={() => window.open(appInfo?.demo_link, '_blank')}
|
|
68
|
+
>
|
|
69
|
+
{t('BOOK_A_DEMO', 'Book a demo')}
|
|
70
|
+
</Button>
|
|
71
|
+
)}
|
|
72
|
+
</ButtonWRapper>
|
|
73
|
+
)}
|
|
74
|
+
</AppInfoContainer>
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
const RightContent = () => (
|
|
78
|
+
<AppInfoContainer>
|
|
79
|
+
<ImageWrapper isDriver={isDriver}>
|
|
80
|
+
<img src={appInfo.images.brand} alt='' />
|
|
81
|
+
</ImageWrapper>
|
|
82
|
+
<h2>{appInfo.brand_title}</h2>
|
|
83
|
+
<p>{appInfo.brand_description}</p>
|
|
84
|
+
<ButtonWRapper>
|
|
85
|
+
{appInfo?.purchase_link && (
|
|
86
|
+
<Button
|
|
87
|
+
color='primary'
|
|
88
|
+
borderRadius='8px'
|
|
89
|
+
onClick={() => window.open(appInfo?.purchase_link, '_blank')}
|
|
90
|
+
>
|
|
91
|
+
{t('PURCHASE_NOW', 'Purchase Now')}
|
|
92
|
+
</Button>
|
|
93
|
+
)}
|
|
94
|
+
{!appInfo?.purchase_link && appInfo?.demo_link && (
|
|
95
|
+
<Button
|
|
96
|
+
color='primary'
|
|
97
|
+
outline
|
|
98
|
+
borderRadius='8px'
|
|
99
|
+
onClick={() => window.open(appInfo?.demo_link, '_blank')}
|
|
100
|
+
>
|
|
101
|
+
{t('BOOK_A_DEMO', 'Book a demo')}
|
|
102
|
+
</Button>
|
|
103
|
+
)}
|
|
104
|
+
</ButtonWRapper>
|
|
105
|
+
</AppInfoContainer>
|
|
106
|
+
)
|
|
30
107
|
|
|
31
108
|
return (
|
|
32
109
|
<Container>
|
|
@@ -58,67 +135,8 @@ export const AppLayout = (props) => {
|
|
|
58
135
|
<h1>{appInfo.title}</h1>
|
|
59
136
|
<p>{appInfo.description}</p>
|
|
60
137
|
<BoxWrapper>
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
<img src={appInfo.images.live} alt='' />
|
|
64
|
-
</ImageWrapper>
|
|
65
|
-
<h2>{appInfo.live_title}</h2>
|
|
66
|
-
{appInfo?.downloads && (
|
|
67
|
-
<DownLoadWrapper>
|
|
68
|
-
{appInfo.downloads.map(item => (
|
|
69
|
-
<img
|
|
70
|
-
src={item.icon}
|
|
71
|
-
alt=''
|
|
72
|
-
key={item.id}
|
|
73
|
-
onClick={() => window.open(item.link, '_blank')}
|
|
74
|
-
/>
|
|
75
|
-
))}
|
|
76
|
-
</DownLoadWrapper>
|
|
77
|
-
)}
|
|
78
|
-
{appInfo?.web_url && (
|
|
79
|
-
<DownloadLink href={appInfo.web_url} target='_blank' isSingle className='download-link'>
|
|
80
|
-
{appInfo.web_link_title}
|
|
81
|
-
</DownloadLink>
|
|
82
|
-
)}
|
|
83
|
-
<p>{appInfo.live_description}</p>
|
|
84
|
-
{appInfo?.purchase_message && (
|
|
85
|
-
<ButtonWRapper>
|
|
86
|
-
<Button
|
|
87
|
-
color='primary'
|
|
88
|
-
borderRadius='8px'
|
|
89
|
-
onClick={() => showMessage(appInfo?.purchase_message)}
|
|
90
|
-
>
|
|
91
|
-
{t('PURCHASE_NOW', 'Purchase Now')}
|
|
92
|
-
</Button>
|
|
93
|
-
{appInfo?.demo_book_message && (
|
|
94
|
-
<Button
|
|
95
|
-
color='primary'
|
|
96
|
-
outline
|
|
97
|
-
borderRadius='8px'
|
|
98
|
-
onClick={() => showMessage(appInfo?.demo_book_message)}
|
|
99
|
-
>
|
|
100
|
-
{t('BOOK_A_DEMO', 'Book a demo')}
|
|
101
|
-
</Button>
|
|
102
|
-
)}
|
|
103
|
-
</ButtonWRapper>
|
|
104
|
-
)}
|
|
105
|
-
</AppInfoContainer>
|
|
106
|
-
<AppInfoContainer>
|
|
107
|
-
<ImageWrapper isDriver={isDriver}>
|
|
108
|
-
<img src={appInfo.images.brand} alt='' />
|
|
109
|
-
</ImageWrapper>
|
|
110
|
-
<h2>{appInfo.brand_title}</h2>
|
|
111
|
-
<p>{appInfo.brand_description}</p>
|
|
112
|
-
<ButtonWRapper>
|
|
113
|
-
<Button
|
|
114
|
-
color='primary'
|
|
115
|
-
borderRadius='8px'
|
|
116
|
-
onClick={() => showMessage(appInfo?.purchase_message)}
|
|
117
|
-
>
|
|
118
|
-
{t('PURCHASE_NOW', 'Purchase Now')}
|
|
119
|
-
</Button>
|
|
120
|
-
</ButtonWRapper>
|
|
121
|
-
</AppInfoContainer>
|
|
138
|
+
{appInfo?.live_title && <LeftContent />}
|
|
139
|
+
<RightContent />
|
|
122
140
|
</BoxWrapper>
|
|
123
141
|
</ContentWrapper>
|
|
124
142
|
</Container>
|
|
@@ -11,17 +11,13 @@ export const CallCenterApp = () => {
|
|
|
11
11
|
title: t('ORDERING_CALL_CENTER_APP', 'Ordering Call Center App'),
|
|
12
12
|
description: t('CALL_CENTER_DESCRIPTION', 'Give this tool to your team of agents, capture orders in just a few seconds, and keep offering the best customer experience possible.'),
|
|
13
13
|
images: {
|
|
14
|
-
live: theme.images.myProducts.myCallcenterAppLive,
|
|
15
14
|
brand: theme.images.myProducts.myCallcenterAppBrand
|
|
16
15
|
},
|
|
17
|
-
live_title: t('LIVE_DEMO', 'Live Demo'),
|
|
18
|
-
live_description: t('CALL_CENTER_APP_LIVE_DEMO_DESCRIPTION', 'This is a branded Ordering.co product; play with it and understand how it works'),
|
|
19
|
-
web_url: 'https://callcenter.tryordering.com/search',
|
|
20
|
-
web_link_title: t('CALL_CENTER', 'Call center'),
|
|
21
16
|
brand_title: t('YOUR_BRANDED_CALL_CENTER', 'Your Branded Call Center'),
|
|
22
17
|
brand_description: t('CALL_CENTER_BRANDED_DESCRIPTION', 'The Call Center is delivered in less than five working days, fully branded with your guidelines, and ready to be used on any tablet or device you add it to.'),
|
|
23
18
|
demo_book_message: 'I would like to book a Demo about the Call center , can you assist me?',
|
|
24
|
-
purchase_message: 'I would like to know about the Call center, can you assist me?'
|
|
19
|
+
purchase_message: 'I would like to know about the Call center, can you assist me?',
|
|
20
|
+
demo_link: 'https://www.ordering.co/platform-demo-and-pricing'
|
|
25
21
|
}
|
|
26
22
|
|
|
27
23
|
return (
|
|
@@ -42,7 +42,7 @@ export const CustomProject = () => {
|
|
|
42
42
|
<Button
|
|
43
43
|
color='primary'
|
|
44
44
|
borderRadius='8px'
|
|
45
|
-
onClick={() =>
|
|
45
|
+
onClick={() => window.open('https://www.ordering.co/quote-project-request', '_blank')}
|
|
46
46
|
>
|
|
47
47
|
{t('CONTACT_US', 'Contact us')}
|
|
48
48
|
</Button>
|
|
@@ -23,7 +23,9 @@ export const CustomerApp = () => {
|
|
|
23
23
|
downloads: [
|
|
24
24
|
{ id: 1, icon: theme.images.myProducts.appStoreSmall, link: 'https://apps.apple.com/us/app/customer-app-2-0/id1607414555' },
|
|
25
25
|
{ id: 2, icon: theme.images.myProducts.playStoreSmall, link: 'https://play.google.com/store/apps/details?id=com.ordering.onlineorderingappv5&hl=en&gl=US' }
|
|
26
|
-
]
|
|
26
|
+
],
|
|
27
|
+
purchase_link: 'https://buy.stripe.com/5kA4in4Fp86Kg9yfZN',
|
|
28
|
+
demo_link: 'https://www.ordering.co/platform-demo-and-pricing'
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
return (
|
|
@@ -23,7 +23,9 @@ export const DriverApp = () => {
|
|
|
23
23
|
downloads: [
|
|
24
24
|
{ id: 1, icon: theme.images.myProducts.appStoreSmall, link: 'https://apps.apple.com/us/app/driver-app-2-0/id1606257815' },
|
|
25
25
|
{ id: 2, icon: theme.images.myProducts.playStoreSmall, link: 'https://play.google.com/store/apps/details?id=com.ordering.deliveryv5' }
|
|
26
|
-
]
|
|
26
|
+
],
|
|
27
|
+
purchase_link: 'https://buy.stripe.com/dR6g151tdcn0g9y3d3',
|
|
28
|
+
demo_link: 'https://www.ordering.co/platform-demo-and-pricing'
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
return (
|
|
@@ -11,11 +11,8 @@ export const KioskApp = () => {
|
|
|
11
11
|
title: t('ORDERING_SELF_KIOSK', 'Ordering Self Ordering Kiosk'),
|
|
12
12
|
description: t('KIOS_DESCRIPTION', 'This tool will help your store complete that final step on each sale with innovative and intuitive software and hardware inside your locations.'),
|
|
13
13
|
images: {
|
|
14
|
-
live: theme.images.myProducts.myKioskAppLive,
|
|
15
14
|
brand: theme.images.myProducts.myKioskAppBrand
|
|
16
15
|
},
|
|
17
|
-
live_title: t('LIVE_DEMO', 'Live Demo'),
|
|
18
|
-
live_description: t('KIOS_APP_LIVE_DEMO_DESCRIPTION', 'This is a branded Ordering.co product. play with it and understand how it works'),
|
|
19
16
|
brand_title: t('YOUR_BRANDED_KIOSK', 'Your Branded Kiosk'),
|
|
20
17
|
brand_description: t('KIOSK_BRANDED_DESCRIPTION', 'This App is delivered in less than five working days, fully branded with your guidelines, and ready to be used on any tablet you add it to.'),
|
|
21
18
|
demo_book_message: 'I would like to book a Demo about the Kiosk app, can you assist me?',
|
|
@@ -23,7 +20,8 @@ export const KioskApp = () => {
|
|
|
23
20
|
downloads: [
|
|
24
21
|
{ id: 1, icon: theme.images.myProducts.appStoreSmall, link: 'https://apps.apple.com/us/app/ordering-kiosk-2-0/id1615828153' },
|
|
25
22
|
{ id: 2, icon: theme.images.myProducts.playStoreSmall, link: 'https://play.google.com/store/apps/details?id=com.ordering.orderingkioskv5&hl=en&gl=US' }
|
|
26
|
-
]
|
|
23
|
+
],
|
|
24
|
+
demo_link: 'https://www.ordering.co/platform-demo-and-pricing'
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
return (
|
|
@@ -23,7 +23,9 @@ export const StoreApp = () => {
|
|
|
23
23
|
downloads: [
|
|
24
24
|
{ id: 1, icon: theme.images.myProducts.appStoreSmall, link: 'https://apps.apple.com/us/app/store-app-2-0/id1608192050' },
|
|
25
25
|
{ id: 2, icon: theme.images.myProducts.playStoreSmall, link: 'https://play.google.com/store/apps/details?id=com.ordering.storeappv5&pli=1' }
|
|
26
|
-
]
|
|
26
|
+
],
|
|
27
|
+
purchase_link: 'https://buy.stripe.com/aEU5mr2xhgDg4qQcNC',
|
|
28
|
+
demo_link: 'https://www.ordering.co/platform-demo-and-pricing'
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
return (
|
|
@@ -29,7 +29,9 @@ const DriversManagerUI = (props) => {
|
|
|
29
29
|
selectedDriver,
|
|
30
30
|
setSelectedDriver,
|
|
31
31
|
assignedOrders,
|
|
32
|
-
handleUpdateAssignedOrders
|
|
32
|
+
handleUpdateAssignedOrders,
|
|
33
|
+
showCompressedInfo,
|
|
34
|
+
handleEmtpyOrderSelected
|
|
33
35
|
} = props
|
|
34
36
|
|
|
35
37
|
const [configState] = useConfig()
|
|
@@ -48,6 +50,7 @@ const DriversManagerUI = (props) => {
|
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
const handleChangeDriver = (driver) => {
|
|
53
|
+
handleEmtpyOrderSelected && handleEmtpyOrderSelected()
|
|
51
54
|
if (selectedDriver?.id === driver.id) {
|
|
52
55
|
setSelectedDriver(null)
|
|
53
56
|
} else {
|
|
@@ -86,19 +89,21 @@ const DriversManagerUI = (props) => {
|
|
|
86
89
|
)}
|
|
87
90
|
</DriversHeader>
|
|
88
91
|
<DriversContent>
|
|
89
|
-
<DriverListContainer>
|
|
92
|
+
<DriverListContainer showCompressedInfo={showCompressedInfo}>
|
|
90
93
|
<FilterContainer>
|
|
91
94
|
<DriversOnlineOfflineFilter
|
|
92
95
|
driversIsOnline={driversIsOnline}
|
|
93
96
|
handleChangeDriverIsOnline={handleChangeDriverIsOnline}
|
|
94
97
|
numberOfonlineDrivers={numberOfonlineDrivers}
|
|
95
98
|
numberOfofflineDrivers={numberOfofflineDrivers}
|
|
99
|
+
showCompressedInfo={showCompressedInfo}
|
|
96
100
|
/>
|
|
97
101
|
<DriversBusyStatusFilter
|
|
98
102
|
driversSubfilter={driversSubfilter}
|
|
99
103
|
handleChangeDriversSubFilter={handleChangeDriversSubFilter}
|
|
100
104
|
numberOfbusyDrivers={numberOfbusyDrivers}
|
|
101
105
|
numberOfnotBusyDrivers={numberOfnotBusyDrivers}
|
|
106
|
+
showCompressedInfo={showCompressedInfo}
|
|
102
107
|
/>
|
|
103
108
|
</FilterContainer>
|
|
104
109
|
<WrapperDriversList>
|
|
@@ -111,6 +116,7 @@ const DriversManagerUI = (props) => {
|
|
|
111
116
|
selectedDriver={selectedDriver}
|
|
112
117
|
handleChangeDriver={handleChangeDriver}
|
|
113
118
|
handleOpenDriverOrders={handleOpenDriverOrders}
|
|
119
|
+
showCompressedInfo={showCompressedInfo}
|
|
114
120
|
/>
|
|
115
121
|
</WrapperDriversList>
|
|
116
122
|
</DriverListContainer>
|