ordering-ui-admin-external 1.30.7 → 1.31.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.
Files changed (164) hide show
  1. package/_bundles/{ordering-ui-admin.a29dbc53a1f823ce0ce5.js → ordering-ui-admin.b84e1f62fd043e740aba.js} +2 -2
  2. package/_modules/components/BusinessIntelligence/AnalyticsDriverOrders/index.js +80 -47
  3. package/_modules/components/BusinessIntelligence/BusinessAnalytics/index.js +2 -1
  4. package/_modules/components/BusinessIntelligence/BusinessAnalytics/styles.js +6 -4
  5. package/_modules/components/BusinessIntelligence/ReportsAverageSales/index.js +3 -2
  6. package/_modules/components/BusinessIntelligence/ReportsAverageSales/styles.js +13 -3
  7. package/_modules/components/BusinessIntelligence/ReportsBusinessDistance/index.js +3 -2
  8. package/_modules/components/BusinessIntelligence/ReportsBusinessDistance/styles.js +13 -3
  9. package/_modules/components/BusinessIntelligence/ReportsBusinessSpend/index.js +3 -2
  10. package/_modules/components/BusinessIntelligence/ReportsBusinessSpend/styles.js +13 -3
  11. package/_modules/components/BusinessIntelligence/ReportsCustomer/index.js +3 -2
  12. package/_modules/components/BusinessIntelligence/ReportsCustomer/styles.js +13 -3
  13. package/_modules/components/BusinessIntelligence/ReportsDriverDistance/index.js +4 -3
  14. package/_modules/components/BusinessIntelligence/ReportsDriverDistance/styles.js +13 -3
  15. package/_modules/components/BusinessIntelligence/ReportsDriverOrder/index.js +3 -2
  16. package/_modules/components/BusinessIntelligence/ReportsDriverOrder/styles.js +13 -3
  17. package/_modules/components/BusinessIntelligence/ReportsDriverOrderTime/index.js +3 -2
  18. package/_modules/components/BusinessIntelligence/ReportsDriverOrderTime/styles.js +13 -3
  19. package/_modules/components/BusinessIntelligence/ReportsDriverSchedule/index.js +4 -3
  20. package/_modules/components/BusinessIntelligence/ReportsDriverSchedule/styles.js +13 -3
  21. package/_modules/components/BusinessIntelligence/ReportsDriverSpend/index.js +3 -2
  22. package/_modules/components/BusinessIntelligence/ReportsDriverSpend/styles.js +13 -3
  23. package/_modules/components/BusinessIntelligence/ReportsGeneralSales/index.js +3 -2
  24. package/_modules/components/BusinessIntelligence/ReportsGeneralSales/styles.js +13 -3
  25. package/_modules/components/BusinessIntelligence/ReportsHeatMap/index.js +3 -2
  26. package/_modules/components/BusinessIntelligence/ReportsHeatMap/styles.js +13 -3
  27. package/_modules/components/BusinessIntelligence/ReportsOrderDistance/index.js +3 -2
  28. package/_modules/components/BusinessIntelligence/ReportsOrderDistance/styles.js +13 -3
  29. package/_modules/components/BusinessIntelligence/ReportsOrderStatus/index.js +4 -3
  30. package/_modules/components/BusinessIntelligence/ReportsOrderStatus/styles.js +13 -3
  31. package/_modules/components/BusinessIntelligence/ReportsOrders/index.js +3 -2
  32. package/_modules/components/BusinessIntelligence/ReportsOrders/styles.js +13 -3
  33. package/_modules/components/BusinessIntelligence/ReportsPaymethodSales/index.js +3 -2
  34. package/_modules/components/BusinessIntelligence/ReportsPaymethodSales/styles.js +13 -3
  35. package/_modules/components/BusinessIntelligence/ReportsSaleAndCategory/index.js +3 -2
  36. package/_modules/components/BusinessIntelligence/ReportsSaleAndCategory/styles.js +13 -3
  37. package/_modules/components/BusinessIntelligence/ReportsSales/index.js +3 -2
  38. package/_modules/components/BusinessIntelligence/ReportsSales/styles.js +13 -3
  39. package/_modules/components/BusinessIntelligence/ReportsSpentTIme/index.js +3 -2
  40. package/_modules/components/BusinessIntelligence/ReportsSpentTIme/styles.js +13 -3
  41. package/_modules/components/BusinessIntelligence/ReportsTopDrivers/index.js +3 -2
  42. package/_modules/components/BusinessIntelligence/ReportsTopDrivers/styles.js +13 -3
  43. package/_modules/components/BusinessIntelligence/ReportsUsers/index.js +3 -2
  44. package/_modules/components/BusinessIntelligence/ReportsUsers/styles.js +13 -3
  45. package/_modules/components/Delivery/AddressList/index.js +15 -5
  46. package/_modules/components/Delivery/DriversGroupAutoassign/index.js +14 -7
  47. package/_modules/components/Delivery/DriversGroupAutoassign/styles.js +5 -3
  48. package/_modules/components/Home/HomePage/index.js +3 -2
  49. package/_modules/components/MyProducts/OrderingWebsite/index.js +25 -18
  50. package/_modules/components/MyProducts/OrderingWebsite/styles.js +1 -1
  51. package/_modules/components/Orders/AllInOne/index.js +15 -6
  52. package/_modules/components/Orders/CreateCustomOrder/CustomOrderDetails/index.js +102 -9
  53. package/_modules/components/Orders/CreateCustomOrder/CustomOrderDetails/styles.js +19 -3
  54. package/_modules/components/Orders/CreateCustomOrder/OrderTypeSelector/index.js +1 -1
  55. package/_modules/components/Orders/CreateCustomOrder/SelectCustomer/index.js +21 -9
  56. package/_modules/components/Orders/CreateCustomOrder/SelectCustomer/styles.js +8 -5
  57. package/_modules/components/Orders/DeliveriesManager/index.js +11 -2
  58. package/_modules/components/Orders/DeliveryDashboard/index.js +6 -6
  59. package/_modules/components/Orders/OrderNotification/index.js +43 -14
  60. package/_modules/components/Orders/OrderNotification/styles.js +18 -3
  61. package/_modules/components/Orders/OrderStatusFilterBar/index.js +6 -6
  62. package/_modules/components/Orders/OrdersContentHeader/index.js +11 -2
  63. package/_modules/components/Orders/OrdersContentHeader/styles.js +20 -4
  64. package/_modules/components/Orders/OrdersDashboardList/index.js +34 -5
  65. package/_modules/components/Orders/OrdersFilterGroup/index.js +18 -1
  66. package/_modules/components/Orders/OrdersListing/index.js +6 -0
  67. package/_modules/components/Orders/OrdersManager/index.js +16 -7
  68. package/_modules/components/Orders/WebsocketStatus/index.js +6 -1
  69. package/_modules/components/Settings/WebhookListSelector/index.js +6 -0
  70. package/_modules/components/Shared/InputPhoneNumber/index.js +2 -3
  71. package/_modules/components/Stores/BusinessAdd/ReceiveOrders/index.js +6 -2
  72. package/_modules/components/Stores/BusinessDeviceDetail/index.js +1 -1
  73. package/_modules/components/Stores/BusinessProductsListing/index.js +5 -1
  74. package/_modules/components/Stores/BusinessSummary/index.js +7 -4
  75. package/_modules/components/Stores/BusinessWebhooks/index.js +6 -0
  76. package/_modules/components/Stores/ProductExtraOptionDetails/index.js +6 -1
  77. package/_modules/components/Stores/ProductExtraOptions/index.js +8 -2
  78. package/_modules/components/Stores/ProductExtraSuboption/index.js +6 -1
  79. package/_modules/components/Stores/ProductExtras/index.js +8 -3
  80. package/_modules/components/Stores/ProductSummary/index.js +4 -1
  81. package/_modules/components/Users/UserAddForm/index.js +0 -2
  82. package/package.json +2 -2
  83. package/src/components/BusinessIntelligence/AnalyticsDriverOrders/index.js +39 -17
  84. package/src/components/BusinessIntelligence/BusinessAnalytics/index.js +6 -1
  85. package/src/components/BusinessIntelligence/BusinessAnalytics/styles.js +2 -0
  86. package/src/components/BusinessIntelligence/ReportsAverageSales/index.js +15 -7
  87. package/src/components/BusinessIntelligence/ReportsAverageSales/styles.js +34 -0
  88. package/src/components/BusinessIntelligence/ReportsBusinessDistance/index.js +9 -1
  89. package/src/components/BusinessIntelligence/ReportsBusinessDistance/styles.js +34 -0
  90. package/src/components/BusinessIntelligence/ReportsBusinessSpend/index.js +9 -1
  91. package/src/components/BusinessIntelligence/ReportsBusinessSpend/styles.js +34 -0
  92. package/src/components/BusinessIntelligence/ReportsCustomer/index.js +15 -7
  93. package/src/components/BusinessIntelligence/ReportsCustomer/styles.js +34 -0
  94. package/src/components/BusinessIntelligence/ReportsDriverDistance/index.js +10 -2
  95. package/src/components/BusinessIntelligence/ReportsDriverDistance/styles.js +34 -0
  96. package/src/components/BusinessIntelligence/ReportsDriverOrder/index.js +9 -1
  97. package/src/components/BusinessIntelligence/ReportsDriverOrder/styles.js +34 -0
  98. package/src/components/BusinessIntelligence/ReportsDriverOrderTime/index.js +9 -1
  99. package/src/components/BusinessIntelligence/ReportsDriverOrderTime/styles.js +34 -0
  100. package/src/components/BusinessIntelligence/ReportsDriverSchedule/index.js +16 -8
  101. package/src/components/BusinessIntelligence/ReportsDriverSchedule/styles.js +34 -0
  102. package/src/components/BusinessIntelligence/ReportsDriverSpend/index.js +9 -1
  103. package/src/components/BusinessIntelligence/ReportsDriverSpend/styles.js +34 -0
  104. package/src/components/BusinessIntelligence/ReportsGeneralSales/index.js +9 -1
  105. package/src/components/BusinessIntelligence/ReportsGeneralSales/styles.js +34 -0
  106. package/src/components/BusinessIntelligence/ReportsHeatMap/index.js +9 -1
  107. package/src/components/BusinessIntelligence/ReportsHeatMap/styles.js +34 -0
  108. package/src/components/BusinessIntelligence/ReportsOrderDistance/index.js +10 -1
  109. package/src/components/BusinessIntelligence/ReportsOrderDistance/styles.js +34 -0
  110. package/src/components/BusinessIntelligence/ReportsOrderStatus/index.js +10 -2
  111. package/src/components/BusinessIntelligence/ReportsOrderStatus/styles.js +34 -0
  112. package/src/components/BusinessIntelligence/ReportsOrders/index.js +9 -1
  113. package/src/components/BusinessIntelligence/ReportsOrders/styles.js +34 -0
  114. package/src/components/BusinessIntelligence/ReportsPaymethodSales/index.js +9 -1
  115. package/src/components/BusinessIntelligence/ReportsPaymethodSales/styles.js +34 -0
  116. package/src/components/BusinessIntelligence/ReportsSaleAndCategory/index.js +9 -1
  117. package/src/components/BusinessIntelligence/ReportsSaleAndCategory/styles.js +34 -0
  118. package/src/components/BusinessIntelligence/ReportsSales/index.js +9 -1
  119. package/src/components/BusinessIntelligence/ReportsSales/styles.js +34 -0
  120. package/src/components/BusinessIntelligence/ReportsSpentTIme/index.js +15 -7
  121. package/src/components/BusinessIntelligence/ReportsSpentTIme/styles.js +34 -0
  122. package/src/components/BusinessIntelligence/ReportsTopDrivers/index.js +9 -2
  123. package/src/components/BusinessIntelligence/ReportsTopDrivers/styles.js +34 -0
  124. package/src/components/BusinessIntelligence/ReportsUsers/index.js +15 -7
  125. package/src/components/BusinessIntelligence/ReportsUsers/styles.js +34 -0
  126. package/src/components/Delivery/AddressList/index.js +11 -1
  127. package/src/components/Delivery/DriversGroupAutoassign/index.js +17 -6
  128. package/src/components/Delivery/DriversGroupAutoassign/styles.js +10 -0
  129. package/src/components/Home/HomePage/index.js +5 -1
  130. package/src/components/MyProducts/OrderingWebsite/index.js +25 -12
  131. package/src/components/MyProducts/OrderingWebsite/styles.js +0 -2
  132. package/src/components/Orders/AllInOne/index.js +8 -2
  133. package/src/components/Orders/CreateCustomOrder/CustomOrderDetails/index.js +118 -6
  134. package/src/components/Orders/CreateCustomOrder/CustomOrderDetails/styles.js +56 -0
  135. package/src/components/Orders/CreateCustomOrder/OrderTypeSelector/index.js +1 -1
  136. package/src/components/Orders/CreateCustomOrder/SelectCustomer/index.js +19 -11
  137. package/src/components/Orders/CreateCustomOrder/SelectCustomer/styles.js +3 -0
  138. package/src/components/Orders/DeliveriesManager/index.js +8 -2
  139. package/src/components/Orders/DeliveryDashboard/index.js +4 -4
  140. package/src/components/Orders/OrderNotification/index.js +31 -5
  141. package/src/components/Orders/OrderNotification/styles.js +37 -0
  142. package/src/components/Orders/OrderStatusFilterBar/index.js +10 -9
  143. package/src/components/Orders/OrdersContentHeader/index.js +17 -3
  144. package/src/components/Orders/OrdersContentHeader/styles.js +54 -0
  145. package/src/components/Orders/OrdersDashboardList/index.js +6 -1
  146. package/src/components/Orders/OrdersFilterGroup/index.js +16 -0
  147. package/src/components/Orders/OrdersListing/index.js +7 -0
  148. package/src/components/Orders/OrdersManager/index.js +11 -3
  149. package/src/components/Orders/WebsocketStatus/index.js +5 -2
  150. package/src/components/Settings/WebhookListSelector/index.js +3 -1
  151. package/src/components/Shared/InputPhoneNumber/index.js +2 -3
  152. package/src/components/Stores/BusinessAdd/ReceiveOrders/index.js +16 -12
  153. package/src/components/Stores/BusinessDeviceDetail/index.js +1 -1
  154. package/src/components/Stores/BusinessProductsListing/index.js +4 -0
  155. package/src/components/Stores/BusinessSummary/index.js +21 -15
  156. package/src/components/Stores/BusinessWebhooks/index.js +3 -1
  157. package/src/components/Stores/ProductExtraOptionDetails/index.js +8 -0
  158. package/src/components/Stores/ProductExtraOptions/index.js +10 -1
  159. package/src/components/Stores/ProductExtraSuboption/index.js +7 -1
  160. package/src/components/Stores/ProductExtras/index.js +6 -1
  161. package/src/components/Stores/ProductSummary/index.js +7 -1
  162. package/src/components/Users/UserAddForm/index.js +0 -2
  163. package/template/config.json +1 -1
  164. /package/_bundles/{ordering-ui-admin.a29dbc53a1f823ce0ce5.js.LICENSE.txt → ordering-ui-admin.b84e1f62fd043e740aba.js.LICENSE.txt} +0 -0
