@bytebrand/fe-ui-core 4.2.251 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +2 -4
- package/common.ts +2 -6
- package/package.json +2 -3
- package/source/components/AccordionWidget/AccordionWidget.tsx +3 -1
- package/source/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
- package/source/components/Checkout/CheckoutStepper/CheckoutStepper.styl +190 -2
- package/source/components/Checkout/CheckoutStepper/CheckoutStepper.tsx +16 -15
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.styl +2 -2
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.tsx +3 -3
- package/source/components/FormattedNumber/FormattedNumber.tsx +3 -2
- package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +6 -4
- package/source/components/OfferDetailedSection/partials/PanelConfig.tsx +3 -0
- package/source/components/OfferPanel/MuiOfferPeriod/{MuiOfferPeriod.theme.tsx → MuiOfferPeriod.theme.js} +13 -8
- package/source/components/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +4 -28
- package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +12 -6
- package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +1 -1
- package/source/components/OfferPanel/OfferPanel.tsx +1 -1
- package/source/components/OfferPanel/OfferPeriod/OfferPeriod.tsx +4 -0
- package/source/components/OfferPanel/RangeGroup/RangeGroup.tsx +4 -6
- package/source/components/PriceRatingDetailed/PriceRatingDetailed.tsx +2 -6
- package/source/components/SearchFilters/filters/AlternativeID.tsx +53 -42
- package/source/components/SearchFilters/filters/DriveType.tsx +1 -1
- package/source/components/SearchFilters/filters/EmissionSticker.tsx +1 -1
- package/source/components/SearchFilters/filters/FirstRegistration.tsx +1 -0
- package/source/components/SearchFilters/filters/InteriorColor.tsx +1 -1
- package/source/components/SearchFilters/filters/InteriorMaterial.tsx +1 -2
- package/source/components/SearchFilters/filters/Mileage.tsx +1 -1
- package/source/components/SearchFilters/filters/Power.tsx +17 -36
- package/source/components/SearchFilters/filters/StateOptions.tsx +1 -0
- package/source/components/SearchFilters/filters/Transmission.tsx +1 -1
- package/source/components/SearchPage/SearchChips/SearchChips.tsx +1 -1
- package/source/components/SearchPageMobile/FiltersDetailed/BodyType.tsx +3 -3
- package/source/components/SearchPageMobile/FiltersDetailed/Consumption.tsx +2 -2
- package/source/components/SearchPageMobile/FiltersDetailed/Doors.tsx +1 -1
- package/source/components/SearchPageMobile/FiltersDetailed/MakeModel.tsx +1 -1
- package/source/components/SearchWidget/ColorWidget/BodyColorWidget.tsx +3 -3
- package/source/components/SearchWidget/EnvironmentWidget/EnvironmentWidget.tsx +3 -3
- package/source/components/SearchWidget/HighlightsWidget/HighlightsWidget.tsx +2 -2
- package/source/components/SearchWidget/StateWidget/StateWidget.tsx +2 -1
- package/source/components/SearchWidgetsMobile/BasicDataWidgetMobile/BasicDataWidgetMobile.tsx +4 -4
- package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.tsx +16 -16
- package/source/components/SearchWidgetsMobile/HighlightsWidgetMobile/HighlightsWidgetMobile.tsx +1 -1
- package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidget.tsx +1 -1
- package/source/components/SearchWidgetsMobile/SafetyWidget/SafetyWidget.tsx +6 -6
- package/source/components/Stepper/Stepper.tsx +3 -4
- package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.styl +2 -11
- package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.tsx +5 -5
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCar.tsx +38 -57
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCard.tsx +2 -2
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.tsx +101 -183
- package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.tsx +7 -5
- package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.tsx +7 -33
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +2 -10
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +14 -54
- package/source/components/VehicleDetailedSidebar/partials/Price.styl +1 -5
- package/source/components/VehicleDetailedSidebar/partials/Price.tsx +1 -2
- package/source/components/VehicleDetailedSidebar/partials/PriceContent.styl +5 -16
- package/source/components/VehicleDetailedSidebar/partials/PriceContent.tsx +4 -9
- package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +1 -1
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.styl +0 -45
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +42 -121
- package/source/components/VehicleDetailedSlider/partials/PriceData.styl +1 -4
- package/source/components/VehicleDetailedSlider/partials/PriceData.tsx +1 -8
- package/source/components/VehicleDetailedSlider/partials/Stats.tsx +2 -2
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +7 -9
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +1 -35
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +3 -9
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +2 -11
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +1 -2
- package/source/components/VehicleSmallCard/VehicleSmallCard.styl +1 -3
- package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +7 -3
- package/source/components/_common/Badge/Badge.styl +0 -3
- package/source/components/_common/Badge/Badge.tsx +1 -1
- package/source/components/_common/Button/Button.tsx +4 -5
- package/source/components/_common/Checkbox/FormCheckbox.tsx +4 -4
- package/source/components/_common/CheckboxMaterial/CheckboxMaterial.tsx +1 -1
- package/source/components/_common/Chip/Chip.tsx +3 -1
- package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +3 -3
- package/source/components/_common/IconSVG/IconSVGConfig.tsx +0 -2
- package/source/components/_common/IconSVG/SVG/flags/SK.tsx +1 -0
- package/source/components/_common/IconSVG/SVG/slider/360New.tsx +1 -1
- package/source/components/_common/MaterialAccordion/MaterialAccordion.tsx +30 -22
- package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +8 -8
- package/source/components/_common/MaterialDatePicker/MaterialDatePicker.styled.tsx +1 -0
- package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +15 -12
- package/source/components/_common/MaterialSelect/MaterialSelect.tsx +3 -3
- package/source/components/_common/MaterialSwitch/MaterialSwitch.tsx +1 -3
- package/source/components/_common/MaterialTooltip/MaterialTooltip.styled.tsx +1 -1
- package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +3 -3
- package/source/components/_common/Modal/CookieModal.tsx +3 -1
- package/source/components/_common/Modal/Modal.styled.tsx +1 -2
- package/source/components/_common/Modal/Modal.tsx +5 -1
- package/source/components/_common/Modal/ModalsConfig.tsx +1 -5
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +7 -23
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +36 -84
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +14 -29
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +10 -17
- package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +4 -12
- package/source/components/_common/Range/Range.tsx +16 -26
- package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +1 -0
- package/source/components/_common/UserMenu/MaterialMenu.tsx +3 -3
- package/source/components/_common/UserMenu/MaterialMenuItem.tsx +20 -42
- package/source/components/_common/UserMenu/NestedMenu.tsx +1 -1
- package/source/components/_common/withStats/withStats.styl +0 -3
- package/source/components/_common/withStats/withStats.tsx +16 -19
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +1 -14
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.tsx +42 -78
- package/source/framework/constants/common.ts +60 -89
- package/source/framework/constants/highlights.ts +1 -1
- package/source/framework/constants.ts +1 -1
- package/source/framework/types/types.ts +4 -9
- package/source/framework/utils/CommonUtils.ts +62 -73
- package/source/framework/utils/DateUtils.ts +2 -10
- package/source/framework/vehiclesProps/decoratedLightProps.tsx +2 -1
- package/source/framework/vehiclesProps/decoratedProps.tsx +2 -1
- package/source/locales/data.ts +2 -2
- package/tslint.json +2 -1
- package/utils.ts +0 -2
- package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +0 -613
- package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +0 -335
- package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.styl +0 -38
- package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.tsx +0 -120
- package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.styl +0 -22
- package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.tsx +0 -84
- package/source/components/_common/IconSVG/SVG/slider/YoutubeButton.tsx +0 -26
package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
2
|
import styles from './RequestedCarsSection.styl';
|
|
3
3
|
|
|
4
4
|
import Slider from 'react-slick';
|
|
@@ -10,8 +10,11 @@ import { getFormattedPrice } from '../../../../framework/utils/CommonUtils';
|
|
|
10
10
|
// import { history } from '../../../../../AppRouter';
|
|
11
11
|
import Button from '../../../_common/Button/Button';
|
|
12
12
|
|
|
13
|
+
interface IWithRouter {
|
|
14
|
+
children?: JSX.Element;
|
|
15
|
+
}
|
|
13
16
|
// tslint:disable-next-line:interface-name
|
|
14
|
-
interface
|
|
17
|
+
interface TFunction {
|
|
15
18
|
<T = string>(key: string, options?: object): T;
|
|
16
19
|
<T = string>(keys: string[], options?: object): T;
|
|
17
20
|
}
|
|
@@ -20,7 +23,7 @@ interface IRequestedCarsSection {
|
|
|
20
23
|
redirectToCar: (id: string) => void;
|
|
21
24
|
getSupportedImageFormat: (id: string, mainImageId: string, size: 'small' | 'medium' | 'large') => string;
|
|
22
25
|
requestedCars: any[];
|
|
23
|
-
t:
|
|
26
|
+
t: TFunction;
|
|
24
27
|
LinkRouter:any;
|
|
25
28
|
// initHotjar:() => void;
|
|
26
29
|
}
|
|
@@ -36,7 +39,7 @@ const RequestedCarsSection = ({ t, getSupportedImageFormat, requestedCars, redir
|
|
|
36
39
|
const renderItems = () => {
|
|
37
40
|
if (requestedCars && requestedCars.length > 0) {
|
|
38
41
|
const carsCard = requestedCars.map((car) => {
|
|
39
|
-
if (car && car.car
|
|
42
|
+
if (car && car.car) {
|
|
40
43
|
const { car: { mainData: { make, model, subModel } } } = car;
|
|
41
44
|
const { car: { _id, metaData: { mainImageId } } } = car;
|
|
42
45
|
const { buyingType, paybackPeriod, monthlyInstallment, request, currentSalesPrice } = car;
|
|
@@ -120,5 +123,4 @@ const RequestedCarsSection = ({ t, getSupportedImageFormat, requestedCars, redir
|
|
|
120
123
|
</>
|
|
121
124
|
);
|
|
122
125
|
};
|
|
123
|
-
|
|
124
126
|
export default RequestedCarsSection;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
import FormattedNumber from '../../FormattedNumber/FormattedNumber';
|
|
4
4
|
import styles from './VehicleFormattedPrice.styl';
|
|
@@ -23,7 +23,6 @@ export interface IVehiclePriceProps {
|
|
|
23
23
|
size?: 'small' | 'semimedium' | 'medium' | 'large';
|
|
24
24
|
disableStyles?: boolean;
|
|
25
25
|
disablePrice?: boolean;
|
|
26
|
-
dynamicFontSize?: string;
|
|
27
26
|
|
|
28
27
|
// FormattedNumber props
|
|
29
28
|
toRound?: boolean;
|
|
@@ -35,36 +34,13 @@ export interface IVehiclePriceProps {
|
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
const VehicleFormattedPrice: React.FunctionComponent<IVehiclePriceProps> = (props) => {
|
|
38
|
-
const textRef = useRef(null);
|
|
39
|
-
|
|
40
|
-
const updateFontSize = useCallback(() => {
|
|
41
|
-
if (price && dynamicFontSize && textRef.current) {
|
|
42
|
-
const textWidth = textRef.current.getBoundingClientRect().width;
|
|
43
|
-
const priceLength = Math.round(price).toString().length;
|
|
44
|
-
if (textWidth > 110) {
|
|
45
|
-
if (dynamicFontSize === 'small') {
|
|
46
|
-
const newSize = Math.min(60, 165 / priceLength);
|
|
47
|
-
textRef.current.style.fontSize = `${newSize}px`;
|
|
48
|
-
} else {
|
|
49
|
-
const newSize = Math.min(60, (165 / priceLength) + 6);
|
|
50
|
-
textRef.current.style.fontSize = `${newSize}px`;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}, [props.price, props.dynamicFontSize]);
|
|
56
|
-
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
updateFontSize();
|
|
59
|
-
}, [updateFontSize]);
|
|
60
|
-
|
|
61
37
|
function renderUnit(): React.ReactNode {
|
|
62
38
|
const { postfix, unit, unitClassName } = props;
|
|
63
39
|
return (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
40
|
+
<span className={classnames(styles.unit, unitClassName)}>
|
|
41
|
+
{unit}
|
|
42
|
+
{postfix ? renderPostfix() : ''}
|
|
43
|
+
</span>);
|
|
68
44
|
}
|
|
69
45
|
|
|
70
46
|
function renderUnitMonthly(): React.ReactNode {
|
|
@@ -102,7 +78,7 @@ const VehicleFormattedPrice: React.FunctionComponent<IVehiclePriceProps> = (prop
|
|
|
102
78
|
// FormattedNumber props
|
|
103
79
|
const {
|
|
104
80
|
unit, sub, numbersAfterDot, toRound, numberContainerClassName,
|
|
105
|
-
afterCommaClassName, beforeCommaClassName, disableFormatting, disablePrice
|
|
81
|
+
afterCommaClassName, beforeCommaClassName, disableFormatting, disablePrice
|
|
106
82
|
} = props;
|
|
107
83
|
|
|
108
84
|
const decimalsClass = classnames(afterCommaClassName, styles.decimals);
|
|
@@ -118,7 +94,6 @@ const VehicleFormattedPrice: React.FunctionComponent<IVehiclePriceProps> = (prop
|
|
|
118
94
|
disableFormatting,
|
|
119
95
|
numbersAfterDot,
|
|
120
96
|
toRound,
|
|
121
|
-
dynamicFontSize,
|
|
122
97
|
beforeCommaClassName,
|
|
123
98
|
value: price,
|
|
124
99
|
className: numberContainerClassName,
|
|
@@ -126,7 +101,7 @@ const VehicleFormattedPrice: React.FunctionComponent<IVehiclePriceProps> = (prop
|
|
|
126
101
|
};
|
|
127
102
|
|
|
128
103
|
return (
|
|
129
|
-
<span className={containerClass}
|
|
104
|
+
<span className={containerClass}>
|
|
130
105
|
{<FormattedNumber {...formattedNumberProps} />}
|
|
131
106
|
{(unit && !monthly) && renderUnit()}
|
|
132
107
|
{(monthly && unit) && renderUnitMonthly()}
|
|
@@ -150,7 +125,6 @@ VehicleFormattedPrice.defaultProps = {
|
|
|
150
125
|
unitClassName: '',
|
|
151
126
|
postfixClassName: '',
|
|
152
127
|
subClassName: '',
|
|
153
|
-
dynamicFontSize: '',
|
|
154
128
|
sub: '',
|
|
155
129
|
// FormattedNumber props
|
|
156
130
|
toRound: false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@import '../../theme/mixins.styl'
|
|
2
2
|
|
|
3
3
|
.detailedInfo
|
|
4
|
-
padding: 15px 15px
|
|
4
|
+
padding: 15px 15px 7px 15px
|
|
5
5
|
width: 100%
|
|
6
6
|
position: relative
|
|
7
7
|
background-color: white
|
|
@@ -26,12 +26,4 @@
|
|
|
26
26
|
|
|
27
27
|
.highlights
|
|
28
28
|
padding-top: 0;
|
|
29
|
-
margin-top: 6px;
|
|
30
|
-
|
|
31
|
-
.skeletonInfoContainer:not(:first-child)
|
|
32
|
-
margin-top: 6px
|
|
33
|
-
|
|
34
|
-
.skeletonInfoContainer
|
|
35
|
-
[class*='MuiSkeleton-root']
|
|
36
|
-
transform: none
|
|
37
|
-
height: 309px
|
|
29
|
+
margin-top: 6px;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React, { useState, useEffect,
|
|
1
|
+
import React, { useState, useEffect, FunctionComponent } from 'react';
|
|
2
2
|
import _get from 'lodash/get';
|
|
3
3
|
import { Hidden } from 'react-grid-system';
|
|
4
|
-
import { isMobileOnly } from 'react-device-detect';
|
|
5
4
|
import PriceContent from './partials/PriceContent';
|
|
6
5
|
import Title from './partials/Title';
|
|
7
6
|
import Price from './partials/Price';
|
|
@@ -10,15 +9,6 @@ import styles from './VehicleDetailedSidebar.styl';
|
|
|
10
9
|
import { vehicleProps } from '../../locales/data';
|
|
11
10
|
import { IVehicleDetailedSidebarProps } from '../../framework/types/types';
|
|
12
11
|
import DealerInfo from '../Alternative/DealerInfo';
|
|
13
|
-
import { Skeleton } from '@mui/material';
|
|
14
|
-
|
|
15
|
-
declare global {
|
|
16
|
-
// interface Window {
|
|
17
|
-
// Trustpilot?: {
|
|
18
|
-
// loadFromElement: (element: HTMLElement, autoload?: boolean) => void;
|
|
19
|
-
// };
|
|
20
|
-
// }
|
|
21
|
-
}
|
|
22
12
|
|
|
23
13
|
const VehicleDetailedSidebar: FunctionComponent<IVehicleDetailedSidebarProps> = (props) => {
|
|
24
14
|
const {
|
|
@@ -36,10 +26,8 @@ const VehicleDetailedSidebar: FunctionComponent<IVehicleDetailedSidebarProps> =
|
|
|
36
26
|
originUrl,
|
|
37
27
|
// isAlternative,
|
|
38
28
|
infoSections,
|
|
39
|
-
onCurrentSalesPriceChange
|
|
40
|
-
isFetching
|
|
29
|
+
onCurrentSalesPriceChange
|
|
41
30
|
} = props;
|
|
42
|
-
// const ref = useRef(null);
|
|
43
31
|
const [offerBlockOpen, setOfferBlockOpen] = useState(false);
|
|
44
32
|
const onAdjustRateClick = () => setOfferBlockOpen(!offerBlockOpen);
|
|
45
33
|
|
|
@@ -112,12 +100,6 @@ const VehicleDetailedSidebar: FunctionComponent<IVehicleDetailedSidebarProps> =
|
|
|
112
100
|
}
|
|
113
101
|
];
|
|
114
102
|
|
|
115
|
-
// useEffect(() => {
|
|
116
|
-
// if (window.Trustpilot) {
|
|
117
|
-
// window.Trustpilot.loadFromElement(ref.current, true);
|
|
118
|
-
// }
|
|
119
|
-
// }, []);
|
|
120
|
-
|
|
121
103
|
useEffect(() => {
|
|
122
104
|
const getlocalStorageActiveTabCDP = localStorage.getItem('activeTabCDP');
|
|
123
105
|
if (!getlocalStorageActiveTabCDP) return;
|
|
@@ -147,34 +129,14 @@ const VehicleDetailedSidebar: FunctionComponent<IVehicleDetailedSidebarProps> =
|
|
|
147
129
|
|
|
148
130
|
return (
|
|
149
131
|
<>
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
data-template-id='5419b6a8b0d04a076446a9ad'
|
|
159
|
-
data-businessunit-id='46edfd1c0000640005017f22'
|
|
160
|
-
data-style-height='32px'
|
|
161
|
-
data-style-width='100%'
|
|
162
|
-
data-theme='light'
|
|
163
|
-
data-style-alignment='center'
|
|
164
|
-
>
|
|
165
|
-
<a
|
|
166
|
-
href='https://de.trustpilot.com/review/www.auto.de'
|
|
167
|
-
target='_blank'
|
|
168
|
-
rel='noopener noreferrer'
|
|
169
|
-
>
|
|
170
|
-
Trustpilot
|
|
171
|
-
</a>
|
|
172
|
-
</div>
|
|
173
|
-
)} */}
|
|
174
|
-
{props.children}
|
|
175
|
-
</div> : <div className={styles.skeletonInfoContainer}><Skeleton /></div>
|
|
176
|
-
}
|
|
177
|
-
{!isFetching ? <div>{isAlternativeType &&
|
|
132
|
+
<div className={styles.detailedInfo}>
|
|
133
|
+
<Title {...titleProps} />
|
|
134
|
+
<Price {...priceProps} />
|
|
135
|
+
<Price {...priceProps} isSticky={true} />
|
|
136
|
+
{props.children}
|
|
137
|
+
</div>
|
|
138
|
+
<div>
|
|
139
|
+
{isAlternativeType &&
|
|
178
140
|
<DealerInfo
|
|
179
141
|
t={t}
|
|
180
142
|
infoSections={infoSections}
|
|
@@ -184,12 +146,10 @@ const VehicleDetailedSidebar: FunctionComponent<IVehicleDetailedSidebarProps> =
|
|
|
184
146
|
currentSalesPrice={currentSalesPrice}
|
|
185
147
|
onCurrentSalesPriceChange={onCurrentSalesPriceChange}
|
|
186
148
|
/>}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
</Hidden> : <div className={styles.skeletonInfoContainer}><Skeleton /></div>
|
|
192
|
-
}
|
|
149
|
+
</div>
|
|
150
|
+
<Hidden xs sm md>
|
|
151
|
+
<div className={`${styles.detailedInfo} ${styles.highlights}`}>{carLoaded && <Properties {...propertiesProps} />}</div>
|
|
152
|
+
</Hidden>
|
|
193
153
|
</>
|
|
194
154
|
);
|
|
195
155
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@import '../../../theme/mixins.styl';
|
|
2
2
|
|
|
3
3
|
.newFinancingPriceWrapper
|
|
4
|
-
width:
|
|
4
|
+
width: 100%
|
|
5
5
|
display: flex
|
|
6
6
|
align-items: flex-start;
|
|
7
7
|
color: $lightGreen;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
font-size: 60px;
|
|
11
11
|
display flex;
|
|
12
12
|
line-height: .8;
|
|
13
|
-
margin 8px 0 0
|
|
13
|
+
margin 8px 0 0 16px;
|
|
14
14
|
[class^="VehicleFormattedPrice__decimals"], [class^="VehicleFormattedPrice__unit"]
|
|
15
15
|
font-size: 16px !important;
|
|
16
16
|
transform: none !important;
|
|
@@ -18,14 +18,13 @@
|
|
|
18
18
|
.tabContentPaddingForBuy
|
|
19
19
|
.newFinancingPriceWrapper
|
|
20
20
|
[class*="VehicleFormattedPrice__large"]
|
|
21
|
+
font-size: 40px;
|
|
21
22
|
margin-left: 0;
|
|
22
23
|
+media-phone-only()
|
|
23
24
|
[class*="VehicleFormattedPrice__large"]
|
|
25
|
+
font-size: 45px;
|
|
24
26
|
margin-left: 3px;
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
28
|
.tabContentPadding
|
|
30
29
|
padding: 10px 10px 10px 10px;
|
|
31
30
|
flex-direction: row
|
|
@@ -111,14 +110,4 @@
|
|
|
111
110
|
transform: rotate(180deg);
|
|
112
111
|
|
|
113
112
|
.wrapper
|
|
114
|
-
|
|
115
|
-
padding-right: 15px;
|
|
116
|
-
|
|
117
|
-
.priceFontSizeSmall
|
|
118
|
-
.priceInfoLabel
|
|
119
|
-
margin-top:8px!important
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
.tabContentPaddingForBuy.priceFontSizeSmall
|
|
123
|
-
.financingPriceItem
|
|
124
|
-
display: flex;
|
|
113
|
+
padding-right: 15px;
|
|
@@ -7,7 +7,6 @@ import styles from './PriceContent.styl';
|
|
|
7
7
|
import VehicleFormattedPrice from '../../Vehicle/VehicleFormattedPrice/VehicleFormattedPrice';
|
|
8
8
|
import PriceRating from '../../PriceRating/PriceRating';
|
|
9
9
|
import RequestOffer from '../../_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper';
|
|
10
|
-
import { getFormattedPrice } from '../../../../utils';
|
|
11
10
|
|
|
12
11
|
const PriceContent: React.FunctionComponent<IPriceContentProps> = ({
|
|
13
12
|
t,
|
|
@@ -46,14 +45,11 @@ const PriceContent: React.FunctionComponent<IPriceContentProps> = ({
|
|
|
46
45
|
isAdditionalOption: true,
|
|
47
46
|
onShowOfferDetails: offerBlockProps.onShowOfferDetails
|
|
48
47
|
};
|
|
49
|
-
const priceFontSize: string = monthlyInstallment ? (getFormattedPrice(monthlyInstallment)?.toString().match(/\d/g).length >= 4 ? 'small' : 'large') : '';
|
|
50
48
|
|
|
51
49
|
const tabContentPaddingClassName = classnames(
|
|
52
50
|
styles.tabContentPadding,
|
|
53
|
-
{ [styles.tabContentPaddingForBuy]: isBuy }
|
|
54
|
-
{ [styles.priceFontSizeSmall]: priceFontSize === 'small' }
|
|
51
|
+
{ [styles.tabContentPaddingForBuy]: isBuy }
|
|
55
52
|
);
|
|
56
|
-
|
|
57
53
|
return (
|
|
58
54
|
<>
|
|
59
55
|
<div className={tabContentPaddingClassName}>
|
|
@@ -94,12 +90,11 @@ const PriceContent: React.FunctionComponent<IPriceContentProps> = ({
|
|
|
94
90
|
postfix={postfix}
|
|
95
91
|
numbersAfterDot={0}
|
|
96
92
|
size='large'
|
|
97
|
-
dynamicFontSize={tabContentPaddingClassName.includes('tabContentPaddingForBuy') ? 'large' : 'small'}
|
|
98
93
|
/>
|
|
99
94
|
</div>
|
|
100
95
|
) : null}
|
|
101
96
|
</span>
|
|
102
|
-
<div
|
|
97
|
+
<div>
|
|
103
98
|
<PriceRating {...priceRatingProps} />
|
|
104
99
|
<span className={styles.priceInfo}>
|
|
105
100
|
<span className={styles.priceInfoLabel} onClick={onAdjustRateClick}>
|
|
@@ -108,13 +103,13 @@ const PriceContent: React.FunctionComponent<IPriceContentProps> = ({
|
|
|
108
103
|
className={styles.infoIcon}
|
|
109
104
|
customDimensions
|
|
110
105
|
/>
|
|
111
|
-
<span>{
|
|
106
|
+
<span>{t('sidebar.adjustRate')}</span>
|
|
112
107
|
<IconSVG name='menuArrow' className={`${styles.arrowDownIcon} ${offerBlockOpen ? styles.arrowUpIcon : ''}`} customDimensions />
|
|
113
108
|
</span>
|
|
114
109
|
</span>
|
|
115
110
|
</div>
|
|
116
111
|
</div>
|
|
117
|
-
{offerBlockOpen && <OfferBlockComponent {...{ ...offerBlockProps, priceTabIndex: activeTab }} />}
|
|
112
|
+
{offerBlockOpen && <OfferBlockComponent {...{ ...offerBlockProps, priceTabIndex: activeTab }} /> }
|
|
118
113
|
<RequestOffer {...requestOfferProps} />
|
|
119
114
|
</>
|
|
120
115
|
);
|
|
@@ -82,7 +82,7 @@ const Properties: React.FunctionComponent<IPropertiesProps> = ({ t, car, decorat
|
|
|
82
82
|
|
|
83
83
|
const tabsTitles = [
|
|
84
84
|
{
|
|
85
|
-
title:
|
|
85
|
+
title: 'overview',
|
|
86
86
|
children: (
|
|
87
87
|
<div className={`${styles.tabContentPadding} ${styles.tabContentOverviewPadding}`}>
|
|
88
88
|
{mainProperties.map((property: any, index: number) => (
|
|
@@ -100,48 +100,3 @@
|
|
|
100
100
|
|
|
101
101
|
.blurred
|
|
102
102
|
filter: blur(3px)
|
|
103
|
-
|
|
104
|
-
.frame
|
|
105
|
-
aspect-ratio:4/3
|
|
106
|
-
height: auto;
|
|
107
|
-
border-radius: 10px;
|
|
108
|
-
display: block;
|
|
109
|
-
border: none;
|
|
110
|
-
|
|
111
|
-
.noYoutubeWrapper
|
|
112
|
-
margin: 82px auto 0;
|
|
113
|
-
width: 487px;
|
|
114
|
-
display: flex;
|
|
115
|
-
flex-direction: column;
|
|
116
|
-
align-items: center;
|
|
117
|
-
+media-phone-only()
|
|
118
|
-
margin: 40px auto 0;
|
|
119
|
-
width: 297px;
|
|
120
|
-
|
|
121
|
-
svg
|
|
122
|
-
+media-phone-only()
|
|
123
|
-
width: 79px;
|
|
124
|
-
height: 56px;
|
|
125
|
-
|
|
126
|
-
.youtubeCookiesText
|
|
127
|
-
font-size: 28px;
|
|
128
|
-
font-weight: 400;
|
|
129
|
-
line-height: 36px;
|
|
130
|
-
margin:62px 0px 54px;
|
|
131
|
-
display: block;
|
|
132
|
-
text-align: center;
|
|
133
|
-
+media-phone-only()
|
|
134
|
-
margin: 36px auto 39px;
|
|
135
|
-
font-size:17px;
|
|
136
|
-
line-height: 21px
|
|
137
|
-
|
|
138
|
-
.btn
|
|
139
|
-
height: 38px!important
|
|
140
|
-
+media-phone-only()
|
|
141
|
-
height: 30px!important
|
|
142
|
-
font-size:13px;
|
|
143
|
-
|
|
144
|
-
.btn:first-child
|
|
145
|
-
margin-right:22px!important
|
|
146
|
-
+media-phone-only()
|
|
147
|
-
margin-right:5px!important
|