@nyris/nyris-webapp 0.3.39 → 0.3.40
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/build/asset-manifest.json +16 -13
- package/build/index.html +1 -1
- package/build/{precache-manifest.3b5a3a7e1d0fa75fd54cc6ebaf64d225.js → precache-manifest.ad1e72495167d7e9d93f00c47916ab94.js} +22 -10
- package/build/service-worker.js +1 -1
- package/build/static/css/main.86d40309.chunk.css +2 -0
- package/build/static/css/main.86d40309.chunk.css.map +1 -0
- package/build/static/js/2.1e5f374f.chunk.js +3 -0
- package/build/static/js/2.1e5f374f.chunk.js.map +1 -0
- package/build/static/js/main.1532f80b.chunk.js +3 -0
- package/build/static/js/main.1532f80b.chunk.js.map +1 -0
- package/build/static/media/arrow_down.c1b611db.svg +3 -0
- package/build/static/media/arrow_up.fcd6b144.svg +3 -0
- package/build/static/media/trash.1624780d.svg +3 -0
- package/package.json +3 -3
- package/src/App.tsx +14 -14
- package/src/common/assets/icons/arrow_down.svg +3 -0
- package/src/common/assets/icons/arrow_up.svg +3 -0
- package/src/common/assets/icons/trash.svg +3 -0
- package/src/components/AppMobile.tsx +1 -0
- package/src/components/CadenasLoading.tsx +4 -3
- package/src/components/DragDropFile.tsx +8 -8
- package/src/components/HeaderMobile.tsx +11 -5
- package/src/components/ImageCaptureHelpModal.tsx +9 -4
- package/src/components/ImagePreviewMobile.tsx +230 -43
- package/src/components/Inquiry/InquiryBanner.tsx +1 -1
- package/src/components/Layout.tsx +35 -3
- package/src/components/Loading.tsx +69 -0
- package/src/components/PanelResult/index.tsx +6 -2
- package/src/components/ProductDetailView.tsx +2 -2
- package/src/components/ProductList/index.tsx +4 -2
- package/src/components/appMobile.scss +4 -28
- package/src/components/common.scss +68 -3
- package/src/components/drawer/cameraCustom.tsx +2 -2
- package/src/components/input/inputSearch.tsx +3 -3
- package/src/components/results/ItemResult.tsx +2 -2
- package/src/components/rfq/RfqBanner.tsx +2 -2
- package/src/page/landingPage/AppMD.tsx +11 -10
- package/src/page/landingPage/common.scss +5 -81
- package/src/page/result/index.tsx +1 -1
- package/src/translations.ts +59 -8
- package/build/static/css/main.37f029a6.chunk.css +0 -2
- package/build/static/css/main.37f029a6.chunk.css.map +0 -1
- package/build/static/js/2.38a0d15b.chunk.js +0 -3
- package/build/static/js/2.38a0d15b.chunk.js.map +0 -1
- package/build/static/js/main.263e0030.chunk.js +0 -3
- package/build/static/js/main.263e0030.chunk.js.map +0 -1
- /package/build/static/js/{2.38a0d15b.chunk.js.LICENSE.txt → 2.1e5f374f.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{main.263e0030.chunk.js.LICENSE.txt → main.1532f80b.chunk.js.LICENSE.txt} +0 -0
|
@@ -22,6 +22,10 @@ import { createSessionByApi } from 'services/session';
|
|
|
22
22
|
import { isUndefined } from 'lodash';
|
|
23
23
|
import AppMobile from './AppMobile';
|
|
24
24
|
import jQuery from 'jquery';
|
|
25
|
+
import Loading from './Loading';
|
|
26
|
+
import i18n from 'i18next';
|
|
27
|
+
import { initReactI18next } from 'react-i18next';
|
|
28
|
+
import { translations } from 'translations';
|
|
25
29
|
|
|
26
30
|
declare var psol: any;
|
|
27
31
|
|
|
@@ -44,6 +48,15 @@ jQuery(document).ready(function () {
|
|
|
44
48
|
psol.core.setServiceBaseUrl('https://webapi.partcommunity.com');
|
|
45
49
|
});
|
|
46
50
|
|
|
51
|
+
i18n.use(initReactI18next).init({
|
|
52
|
+
resources: translations,
|
|
53
|
+
fallbackLng: 'en',
|
|
54
|
+
interpolation: {
|
|
55
|
+
escapeValue: false,
|
|
56
|
+
},
|
|
57
|
+
returnNull: false,
|
|
58
|
+
});
|
|
59
|
+
|
|
47
60
|
function Layout({ children }: ReactNode): JSX.Element {
|
|
48
61
|
const dispatch = useAppDispatch();
|
|
49
62
|
const { settings, search } = useAppSelector<AppState>((state: any) => state);
|
|
@@ -55,6 +68,9 @@ function Layout({ children }: ReactNode): JSX.Element {
|
|
|
55
68
|
let isShowHeaderMobile =
|
|
56
69
|
(isMobile && history.location?.pathname === '/result') ||
|
|
57
70
|
history.location?.pathname === '/';
|
|
71
|
+
const language = useAppSelector(state => state.settings.language);
|
|
72
|
+
|
|
73
|
+
i18n.changeLanguage(language);
|
|
58
74
|
|
|
59
75
|
useEffect(() => {
|
|
60
76
|
const createSession = async () => {
|
|
@@ -114,13 +130,29 @@ function Layout({ children }: ReactNode): JSX.Element {
|
|
|
114
130
|
};
|
|
115
131
|
}, [apiKey, appId, indexName]);
|
|
116
132
|
|
|
133
|
+
// First we get the viewport height and we multiple it by 1% to get a value for a vh unit
|
|
134
|
+
let vh = window.innerHeight * 0.01;
|
|
135
|
+
// Then we set the value in the --vh custom property to the root of the document
|
|
136
|
+
document.documentElement.style.setProperty('--vh', `${vh}px`);
|
|
137
|
+
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
const handleResize = () => {
|
|
140
|
+
let vh = window.innerHeight * 0.01;
|
|
141
|
+
document.documentElement.style.setProperty('--vh', `${vh}px`);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
window.addEventListener('resize', handleResize);
|
|
145
|
+
|
|
146
|
+
return () => {
|
|
147
|
+
window.removeEventListener('resize', handleResize);
|
|
148
|
+
};
|
|
149
|
+
}, []);
|
|
150
|
+
|
|
117
151
|
return (
|
|
118
152
|
<div style={{ position: 'relative' }}>
|
|
119
153
|
{loadingSearchAlgolia && (
|
|
120
154
|
<Box className="box-wrap-loading" style={{ zIndex: 99999999 }}>
|
|
121
|
-
<
|
|
122
|
-
<Box className="box-content-spin"></Box>
|
|
123
|
-
</Box>
|
|
155
|
+
<Loading />
|
|
124
156
|
</Box>
|
|
125
157
|
)}
|
|
126
158
|
<InstantSearch
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Box } from '@material-ui/core';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
|
|
5
|
+
const LoadingSvg = () => {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
width={150}
|
|
9
|
+
height={150}
|
|
10
|
+
viewBox="0 0 150 150"
|
|
11
|
+
fill="none"
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
className="loading-spinner"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fillRule="evenodd"
|
|
17
|
+
clipRule="evenodd"
|
|
18
|
+
d="M75 150C116.421 150 150 116.421 150 75C150 33.5786 116.421 0 75 0C33.5786 0 0 33.5786 0 75C0 116.421 33.5786 150 75 150ZM75 140.367C111.101 140.367 140.367 111.101 140.367 75.0003C140.367 38.8991 111.101 9.63332 75 9.63332C38.8988 9.63332 9.63304 38.8991 9.63304 75.0003C9.63304 111.101 38.8988 140.367 75 140.367Z"
|
|
19
|
+
fill="url(#paint0_linear_2236_26778)"
|
|
20
|
+
/>
|
|
21
|
+
<defs>
|
|
22
|
+
<linearGradient
|
|
23
|
+
id="paint0_linear_2236_26778"
|
|
24
|
+
x1={75}
|
|
25
|
+
y1={0}
|
|
26
|
+
x2={75}
|
|
27
|
+
y2={150}
|
|
28
|
+
gradientUnits="userSpaceOnUse"
|
|
29
|
+
>
|
|
30
|
+
<stop stopColor="#3E36DC" />
|
|
31
|
+
<stop offset={0.916667} stopColor="#1E1F31" />
|
|
32
|
+
</linearGradient>
|
|
33
|
+
</defs>
|
|
34
|
+
</svg>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const Loading = () => {
|
|
39
|
+
const { t } = useTranslation();
|
|
40
|
+
return (
|
|
41
|
+
<Box
|
|
42
|
+
className="loadingSpinCT"
|
|
43
|
+
style={{
|
|
44
|
+
top: 0,
|
|
45
|
+
bottom: 0,
|
|
46
|
+
display: 'flex',
|
|
47
|
+
justifyContent: 'center',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
}}
|
|
50
|
+
>
|
|
51
|
+
<p
|
|
52
|
+
style={{
|
|
53
|
+
position: 'absolute',
|
|
54
|
+
top: '50%',
|
|
55
|
+
left: '50%',
|
|
56
|
+
transform: 'translate(-50%, -50%)',
|
|
57
|
+
fontSize: 16,
|
|
58
|
+
color: '#fff',
|
|
59
|
+
fontWeight: 300,
|
|
60
|
+
}}
|
|
61
|
+
>
|
|
62
|
+
{t('loading')}
|
|
63
|
+
</p>
|
|
64
|
+
<LoadingSvg />
|
|
65
|
+
</Box>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default Loading;
|
|
@@ -14,6 +14,7 @@ import { useAppSelector } from 'Store/Store';
|
|
|
14
14
|
import { ExpandablePanelCustom } from './expandable-panel';
|
|
15
15
|
import { getPanelAttributes, getPanelId } from './refinements';
|
|
16
16
|
import CloseIcon from '@material-ui/icons/Close';
|
|
17
|
+
import { useTranslation } from 'react-i18next';
|
|
17
18
|
|
|
18
19
|
export type ExpandablePanelProps = CurrentRefinementsProvided & {
|
|
19
20
|
children: React.ReactNode;
|
|
@@ -103,6 +104,7 @@ export default function ExpandablePanelComponent({
|
|
|
103
104
|
);
|
|
104
105
|
const history = useHistory();
|
|
105
106
|
const isMobile = useMediaQuery({ query: '(max-width: 776px)' });
|
|
107
|
+
const { t } = useTranslation();
|
|
106
108
|
|
|
107
109
|
// Set initial panels value
|
|
108
110
|
useEffect(() => {
|
|
@@ -199,8 +201,10 @@ export default function ExpandablePanelComponent({
|
|
|
199
201
|
<IconLabel
|
|
200
202
|
icon={refinementsPanelsExpanded ? 'remove' : 'add'}
|
|
201
203
|
label={`${
|
|
202
|
-
refinementsPanelsExpanded
|
|
203
|
-
|
|
204
|
+
refinementsPanelsExpanded
|
|
205
|
+
? t('Collapse all')
|
|
206
|
+
: t('Expand all')
|
|
207
|
+
} `}
|
|
204
208
|
/>
|
|
205
209
|
</Button>
|
|
206
210
|
</Box>
|
|
@@ -347,7 +347,7 @@ function ProductDetailView(props: Props) {
|
|
|
347
347
|
)}
|
|
348
348
|
{(brand || settings.brandName) && (
|
|
349
349
|
<ProductAttribute
|
|
350
|
-
title={'Brand'}
|
|
350
|
+
title={t('Brand')}
|
|
351
351
|
value={brand || settings.brandName}
|
|
352
352
|
width={
|
|
353
353
|
dataItem[settings.field.manufacturerNumber]
|
|
@@ -467,7 +467,7 @@ function ProductDetailView(props: Props) {
|
|
|
467
467
|
}}
|
|
468
468
|
onClick={() => setCollapDescription(e => !e)}
|
|
469
469
|
>
|
|
470
|
-
View details
|
|
470
|
+
{t('View details')}
|
|
471
471
|
{collapDescription ? (
|
|
472
472
|
<KeyboardArrowUpIcon
|
|
473
473
|
htmlColor={settings.theme?.secondaryColor}
|
|
@@ -2,6 +2,7 @@ import { Box } from '@material-ui/core';
|
|
|
2
2
|
import ItemResult from 'components/results/ItemResult';
|
|
3
3
|
import { groupBy, uniqueId } from 'lodash';
|
|
4
4
|
import React, { memo, useEffect, useMemo, useState } from 'react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
5
6
|
import { connectStateResults } from 'react-instantsearch-dom';
|
|
6
7
|
import { useMediaQuery } from 'react-responsive';
|
|
7
8
|
import { useAppSelector } from 'Store/Store';
|
|
@@ -32,6 +33,7 @@ function ProductListComponent({
|
|
|
32
33
|
const [itemShowDefault, setItemShowDefault] = useState<any[]>([]);
|
|
33
34
|
const [algoliaRequest, setAlgoliaRequest] = useState(false);
|
|
34
35
|
const isMobile = useMediaQuery({ query: '(max-width: 776px)' });
|
|
36
|
+
const { t } = useTranslation();
|
|
35
37
|
|
|
36
38
|
useEffect(() => {
|
|
37
39
|
if (isSearchStalled) {
|
|
@@ -118,7 +120,7 @@ function ProductListComponent({
|
|
|
118
120
|
if (!requestImage && !search.valueTextSearch.query && !isSearchStalled) {
|
|
119
121
|
return (
|
|
120
122
|
<Box style={{ marginTop: '50px', width: '100%', textAlign: 'center' }}>
|
|
121
|
-
Please upload an image or enter a keyword to search.
|
|
123
|
+
{t('Please upload an image or enter a keyword to search.')}
|
|
122
124
|
</Box>
|
|
123
125
|
);
|
|
124
126
|
}
|
|
@@ -130,7 +132,7 @@ function ProductListComponent({
|
|
|
130
132
|
) {
|
|
131
133
|
return (
|
|
132
134
|
<Box style={{ marginTop: '50px', width: '100%', textAlign: 'center' }}>
|
|
133
|
-
No products were found matching your search criteria.
|
|
135
|
+
{t('No products were found matching your search criteria.')}
|
|
134
136
|
</Box>
|
|
135
137
|
);
|
|
136
138
|
}
|
|
@@ -444,39 +444,14 @@
|
|
|
444
444
|
//TODO: Custom css modal filter
|
|
445
445
|
@media screen and (max-width: 776px) {
|
|
446
446
|
.wrap-mobile {
|
|
447
|
-
height:
|
|
447
|
+
height: 100vh; /* Fallback for browsers that do not support Custom Properties */
|
|
448
|
+
height: calc(var(--vh, 1vh) * 100);
|
|
448
449
|
background-color: #F3F3F5;
|
|
449
450
|
display: flex;
|
|
450
451
|
flex-direction: column;
|
|
451
452
|
|
|
452
453
|
}
|
|
453
|
-
.box-filter-mobile {
|
|
454
|
-
.MuiBackdrop-root {
|
|
455
|
-
background-color: initial !important;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
.MuiDrawer-paperAnchorLeft {
|
|
459
|
-
width: 100%;
|
|
460
|
-
height: calc(100svh - 60px) !important;
|
|
461
|
-
bottom: 0px !important;
|
|
462
|
-
top: initial !important;
|
|
463
|
-
background-color: #fafafa !important;
|
|
464
|
-
// box-shadow: none !important;
|
|
465
|
-
border-right: 1px solid #4d4646 !important;
|
|
466
|
-
// padding: 24px;
|
|
467
|
-
ul {
|
|
468
|
-
li {
|
|
469
|
-
list-style-type: none;
|
|
470
454
|
|
|
471
|
-
input {
|
|
472
|
-
margin-right: 15px;
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
}
|
|
480
455
|
|
|
481
456
|
#box-input-search {
|
|
482
457
|
position: relative;
|
|
@@ -504,7 +479,8 @@
|
|
|
504
479
|
.modal-togggle-cam {
|
|
505
480
|
.wrap-camera {
|
|
506
481
|
position: relative;
|
|
507
|
-
height:
|
|
482
|
+
height: 100vh;
|
|
483
|
+
height: calc(var(--vh, 1vh) * 100);
|
|
508
484
|
display: flex;
|
|
509
485
|
justify-content: center;
|
|
510
486
|
align-items: center;
|
|
@@ -22,10 +22,11 @@
|
|
|
22
22
|
padding-bottom: 6px;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
.
|
|
25
|
+
.loading-spinner {
|
|
26
26
|
animation: spin 3s linear infinite;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
|
|
29
30
|
@keyframes spin {
|
|
30
31
|
from {
|
|
31
32
|
transform: rotate(0deg);
|
|
@@ -35,8 +36,14 @@
|
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
.full-height {
|
|
40
|
+
height: 100vh; /* Fallback for browsers that do not support Custom Properties */
|
|
41
|
+
height: calc(var(--vh, 1vh) * 100);
|
|
42
|
+
}
|
|
43
|
+
|
|
38
44
|
.layout-main-newVersion {
|
|
39
|
-
height:
|
|
45
|
+
height: 100vh; /* Fallback for browsers that do not support Custom Properties */
|
|
46
|
+
height: calc(var(--vh, 1vh) * 100);
|
|
40
47
|
display: flex;
|
|
41
48
|
flex-direction: column;
|
|
42
49
|
justify-content: space-between;
|
|
@@ -63,4 +70,62 @@
|
|
|
63
70
|
|
|
64
71
|
.d-none {
|
|
65
72
|
display: none;
|
|
66
|
-
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@keyframes slidedown {
|
|
76
|
+
0% { transform: translateY(0px); }
|
|
77
|
+
100% { transform: translateY(0); }
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@keyframes slideup {
|
|
81
|
+
0% { transform: translateY(40px); }
|
|
82
|
+
100% { transform: translateY(0); }
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.slideDown {
|
|
86
|
+
animation: slidedown 1s ease-in-out;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.slideUp {
|
|
90
|
+
animation: slideup 0.5s ease-in-out;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@keyframes reduceSize {
|
|
94
|
+
from {
|
|
95
|
+
height: 240px;
|
|
96
|
+
width: 240px;
|
|
97
|
+
}
|
|
98
|
+
to {
|
|
99
|
+
height: 80px;
|
|
100
|
+
width: 81px;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.shrink-animation{
|
|
105
|
+
animation: reduceSize 0.3s;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@keyframes extendSize {
|
|
109
|
+
from {
|
|
110
|
+
height: 80px;
|
|
111
|
+
width: 81px;
|
|
112
|
+
}
|
|
113
|
+
to {
|
|
114
|
+
height: 240px;
|
|
115
|
+
width: 240px;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.expand-animation{
|
|
120
|
+
animation: extendSize 0.25s;
|
|
121
|
+
animation-timing-function: linear;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.circle-layer{
|
|
125
|
+
position: absolute;
|
|
126
|
+
width: 81px;
|
|
127
|
+
height: 80px;
|
|
128
|
+
clip-path: polygon(100% 50%, 100% 100%, 0px 100%, 0px 0px, 100% 0px, 100% 50%, 80% 50%, 79.85092326096205% 47.0129646021255%, 79.40517463545632% 44.055615704018074%, 78.66718417358422% 41.157344767672875%, 77.64428635611223% 38.346956111759155%, 76.34664720110686% 35.65238064136045%, 74.78716322947984% 33.100398258091346%, 72.98133329356934% 30.716371709403823%, 70.94710454258218% 28.52399452220845%, 68.704694055762% 26.545055525959107%, 66.27638791597278% 24.799222305476857%, 63.686319720594895% 23.303845735655944%, 60.96023073099185% 22.073787540673877%, 58.12521404429015% 21.12127259149964%, 55.20944533000791% 20.455767409633758%, 52.24190280759273% 20.083886084564597%, 49.25207924785782% 20.009324539975513%, 46.26968886057545% 20.232823801994837%, 43.32437198131057% 20.752162634545293%, 40.44540049244947% 21.562179614986047%, 37.66138690608166% 22.654824430649803%, 35.00000000000001% 24.01923788646684%, 32.487689832956306% 25.6418598285243%, 30.149424872094226% 27.506563910967966%, 28.008443845105216% 29.59481786687241%, 26.086024783312336% 31.885867690235667%, 24.40127355103533% 34.35694389861506%, 22.97093396292743% 36.98348782647325%, 21.80922137642275% 39.739395700229935%, 20.927681413127665% 42.597278069291185%, 20.335075213246146% 45.528732014714755%, 20.03729236343233% 48.50462343017907%, 20.03729236343233% 51.495376569820905%, 20.335075213246146% 54.47126798528524%, 20.927681413127658% 57.40272193070879%, 21.809221376422748% 60.26060429977006%, 22.970933962927425% 63.01651217352674%, 24.401273551035327% 65.64305610138494%, 26.08602478331232% 68.11413230976432%, 28.008443845105212% 70.40518213312758%, 30.149424872094208% 72.49343608903202%, 32.487689832956306% 74.3581401714757%, 34.999999999999986% 75.98076211353316%, 37.66138690608165% 77.34517556935019%, 40.44540049244945% 78.43782038501395%, 43.32437198131056% 79.2478373654547%, 46.26968886057543% 79.76717619800516%, 49.25207924785781% 79.99067546002449%, 52.2419028075927% 79.9161139154354%, 55.209445330007895% 79.54423259036625%, 58.12521404429013% 78.87872740850037%, 60.96023073099184% 77.92621245932614%, 63.68631972059489% 76.69615426434406%, 66.27638791597279% 75.20077769452314%, 68.704694055762% 73.4549444740409%, 70.9471045425822% 71.47600547779155%, 72.98133329356934% 69.28362829059618%, 74.78716322947984% 66.89960174190865%, 76.34664720110685% 64.34761935863956%, 77.64428635611223% 61.653043888240845%, 78.66718417358422% 58.84265523232714%, 79.40517463545632% 55.94438429598193%, 79.85092326096203% 52.98703539787452%, 80% 50.00000000000001%);
|
|
129
|
+
background-color: hsla(0, 0%, 0%, 0.3);
|
|
130
|
+
z-index: 1;
|
|
131
|
+
}
|
|
@@ -193,14 +193,14 @@ function CameraCustom(props: Props) {
|
|
|
193
193
|
justifyContent: 'center',
|
|
194
194
|
alignItems: 'center',
|
|
195
195
|
overflow: 'hidden',
|
|
196
|
-
height: '100svh',
|
|
197
196
|
width: '100%',
|
|
198
197
|
}}
|
|
198
|
+
className="full-height"
|
|
199
199
|
>
|
|
200
200
|
<Webcam
|
|
201
201
|
audio={false}
|
|
202
|
-
height={'100svh'}
|
|
203
202
|
width={'100%'}
|
|
203
|
+
className="full-height"
|
|
204
204
|
imageSmoothing={true}
|
|
205
205
|
screenshotFormat="image/jpeg"
|
|
206
206
|
forceScreenshotSourceSize={true}
|
|
@@ -160,7 +160,7 @@ const SearchBox = (props: any) => {
|
|
|
160
160
|
title={
|
|
161
161
|
!isEmpty(preFilter)
|
|
162
162
|
? Object.keys(preFilter).join(', ')
|
|
163
|
-
: 'Add pre-filter'
|
|
163
|
+
: t('Add or change pre-filter')
|
|
164
164
|
}
|
|
165
165
|
placement="top"
|
|
166
166
|
arrow={true}
|
|
@@ -234,7 +234,7 @@ const SearchBox = (props: any) => {
|
|
|
234
234
|
<Box
|
|
235
235
|
style={{
|
|
236
236
|
border: `2px solid ${settings.theme?.primaryColor}`,
|
|
237
|
-
backgroundColor:
|
|
237
|
+
backgroundColor: `${settings.theme?.primaryColor}26`,
|
|
238
238
|
marginRight: '5px',
|
|
239
239
|
}}
|
|
240
240
|
className="box-image-search-thumb"
|
|
@@ -246,7 +246,7 @@ const SearchBox = (props: any) => {
|
|
|
246
246
|
alt="img_search"
|
|
247
247
|
/>
|
|
248
248
|
<Tooltip
|
|
249
|
-
title=
|
|
249
|
+
title={t('Clear image search')}
|
|
250
250
|
placement="top"
|
|
251
251
|
arrow={true}
|
|
252
252
|
>
|
|
@@ -287,7 +287,7 @@ function ItemResult(props: Props) {
|
|
|
287
287
|
>
|
|
288
288
|
{(brand || settings.brandName) && (
|
|
289
289
|
<ProductAttribute
|
|
290
|
-
title={'Brand'}
|
|
290
|
+
title={t('Brand')}
|
|
291
291
|
value={brand || settings.brandName}
|
|
292
292
|
padding="4px 8px"
|
|
293
293
|
width={{ xs: '49%' }}
|
|
@@ -296,7 +296,7 @@ function ItemResult(props: Props) {
|
|
|
296
296
|
|
|
297
297
|
{dataItem[settings.field.manufacturerNumber] && (
|
|
298
298
|
<ProductAttribute
|
|
299
|
-
title={'Mfr. No.'}
|
|
299
|
+
title={t('Mfr. No.')}
|
|
300
300
|
value={dataItem[settings.field.manufacturerNumber]}
|
|
301
301
|
padding="4px 8px"
|
|
302
302
|
width={{ xs: '49%' }}
|
|
@@ -10,7 +10,7 @@ function RfqBanner({
|
|
|
10
10
|
selectedRegion,
|
|
11
11
|
setIsRfqModalOpen,
|
|
12
12
|
}: {
|
|
13
|
-
rfqRef
|
|
13
|
+
rfqRef?: any;
|
|
14
14
|
rfqStatus: any;
|
|
15
15
|
setIsRfqModalOpen: any;
|
|
16
16
|
requestImage: any;
|
|
@@ -31,7 +31,7 @@ function RfqBanner({
|
|
|
31
31
|
alignItems: 'center',
|
|
32
32
|
}}
|
|
33
33
|
className="rfq-box"
|
|
34
|
-
ref={rfqRef}
|
|
34
|
+
// ref={rfqRef}
|
|
35
35
|
>
|
|
36
36
|
<Box
|
|
37
37
|
style={{
|
|
@@ -32,19 +32,20 @@ function AppMD() {
|
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
34
|
<Box className={`box-content-main ${isLoading ? 'loading' : ''}`}>
|
|
35
|
-
<Box className="box-content_top">
|
|
35
|
+
<Box className="box-content_top" style={{ position: 'relative' }}>
|
|
36
36
|
{settings.headerText && (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
<Box
|
|
38
|
+
className="fw-700 text-f32 text-dark2"
|
|
39
|
+
style={{ position: 'absolute', bottom: '49px' }}
|
|
40
|
+
>
|
|
41
|
+
<h1>{settings.headerText}</h1>
|
|
42
|
+
</Box>
|
|
40
43
|
)}
|
|
41
|
-
<div className="
|
|
42
|
-
<div
|
|
43
|
-
<
|
|
44
|
-
<CustomInfiniteHits />
|
|
45
|
-
</div>
|
|
46
|
-
<CustomSearchBox />
|
|
44
|
+
<div className="wrap-input-search">
|
|
45
|
+
<div style={{ display: 'none' }}>
|
|
46
|
+
<CustomInfiniteHits />
|
|
47
47
|
</div>
|
|
48
|
+
<CustomSearchBox />
|
|
48
49
|
</div>
|
|
49
50
|
</Box>
|
|
50
51
|
<Box className="box-content_bottom">
|
|
@@ -217,88 +217,14 @@ button {
|
|
|
217
217
|
position: absolute;
|
|
218
218
|
width: 104px;
|
|
219
219
|
height: 104px;
|
|
220
|
-
|
|
220
|
+
|
|
221
221
|
// background: #fff;
|
|
222
222
|
border-radius: 100%;
|
|
223
223
|
z-index: 111;
|
|
224
224
|
left: 0;
|
|
225
225
|
right: 0;
|
|
226
226
|
margin: auto;
|
|
227
|
-
&::after {
|
|
228
|
-
content: 'loading';
|
|
229
|
-
position: absolute;
|
|
230
|
-
top: 0;
|
|
231
|
-
margin: auto;
|
|
232
|
-
bottom: 0;
|
|
233
|
-
width: 87%;
|
|
234
|
-
height: 87%;
|
|
235
|
-
display: flex;
|
|
236
|
-
justify-content: center;
|
|
237
|
-
align-items: center;
|
|
238
|
-
z-index: 112;
|
|
239
|
-
font-size: 14px !important;
|
|
240
|
-
line-height: 38px;
|
|
241
|
-
font-weight: 500;
|
|
242
|
-
color: #fff;
|
|
243
|
-
background: rgba(43, 44, 70, 1);
|
|
244
|
-
margin: auto;
|
|
245
|
-
left: 0;
|
|
246
|
-
right: 0;
|
|
247
|
-
bottom: 0;
|
|
248
|
-
border-radius: 100%;
|
|
249
|
-
}
|
|
250
|
-
&::before {
|
|
251
|
-
content: '';
|
|
252
|
-
}
|
|
253
|
-
.box-content-spin {
|
|
254
|
-
width: 104px;
|
|
255
|
-
height: 104px;
|
|
256
|
-
position: absolute;
|
|
257
|
-
border-radius: 100%;
|
|
258
|
-
animation: spin 2s linear infinite;
|
|
259
|
-
&:before {
|
|
260
|
-
content: '';
|
|
261
|
-
position: absolute;
|
|
262
|
-
top: 0;
|
|
263
|
-
right: 0;
|
|
264
|
-
bottom: 0;
|
|
265
|
-
left: 0;
|
|
266
|
-
z-index: 0;
|
|
267
|
-
border-radius: 100%;
|
|
268
|
-
// background: linear-gradient(
|
|
269
|
-
// 180deg,
|
|
270
|
-
// #3e36dc 0%,
|
|
271
|
-
// #e31b5d 44.27%,
|
|
272
|
-
// rgba(255, 255, 255, 0) 100%
|
|
273
|
-
// );
|
|
274
|
-
background: conic-gradient(
|
|
275
|
-
from 90deg at 50.46% 50.46%,
|
|
276
|
-
#322bb0 -30.73deg,
|
|
277
|
-
#3e36dc 111.58deg,
|
|
278
|
-
#00ff94 212.7deg,
|
|
279
|
-
#322bb0 329.27deg,
|
|
280
|
-
#3e36dc 471.58deg
|
|
281
|
-
);
|
|
282
|
-
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.25);
|
|
283
|
-
}
|
|
284
|
-
@-webkit-keyframes spin {
|
|
285
|
-
0% {
|
|
286
|
-
-webkit-transform: rotate(0deg);
|
|
287
|
-
}
|
|
288
|
-
100% {
|
|
289
|
-
-webkit-transform: rotate(360deg);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
227
|
|
|
293
|
-
@keyframes spin {
|
|
294
|
-
0% {
|
|
295
|
-
transform: rotate(0deg);
|
|
296
|
-
}
|
|
297
|
-
100% {
|
|
298
|
-
transform: rotate(360deg);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
228
|
}
|
|
303
229
|
|
|
304
230
|
.box-modal-default {
|
|
@@ -786,7 +712,7 @@ button {
|
|
|
786
712
|
}
|
|
787
713
|
display: flex;
|
|
788
714
|
flex-direction: column;
|
|
789
|
-
justify-content:
|
|
715
|
+
justify-content: center;
|
|
790
716
|
align-items: center;
|
|
791
717
|
height: 100%;
|
|
792
718
|
background: #FAFAFA;
|
|
@@ -794,7 +720,6 @@ button {
|
|
|
794
720
|
|
|
795
721
|
width: 100%;
|
|
796
722
|
// min-height: calc(100% - 341px);
|
|
797
|
-
margin-top: 300px;
|
|
798
723
|
display: flex;
|
|
799
724
|
justify-content: center;
|
|
800
725
|
align-items: center;
|
|
@@ -826,10 +751,8 @@ button {
|
|
|
826
751
|
}
|
|
827
752
|
.box-content_bottom {
|
|
828
753
|
width: 100%;
|
|
829
|
-
height: 256px;
|
|
830
754
|
max-width: 512px;
|
|
831
755
|
position: relative;
|
|
832
|
-
margin-bottom: auto;
|
|
833
756
|
@media screen and (min-width: 2047px) {
|
|
834
757
|
position: initial;
|
|
835
758
|
.loadingSpinCT {
|
|
@@ -852,6 +775,7 @@ button {
|
|
|
852
775
|
padding-top: 16px;
|
|
853
776
|
padding-bottom: 16px;
|
|
854
777
|
color: #CACAD1;
|
|
778
|
+
border: 2px dashed transparent;
|
|
855
779
|
&:hover {
|
|
856
780
|
border-radius: 60px;
|
|
857
781
|
border: 2px dashed #E0E0E0;
|
|
@@ -992,7 +916,7 @@ button {
|
|
|
992
916
|
}
|
|
993
917
|
}
|
|
994
918
|
.box-result {
|
|
995
|
-
height: calc(
|
|
919
|
+
height: calc(100vh - 148px);
|
|
996
920
|
@media screen and (max-width: 776px) {
|
|
997
921
|
height: 100%
|
|
998
922
|
}
|
|
@@ -1556,7 +1480,7 @@ button {
|
|
|
1556
1480
|
|
|
1557
1481
|
.wrap-main-support-page {
|
|
1558
1482
|
background-color: #2b2c46;
|
|
1559
|
-
min-height: calc(
|
|
1483
|
+
min-height: calc(100vh - 32px);
|
|
1560
1484
|
// max-width: 1280px;
|
|
1561
1485
|
padding: 40px;
|
|
1562
1486
|
margin: auto;
|
|
@@ -382,7 +382,7 @@ function ResultComponent(props: Props) {
|
|
|
382
382
|
settings.preview && 'ml-auto mr-auto'
|
|
383
383
|
} ${isMobile && 'col-right-result-mobile'}`}
|
|
384
384
|
style={{
|
|
385
|
-
paddingTop: isMobile ? '
|
|
385
|
+
paddingTop: isMobile ? '8px' : '40px',
|
|
386
386
|
overflow: !isMobile ? 'auto' : '',
|
|
387
387
|
display: 'flex',
|
|
388
388
|
flexDirection: 'column',
|