@@ -9,11 +9,15 @@ import { Alert, Modal } from '../../Shared'
9
9
  import 'react-toastify/dist/ReactToastify.css'
10
10
  import { toast } from 'react-toastify'
11
11
  import { useTheme } from 'styled-components'
12
+ import { CheckSquareFill, Square } from 'react-bootstrap-icons'
12
13
 
13
14
  import {
14
15
  ModalContainer,
15
- ToastWrapper
16
+ ToastWrapper,
17
+ AlarmContent,
18
+ CheckBoxWrapper
16
19
  } from './styles'
20
+ import { Button } from '../../../styles'
17
21
 
18
22
  toast.configure()
19
23
 
@@ -27,6 +31,8 @@ const OrderNotificationUI = (props) => {
27
31
  const [, t] = useLanguage()
28
32
  const [events] = useEvent()
29
33
  const theme = useTheme()
34
+ const [showModal, setShowModal] = useState(false)
35
+ const [isChecked, setIsChecked] = useState(false)
30
36
 
31
37
  const [notificationModalOpen, setNotificationModalOpen] = useState(false)
32
38
  const [registerOrderIds, setRegisterOrderIds] = useState([])
@@ -110,12 +116,17 @@ const OrderNotificationUI = (props) => {
110
116
  }, [configState, registerOrderIds, customerId])
111
117
 
112
118
  useEffect(() => {
113
- setAlertState({
114
- open: true,
115
- content: t('SOUND_WILL_BE_PLAYED', 'The sound will be played on this page whenever a new order is received.')
116
- })
119
+ const isSaved = localStorage.getItem('new_order_notification')
120
+ if (!isSaved) setShowModal(true)
117
121
  }, [])
118
122
 
123
+ const handleClose = () => {
124
+ setShowModal(false)
125
+ if (isChecked) {
126
+ localStorage.setItem('new_order_notification', '1')
127
+ }
128
+ }
129
+
119
130
  return (
120
131
  <>
121
132
  <Modal
@@ -147,6 +158,21 @@ const OrderNotificationUI = (props) => {
147
158
  onAccept={() => setAlertState({ open: false, content: [] })}
148
159
  closeOnBackdrop={false}
149
160
  />
161
+ <Modal
162
+ open={showModal}
163
+ width='700px'
164
+ onClose={handleClose}
165
+ title={t('ORDERING', 'Ordering')}
166
+ >
167
+ <AlarmContent>
168
+ <span>{t('SOUND_WILL_BE_PLAYED', 'The sound will be played on this page whenever a new order is received.')}</span>
169
+ <CheckBoxWrapper onClick={() => setIsChecked(prev => !prev)} isChecked={isChecked}>
170
+ {isChecked ? <CheckSquareFill /> : <Square />}
171
+ <span>{t('DONT_SHOW_AGAIN', 'Don\'t show again')}</span>
172
+ </CheckBoxWrapper>
173
+ <Button color='primary' onClick={handleClose}>{t('ACCEPT', 'Accept')}</Button>
174
+ </AlarmContent>
175
+ </Modal>
150
176
  </>
151
177
  )
152
178
  }
@@ -79,3 +79,40 @@ export const ToastWrapper = styled.div`
79
79
  }
80
80
  }
81
81
  `
82
+
83
+ export const AlarmContent = styled.div`
84
+ button {
85
+ height: 44px;
86
+ width: 100%;
87
+ border-radius: 8px;
88
+ margin-top: 20px;
89
+ }
90
+ > span {
91
+ font-weight: 500;
92
+ }
93
+ `
94
+
95
+ export const CheckBoxWrapper = styled.div`
96
+ display: flex;
97
+ align-items: center;
98
+ cursor: pointer;
99
+ margin-top: 10px;
100
+ span {
101
+ font-size: 14px;
102
+ }
103
+ svg {
104
+ ${props => props.theme?.rtl ? css`
105
+ margin-left: 10px;
106
+ ` : css`
107
+ margin-right: 10px;
108
+ `}
109
+ font-size: 16px;
110
+ color: ${props => props.theme.colors.secundaryLight};
111
+ }
112
+
113
+ ${({ isChecked }) => isChecked && css`
114
+ svg {
115
+ color: ${props => props.theme.colors?.primary};
116
+ }
117
+ `}
118
+ `
@@ -12,7 +12,7 @@ export const OrderStatusFilterBar = (props) => {
12
12
  const {
13
13
  selectedOrderStatus,
14
14
  changeOrderStatus,
15
- numberOfOrdersByStatus
15
+ ordersAmountByStatus
16
16
  } = props
17
17
 
18
18
  const changeSelectedOrderStatus = (orderStatus) => {
@@ -21,6 +21,7 @@ export const OrderStatusFilterBar = (props) => {
21
21
  }
22
22
 
23
23
  const [, t] = useLanguage()
24
+
24
25
  return (
25
26
  <>
26
27
  <OrderStatusFilterContainer className='order_status_filter'>
@@ -31,8 +32,8 @@ export const OrderStatusFilterBar = (props) => {
31
32
  >
32
33
  {t('PENDING', 'pending')}
33
34
  <span>(
34
- {numberOfOrdersByStatus?.result ? (
35
- numberOfOrdersByStatus?.result?.pending ?? 0
35
+ {!isNaN(ordersAmountByStatus?.pending) && ordersAmountByStatus?.pending !== null ? (
36
+ ordersAmountByStatus?.pending ?? 0
36
37
  ) : (
37
38
  <CgSpinnerTwoAlt />
38
39
  )}
@@ -46,8 +47,8 @@ export const OrderStatusFilterBar = (props) => {
46
47
  >
47
48
  {t('IN_PROGRESS', 'in progress')}
48
49
  <span>(
49
- {numberOfOrdersByStatus?.result ? (
50
- numberOfOrdersByStatus?.result?.inProgress ?? 0
50
+ {!isNaN(ordersAmountByStatus?.inProgress) && ordersAmountByStatus?.inProgress !== null ? (
51
+ ordersAmountByStatus?.inProgress ?? 0
51
52
  ) : (
52
53
  <CgSpinnerTwoAlt />
53
54
  )}
@@ -61,8 +62,8 @@ export const OrderStatusFilterBar = (props) => {
61
62
  >
62
63
  {t('COMPLETED', 'completed')}
63
64
  <span>(
64
- {numberOfOrdersByStatus?.result ? (
65
- numberOfOrdersByStatus?.result?.completed ?? 0
65
+ {!isNaN(ordersAmountByStatus?.completed) && ordersAmountByStatus?.completed !== null ? (
66
+ ordersAmountByStatus?.completed ?? 0
66
67
  ) : (
67
68
  <CgSpinnerTwoAlt />
68
69
  )}
@@ -76,8 +77,8 @@ export const OrderStatusFilterBar = (props) => {
76
77
  >
77
78
  {t('CANCELLED', 'cancelled')}
78
79
  <span>(
79
- {numberOfOrdersByStatus?.result ? (
80
- numberOfOrdersByStatus?.result?.cancelled ?? 0
80
+ {!isNaN(ordersAmountByStatus?.cancelled) && ordersAmountByStatus?.cancelled !== null ? (
81
+ ordersAmountByStatus?.cancelled ?? 0
81
82
  ) : (
82
83
  <CgSpinnerTwoAlt />
83
84
  )}
@@ -6,12 +6,13 @@ import { Funnel, List as MenuIcon, LifePreserver } from 'react-bootstrap-icons'
6
6
  import MdcFilterOff from '@meronex/icons/mdc/MdcFilterOff'
7
7
  import { OrdersDashboardSLAControls } from '../OrdersDashboardSLAControls'
8
8
  import { OrderDashboardSLASetting } from '../OrderDashboardSLASetting'
9
- import { IconButton } from '../../../styles'
9
+ import { IconButton, LinkButton } from '../../../styles'
10
10
  import { useInfoShare } from '../../../contexts/InfoShareContext'
11
11
  import { OverlayTrigger, Tooltip } from 'react-bootstrap'
12
12
  import { useWindowSize } from '../../../hooks/useWindowSize'
13
13
  import { GoogleMapsApiKeySettingButton } from '../GoogleMapsApiKeySettingButton'
14
14
  import { WebsocketStatus } from '../WebsocketStatus'
15
+ import TiWarningOutline from '@meronex/icons/ti/TiWarningOutline'
15
16
 
16
17
  import {
17
18
  OrderContentHeaderContainer,
@@ -19,7 +20,8 @@ import {
19
20
  HeaderTitle,
20
21
  TopRightSection,
21
22
  SLAControlsWrapper,
22
- WrapperSearchAndFilter
23
+ WrapperSearchAndFilter,
24
+ WarningMessage
23
25
  } from './styles'
24
26
 
25
27
  export const OrdersContentHeader = (props) => {
@@ -52,6 +54,11 @@ export const OrdersContentHeader = (props) => {
52
54
  const [filterApplied, setFilterApplied] = useState(false)
53
55
  const [configState] = useConfig()
54
56
 
57
+ const handleClearFilters = () => {
58
+ if (searchValue) handleChangeSearch('')
59
+ if (filterApplied) handleChangeFilterValues({})
60
+ }
61
+
55
62
  useEffect(() => {
56
63
  let _filterApplied = false
57
64
  if (Object.keys(filterValues).length === 0) {
@@ -60,7 +67,7 @@ export const OrdersContentHeader = (props) => {
60
67
  _filterApplied = filterValues?.groupTypes?.length || filterValues.businessIds.length > 0 || filterValues.cityIds.length > 0 ||
61
68
  filterValues.deliveryEndDatetime !== null || filterValues.deliveryFromDatetime !== null || filterValues.deliveryTypes.length > 0 ||
62
69
  filterValues.driverIds.length > 0 || filterValues.paymethodIds.length > 0 || filterValues.statuses.length > 0 || filterValues?.metafield?.length > 0 ||
63
- filterValues?.externalId || filterValues?.logisticStatus !== null
70
+ filterValues?.externalId || filterValues?.logisticStatus !== null || filterValues?.assigned !== null
64
71
  }
65
72
  setFilterApplied(_filterApplied)
66
73
  }, [filterValues])
@@ -136,6 +143,13 @@ export const OrdersContentHeader = (props) => {
136
143
  >
137
144
  {filterApplied ? <Funnel /> : <MdcFilterOff />}
138
145
  </IconButton>
146
+ {(filterApplied || !!searchValue) && (
147
+ <WarningMessage>
148
+ <TiWarningOutline />
149
+ <span>{t('WARNING_FILTER_APPLIED', 'Notifications Paused. Filters applied. You may miss new orders.')}</span>
150
+ <LinkButton onClick={() => handleClearFilters()}>{t('CLEAR_FILTERS', 'Clear filters')}</LinkButton>
151
+ </WarningMessage>
152
+ )}
139
153
  </WrapperSearchAndFilter>
140
154
  </TopRightSection>
141
155
  </OrderContentHeaderContainer>
@@ -89,6 +89,7 @@ export const SLAControlsWrapper = styled.div`
89
89
  `
90
90
 
91
91
  export const WrapperSearchAndFilter = styled.div`
92
+ position: relative;
92
93
  display: flex;
93
94
  align-items: center;
94
95
  margin-top: 10px;
@@ -127,3 +128,56 @@ export const WrapperSearchAndFilter = styled.div`
127
128
  `}
128
129
  }
129
130
  `
131
+ export const WarningMessage = styled.div`
132
+ position: absolute;
133
+ display: flex;
134
+ align-items: center;
135
+ z-index: 2000;
136
+ top: 100%;
137
+ background: ${props => props.theme.colors.warning100};
138
+ border: 1px solid ${props => props.theme.colors.warning};
139
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.12);
140
+ border-radius: 7.6px;
141
+ padding: 6px 15px;
142
+ box-sizing: border-box;
143
+ margin: 10px 0px 0px 0px !important;
144
+
145
+ right: 0px;
146
+ ${props => props.theme?.rtl && css`
147
+ left: 0px;
148
+ right: initial;
149
+ `}
150
+
151
+ svg {
152
+ font-size: 20px;
153
+ color: ${props => props.theme.colors.warning};
154
+ }
155
+
156
+ span {
157
+ font-size: 12px;
158
+ line-height: 18px;
159
+ color: ${props => props.theme.colors.headingColor};
160
+ margin: 0 10px;
161
+ flex: 1;
162
+ }
163
+
164
+ a {
165
+ font-size: 12px;
166
+ white-space: nowrap;
167
+ }
168
+
169
+ @media (min-width: 768px) {
170
+ padding: 8px 20px;
171
+ font-size: 14px;
172
+ line-height: 24px;
173
+ right: 0px;
174
+ ${props => props.theme?.rtl && css`
175
+ left: 0px;
176
+ right: initial;
177
+ `}
178
+
179
+ span {
180
+ white-space: nowrap;
181
+ }
182
+ }
183
+ `
@@ -6,7 +6,8 @@ export const OrdersDashboardList = (props) => {
6
6
  const {
7
7
  selectedSubOrderStatus,
8
8
  isMessagesView,
9
- orderByOption
9
+ orderByOption,
10
+ setOrdersAmountByStatus
10
11
  } = props
11
12
 
12
13
  const OrdersCommonControlProps = {
@@ -40,24 +41,28 @@ export const OrdersDashboardList = (props) => {
40
41
  groupStatus='pending'
41
42
  {...OrdersCommonControlProps}
42
43
  orderStatus={selectedSubOrderStatus?.pending}
44
+ setOrdersTotalAmount={total => setOrdersAmountByStatus(prevState => ({ ...prevState, pending: total }))}
43
45
  />
44
46
 
45
47
  <OrdersListController
46
48
  groupStatus='inProgress'
47
49
  {...OrdersCommonControlProps}
48
50
  orderStatus={selectedSubOrderStatus?.inProgress}
51
+ setOrdersTotalAmount={total => setOrdersAmountByStatus(prevState => ({ ...prevState, inProgress: total }))}
49
52
  />
50
53
 
51
54
  <OrdersListController
52
55
  groupStatus='completed'
53
56
  {...OrdersCommonControlProps}
54
57
  orderStatus={selectedSubOrderStatus?.completed}
58
+ setOrdersTotalAmount={total => setOrdersAmountByStatus(prevState => ({ ...prevState, completed: total }))}
55
59
  />
56
60
 
57
61
  <OrdersListController
58
62
  groupStatus='cancelled'
59
63
  {...OrdersCommonControlProps}
60
64
  orderStatus={selectedSubOrderStatus?.cancelled}
65
+ setOrdersTotalAmount={total => setOrdersAmountByStatus(prevState => ({ ...prevState, cancelled: total }))}
61
66
  />
62
67
  </>
63
68
  )}
@@ -72,6 +72,11 @@ const OrdersFilterGroupUI = (props) => {
72
72
  { value: 4, content: <Option>{t('RESOLVED', 'Resolved')}<LogisticStatusDot status={4} /></Option> }
73
73
  ]
74
74
 
75
+ const assignedFilterOptions = [
76
+ { value: 0, content: <Option>{t('ASSIGNED', 'Assigned')}</Option> },
77
+ { value: 1, content: <Option>{t('UNASSIGNED', 'Unassigned')}</Option> }
78
+ ]
79
+
75
80
  const handleAcceptFilter = () => {
76
81
  handleChangeFilterValues(filterValues)
77
82
  handleCloseFilterModal()
@@ -203,6 +208,17 @@ const OrdersFilterGroupUI = (props) => {
203
208
  />
204
209
  </SelectWrapper>
205
210
  </WrapperRow>
211
+ <WrapperRow>
212
+ <SelectWrapper>
213
+ <Select
214
+ options={assignedFilterOptions}
215
+ className='select'
216
+ defaultValue={filterValues?.assigned ?? ''}
217
+ placeholder={t('SELECT_DRIVER_STATUS', 'Select a driver status')}
218
+ onChange={(value) => handleChangeChildFilterValue({ assigned: value })}
219
+ />
220
+ </SelectWrapper>
221
+ </WrapperRow>
206
222
  {filterValues?.metafield.map(item => (
207
223
  <WrapperRow key={item.id}>
208
224
  <Input
@@ -36,6 +36,7 @@ export const OrdersListing = (props) => {
36
36
  orderDetailId,
37
37
  filterValues,
38
38
  setFilterModalOpen,
39
+ setOrdersTotalAmount,
39
40
 
40
41
  isMessagesView,
41
42
  setSelectedOrderIds,
@@ -81,6 +82,12 @@ export const OrdersListing = (props) => {
81
82
  setFilterApplied(_filterApplied)
82
83
  }, [filterValues])
83
84
 
85
+ useEffect(() => {
86
+ if (!isNaN(pagination.total)) {
87
+ setOrdersTotalAmount && setOrdersTotalAmount(pagination.total)
88
+ }
89
+ }, [pagination.total])
90
+
84
91
  return (
85
92
  <>
86
93
  {((ordersStatusGroup === groupStatus) || isMessagesView) && (
@@ -45,7 +45,6 @@ const OrdersManagerUI = (props) => {
45
45
  handleSelectedSubOrderStatus,
46
46
  handleCustomOrderDetail,
47
47
  setSelectedOrderIds,
48
- numberOfOrdersByStatus,
49
48
  allowColumns,
50
49
  setAllowColumns,
51
50
  timeStatus,
@@ -66,6 +65,12 @@ const OrdersManagerUI = (props) => {
66
65
  const [isTourFlag, setIsTourFlag] = useState(false)
67
66
  const [alertState, setAlertState] = useState({ open: false, content: [] })
68
67
  const [slaSettingTime, setSlaSettingTime] = useState(60000)
68
+ const [ordersAmountByStatus, setOrdersAmountByStatus] = useState({
69
+ pending: null,
70
+ inProgress: null,
71
+ completed: null,
72
+ cancelled: null
73
+ })
69
74
 
70
75
  const [totalSelectedOrder, setTotalSelectedOrder] = useState(0)
71
76
  const handleBackRedirect = () => {
@@ -189,7 +194,7 @@ const OrdersManagerUI = (props) => {
189
194
  <OrderStatusFilterBar
190
195
  selectedOrderStatus={ordersStatusGroup}
191
196
  changeOrderStatus={handleOrdersStatusGroupFilter}
192
- numberOfOrdersByStatus={numberOfOrdersByStatus}
197
+ ordersAmountByStatus={ordersAmountByStatus}
193
198
  />
194
199
  <OrderSubFilterControls>
195
200
  <OrderStatusSubFilterWrapper isColumn={selectedOrderIds?.length}>
@@ -240,6 +245,7 @@ const OrdersManagerUI = (props) => {
240
245
  slaSettingTime={slaSettingTime}
241
246
  allowColumns={allowColumns}
242
247
  setAllowColumns={setAllowColumns}
248
+ setOrdersAmountByStatus={setOrdersAmountByStatus}
243
249
  />
244
250
  </WrapItemView>
245
251
  </OrdersInnerContent>
@@ -263,7 +269,9 @@ const OrdersManagerUI = (props) => {
263
269
  />
264
270
  )}
265
271
 
266
- <OrderNotification customerId={props.customerId} />
272
+ {!isSelectedOrders && (
273
+ <OrderNotification customerId={props.customerId} />
274
+ )}
267
275
 
268
276
  {totalSelectedOrder > 0 && (
269
277
  <WrapperIndicator>
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect } from 'react'
2
- import { useLanguage, useUtils, WebsocketStatus as WebsocketStatusController } from 'ordering-components-admin-external'
2
+ import { useLanguage, useUtils, useConfig, WebsocketStatus as WebsocketStatusController } from 'ordering-components-admin-external'
3
3
  import { InfoCircle } from 'react-bootstrap-icons'
4
4
  import { Alert, Modal } from '../../Shared'
5
5
  import { Button, IconButton } from '../../../styles'
@@ -24,6 +24,9 @@ const SocketStatusUI = (props) => {
24
24
 
25
25
  const [, t] = useLanguage()
26
26
  const [{ parseDate }] = useUtils()
27
+ const [{ configs }] = useConfig()
28
+ const isEnabledWhiteLabelModule = configs?.white_label_module?.value
29
+
27
30
  const [alertState, setAlertState] = useState({ open: false, content: [] })
28
31
  const [openModal, setOpenModal] = useState(false)
29
32
 
@@ -54,7 +57,7 @@ const SocketStatusUI = (props) => {
54
57
  </IconButton>
55
58
  <InfoContent>
56
59
  {t('WEBSOCKET_STATUS_INFO', 'Verify the server connection by date and time using the Connection status button. Press update to refresh you dashboard and update the status as well. Need help? Contact our Customer support team here:')}
57
- <a href='https://www.ordering.co/contact-ordering' target='_blank' rel='noopener noreferrer'>{t('CUSTOMER_SUPPORT', 'Customer support')}</a>
60
+ {!isEnabledWhiteLabelModule && <a href='https://www.ordering.co/contact-ordering' target='_blank' rel='noopener noreferrer'>{t('CUSTOMER_SUPPORT', 'Customer support')}</a>}
58
61
  </InfoContent>
59
62
  </InfoWrapper>
60
63
  <Button
@@ -26,7 +26,9 @@ export const WebhookListSelector = (props) => {
26
26
  { value: 'orders_pickup_completed_driver', content: <Option>{t('ORDERS_PICKUP_COMPLETED_DRIVER', 'Order pickup completed by driver')}</Option> },
27
27
  { value: 'orders_pickup_failed_driver', content: <Option>{t('ORDERS_PICKUP_FAILED_DRIVER', 'Order pickup failed by driver')}</Option> },
28
28
  { value: 'orders_delivery_completed_driver', content: <Option>{t('ORDERS_DELIVERY_COMPLETED_DRIVER', 'Order delivery completed by driver')}</Option> },
29
- { value: 'orders_delivery_failed_driver', content: <Option>{t('ORDERS_DELIVERY_FAILED_DRIVER', 'Order delivery failed by driver')}</Option> }
29
+ { value: 'orders_delivery_failed_driver', content: <Option>{t('ORDERS_DELIVERY_FAILED_DRIVER', 'Order delivery failed by driver')}</Option> },
30
+ { value: 'preorder_updated', content: <Option>{t('PREORDER_UPDATED', 'Preorder updated')}</Option> },
31
+ { value: 'drivers_changes', content: <Option>{t('DRIVERS_CHANGES', 'Driver changes')}</Option> }
30
32
  ]
31
33
 
32
34
  const placeholder = <Option>{t('SELECT_HOOK', 'Select a hook')}</Option>
@@ -12,8 +12,7 @@ export const InputPhoneNumber = (props) => {
12
12
  setValue,
13
13
  handleIsValid,
14
14
  disabled,
15
- isUser,
16
- defaultCountry
15
+ isUser
17
16
  } = props
18
17
 
19
18
  const [, t] = useLanguage()
@@ -44,7 +43,7 @@ export const InputPhoneNumber = (props) => {
44
43
  <PhoneInput
45
44
  disabled={disabled}
46
45
  placeholder={t('PHONE_NUMBER', 'Phone number')}
47
- defaultCountry={defaultCountry ?? findExitingCode(configs?.default_country_code?.value?.toUpperCase())}
46
+ defaultCountry={findExitingCode(configs?.default_country_code?.value?.toUpperCase())}
48
47
  value={value}
49
48
  displayInitialValueAsLocalNumber
50
49
  onChange={(val) => setValue && setValue(val, isValidPhoneNumber(val))}
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect } from 'react'
2
- import { useLanguage, useSession } from 'ordering-components-admin-external'
2
+ import { useLanguage, useSession, useConfig } from 'ordering-components-admin-external'
3
3
  import { useTheme } from 'styled-components'
4
4
  import { Input } from '../../../../styles'
5
5
  import {
@@ -16,6 +16,8 @@ export const ReceiveOrders = (props) => {
16
16
 
17
17
  const [, t] = useLanguage()
18
18
  const theme = useTheme()
19
+ const [{ configs }] = useConfig()
20
+ const isEnabledWhiteLabelModule = configs?.white_label_module?.value
19
21
 
20
22
  useEffect(() => {
21
23
  if (user?.email) changeFormState({ email: user?.email })
@@ -34,17 +36,19 @@ export const ReceiveOrders = (props) => {
34
36
  placeholder={t('ADD_EMAIL', 'Add email')}
35
37
  />
36
38
  </FormControl>
37
- <DownloadWrapper>
38
- <label>{t('DOWNLOADS_APPS', 'Downloads apps')}</label>
39
- <DownloadIconWrapper>
40
- <a href='https://apps.apple.com/us/app/store-app-2-0/id1608192050' target='_blank' rel='noopener noreferrer'>
41
- <img src={theme.images.general.appStore} alt='' />
42
- </a>
43
- <a href='https://play.google.com/store/apps/details?id=com.ordering.storeappv5&hl=en&gl=US' target='_blank' rel='noopener noreferrer'>
44
- <img src={theme.images.general.googlePlay} alt='' />
45
- </a>
46
- </DownloadIconWrapper>
47
- </DownloadWrapper>
39
+ {!isEnabledWhiteLabelModule && (
40
+ <DownloadWrapper>
41
+ <label>{t('DOWNLOADS_APPS', 'Downloads apps')}</label>
42
+ <DownloadIconWrapper>
43
+ <a href='https://apps.apple.com/us/app/store-app-2-0/id1608192050' target='_blank' rel='noopener noreferrer'>
44
+ <img src={theme.images.general.appStore} alt='' />
45
+ </a>
46
+ <a href='https://play.google.com/store/apps/details?id=com.ordering.storeappv5&hl=en&gl=US' target='_blank' rel='noopener noreferrer'>
47
+ <img src={theme.images.general.googlePlay} alt='' />
48
+ </a>
49
+ </DownloadIconWrapper>
50
+ </DownloadWrapper>
51
+ )}
48
52
  </ContentWrapper>
49
53
  </ReceiveOrdersContainer>
50
54
  )
@@ -216,7 +216,7 @@ export const BusinessDeviceDetail = (props) => {
216
216
  const businessDeviceDetailProps = {
217
217
  ...props,
218
218
  UIComponent: BusinessDeviceDetailUI,
219
- propsToFetch: ['id', 'name', 'logo', 'owners']
219
+ propsToFetch: ['id', 'name', 'logo', 'owners', 'address']
220
220
  }
221
221
  return <BusinessDeviceDetailController {...businessDeviceDetailProps} />
222
222
  }
@@ -77,6 +77,8 @@ const BusinessProductsListingUI = (props) => {
77
77
  getBusiness,
78
78
  businessTypes,
79
79
  setBusinessTypes,
80
+ categoryState,
81
+ handleUpdateCategoryState,
80
82
  siteState
81
83
  } = props
82
84
 
@@ -510,6 +512,8 @@ const BusinessProductsListingUI = (props) => {
510
512
  setTaxes={setTaxes}
511
513
  fees={fees}
512
514
  setFees={setFees}
515
+ categoryState={categoryState}
516
+ handleUpdateCategoryState={handleUpdateCategoryState}
513
517
  />
514
518
  )}
515
519
  {openSidebar === 'business_details' && (
@@ -55,6 +55,8 @@ export const BusinessSummary = (props) => {
55
55
  const [selectedView, setSelectedView] = useState('desktop')
56
56
  const [confirm, setConfirm] = useState({ open: false, content: null, handleOnAccept: null })
57
57
 
58
+ const isEnabledWhiteLabelModule = configs?.white_label_module?.value
59
+
58
60
  const handleOpenCategory = () => {
59
61
  events.emit('go_to_page', { page: 'store', params: { store: businessState?.business?.slug } })
60
62
  }
@@ -219,11 +221,13 @@ export const BusinessSummary = (props) => {
219
221
  >
220
222
  {t('DUPLICATE', 'Duplicate')}
221
223
  </Dropdown.Item>
222
- <Dropdown.Item
223
- onClick={() => handleSelectedItem('personalization')}
224
- >
225
- {t('PERSONALIZATION', 'Personalization')}
226
- </Dropdown.Item>
224
+ {!isEnabledWhiteLabelModule && (
225
+ <Dropdown.Item
226
+ onClick={() => handleSelectedItem('personalization')}
227
+ >
228
+ {t('PERSONALIZATION', 'Personalization')}
229
+ </Dropdown.Item>
230
+ )}
227
231
  <Dropdown.Item
228
232
  onClick={() => handleSelectedItem('custom_fields')}
229
233
  >
@@ -266,15 +270,17 @@ export const BusinessSummary = (props) => {
266
270
  >
267
271
  {t('CATEGORIES_AND_PRODUCTS', 'Categories & products')}
268
272
  </Button>
269
- <Button
270
- color='primary'
271
- outline
272
- borderRadius='8px'
273
- onClick={handleOpenSite}
274
- disabled={businessState?.loading}
275
- >
276
- {t('STORE_WEBSITE', 'Store website')}
277
- </Button>
273
+ {!isEnabledWhiteLabelModule && (
274
+ <Button
275
+ color='primary'
276
+ outline
277
+ borderRadius='8px'
278
+ onClick={handleOpenSite}
279
+ disabled={businessState?.loading}
280
+ >
281
+ {t('STORE_WEBSITE', 'Store website')}
282
+ </Button>
283
+ )}
278
284
  </ButtonWrapper>
279
285
  <BusinessDescription>
280
286
  {businessState?.loading ? (
@@ -289,7 +295,7 @@ export const BusinessSummary = (props) => {
289
295
  ? businessConfigs
290
296
  : businessConfigs.filter(configs => configs.key !== 'spoonity_key')
291
297
  : businessConfigs.filter(c => !itemsExcluded.includes(c.key))
292
- ).map(config => (
298
+ ).filter(item => isEnabledWhiteLabelModule ? item.key !== 'personalization' : true).map(config => (
293
299
  <BusinessConfigItem
294
300
  key={config.key}
295
301
  active={selectedItem === config.key}
@@ -47,7 +47,9 @@ const BusinessWebhooksUI = (props) => {
47
47
  { value: 'orders_pickup_completed_driver', content: t('ORDERS_PICKUP_COMPLETED_DRIVER') },
48
48
  { value: 'orders_pickup_failed_driver', content: t('ORDERS_PICKUP_FAILED_DRIVER') },
49
49
  { value: 'orders_delivery_completed_driver', content: t('ORDERS_DELIVERY_COMPLETED_DRIVER') },
50
- { value: 'orders_delivery_failed_driver', content: t('ORDERS_DELIVERY_FAILED_DRIVER') }
50
+ { value: 'orders_delivery_failed_driver', content: t('ORDERS_DELIVERY_FAILED_DRIVER') },
51
+ { value: 'preorder_updated', content: t('PREORDER_UPDATED', 'Preorder updated') },
52
+ { value: 'drivers_changes', content: t('DRIVERS_CHANGES', 'Driver changes') },
51
53
  ]
52
54
 
53
55
  const timeList = [