@bytebrand/fe-ui-core 4.2.111 → 4.2.113

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytebrand/fe-ui-core",
3
- "version": "4.2.111",
3
+ "version": "4.2.113",
4
4
  "description": "UI components for the auto.de project",
5
5
  "main": "index.ts",
6
6
  "module": "dist/common.js",
@@ -53,7 +53,7 @@
53
53
  "react": "^17.0.2",
54
54
  "react-device-detect": "^2.1.2",
55
55
  "react-dom": "^17.0.2",
56
- "react-grid-system": "^5.0.2",
56
+ "react-grid-system": "^8.1.9",
57
57
  "react-i18next": "9.0.4",
58
58
  "react-lazyload": "3.2.0",
59
59
  "react-scroll": "^1.7.13",
@@ -22,4 +22,4 @@ export const theme = createTheme({
22
22
  }
23
23
  }
24
24
  }
25
- });
25
+ });
@@ -2,7 +2,7 @@ import React, { FC } from 'react';
2
2
  import _get from 'lodash/get';
3
3
  import styles from '../OfferPanel.styl';
4
4
  import { modalsTranslate } from '../../../locales/data';
5
- import ToggleButton, { ToggleButtonProps } from '@mui/material/ToggleButton';
5
+ import ToggleButton, { ToggleButtonProps as IToggleButtonProps } from '@mui/material/ToggleButton';
6
6
  import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
7
7
  import { ThemeProvider } from '@mui/material/styles';
8
8
  import { theme } from './MuiOfferPeriod.theme';
@@ -14,17 +14,17 @@ export interface IOfferPeriod {
14
14
  onChange: (key: string, value: number) => void;
15
15
  }
16
16
 
17
- type ToggleButtonVariant =
17
+ type IToggleButtonVariant =
18
18
  | 'text'
19
19
  | 'outlined'
20
20
  | 'contained'
21
21
  | 'sidebar';
22
22
 
23
- interface CustomToggleButtonProps extends Omit<ToggleButtonProps, 'variant'> {
24
- variant: ToggleButtonVariant;
23
+ interface ICustomToggleButtonProps extends Omit<IToggleButtonProps, 'variant'> {
24
+ variant: IToggleButtonVariant;
25
25
  }
26
26
 
27
- const MyCustomToggleButton: FC<CustomToggleButtonProps> = (props) => {
27
+ const MyCustomToggleButton: FC<ICustomToggleButtonProps> = (props) => {
28
28
  return (
29
29
  <ToggleButton {...props}>
30
30
  {props.children}
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import styles from './OfferCheckboxGroup.styl';
3
3
  import classnames from 'classnames';
4
- // import FormattedNumber from '../../FormattedNumber/FormattedNumber';
5
- // import Tooltip from '../../_common/Tooltip/Tooltip';
6
4
  import CheckboxMaterial from '../../_common/CheckboxMaterial/CheckboxMaterial';
7
5
  import MaterialTooltip from '../../_common/MaterialTooltip/MaterialTooltip';
8
6
 
@@ -22,7 +20,7 @@ export interface ICheckboxProps {
22
20
  containerClassName?: string;
23
21
  checkboxClassName?: string;
24
22
  labelClassName?: string;
25
- labelPlacement?: "end" | "start" | "top" | "bottom";
23
+ labelPlacement?: 'end' | 'start' | 'top' | 'bottom';
26
24
  tooltipDescription?: string;
27
25
  checkboxPriceValue: any;
28
26
  tooltipPosX?: string;
@@ -158,7 +158,11 @@ class PriceRatingDetailed extends React.Component<IPriceRatingDetailedProps, IPr
158
158
  const MARGIN_OFFSET = price >= MIN_PRICE ? MIN_PRICE : (price / 2);
159
159
  const strings = {
160
160
  general: `${getFormattedPrice((marginToLeft ? price - MARGIN_OFFSET : min) as number)} – ${getFormattedPrice((marginToRight ? price + MARGIN_OFFSET : max) as number)}\u00A0€`,
161
- compact: <>{getFormattedPrice((marginToLeft ? price - MARGIN_OFFSET : min) as number)}<br />{t(`${i18nPrefix}priceTo`)} {getFormattedPrice((marginToRight ? price + MARGIN_OFFSET : max) as number)} €</>
161
+ compact: <>
162
+ {getFormattedPrice((marginToLeft ? price - MARGIN_OFFSET : min) as number)}
163
+ <br />
164
+ {t(`${i18nPrefix}priceTo`)} {getFormattedPrice((marginToRight ? price + MARGIN_OFFSET : max) as number)} €
165
+ </>
162
166
  };
163
167
 
164
168
  return (
@@ -5,7 +5,7 @@ import VehicleFormattedPrice from '../../../Vehicle/VehicleFormattedPrice/Vehicl
5
5
  import Button from '../../../_common/Button/Button';
6
6
  import classNames from 'classnames';
7
7
 
8
- import { TFunction } from '../../../../framework/types/types';
8
+ import { ITFunction } from '../../../../framework/types/types';
9
9
 
10
10
  interface IAdditionalOrderData {
11
11
  addressData: ({ value: string; label: string; })[];
@@ -14,7 +14,7 @@ interface IAdditionalOrderData {
14
14
  }
15
15
 
16
16
  interface IAdditionalOrderInfo {
17
- t: TFunction;
17
+ t: ITFunction;
18
18
  additionalOrderData: IAdditionalOrderData;
19
19
  redirectToUrl: (url: string) => void;
20
20
  buyingType: string;
@@ -29,8 +29,8 @@ const AdditionalOrderInfo = ({ t, additionalOrderData, redirectToUrl, buyingType
29
29
 
30
30
  const supportSectionClassnames = classNames(
31
31
  styles.customerSuport,
32
- {[styles.supportSectionBorder]: addressData.length > 0}
33
- )
32
+ { [styles.supportSectionBorder]: addressData.length > 0 }
33
+ );
34
34
 
35
35
  return (
36
36
  <div className={styles.container}>
@@ -5,7 +5,7 @@ import OrderStatusCard from './OrderStatusCard';
5
5
  import { getFormattedPrice } from '../../../../framework/utils/CommonUtils';
6
6
 
7
7
  // tslint:disable-next-line:interface-name
8
- interface TFunction {
8
+ interface ITFunction {
9
9
  <T = string>(key: string, options?: object): T;
10
10
  <T = string>(keys: string[], options?: object): T;
11
11
  }
@@ -20,7 +20,7 @@ interface IOrderStatusCar {
20
20
  paybackPeriod?: number;
21
21
  monthlyInstallment?: number;
22
22
  status?: string;
23
- t: TFunction;
23
+ t: ITFunction;
24
24
  request: string;
25
25
  registration: boolean;
26
26
  currentSalesPrice: number;
@@ -8,7 +8,7 @@ import { Skeleton } from '@mui/material';
8
8
 
9
9
  import { getFormattedPrice } from '../../../../framework/utils/CommonUtils';
10
10
 
11
- interface TFunction {
11
+ interface ITFunction {
12
12
  <T = string>(key: string, options?: object): T;
13
13
  <T = string>(keys: string[], options?: object): T;
14
14
  }
@@ -16,7 +16,7 @@ interface TFunction {
16
16
  interface IOrderStatusSection {
17
17
  getSupportedImageFormat: (id: string, mainImageId: string, size: 'small' | 'medium' | 'large') => string;
18
18
  redirectToUrl: (url: string) => void;
19
- t: TFunction;
19
+ t: ITFunction;
20
20
  isFetching: boolean;
21
21
  withAdditionalInfo?: boolean; // for using on /account/my-order.
22
22
  orderedCars: any[]; // TODO: create interface for orderedCars, when the object is formatted by the backend
@@ -25,7 +25,7 @@ interface IOrderStatusSection {
25
25
  const OrderStatusSection = ({
26
26
  getSupportedImageFormat,
27
27
  t,
28
- redirectToUrl,
28
+ redirectToUrl,
29
29
  orderedCars,
30
30
  isFetching,
31
31
  withAdditionalInfo = false
@@ -60,17 +60,18 @@ const OrderStatusSection = ({
60
60
  case 'deliveryCity':
61
61
  addressString = `${addressString} ${addressObj[key]}`;
62
62
  break;
63
+ default: addressString = `${addressString} ${addressObj[key]}`;
63
64
  }
64
- })
65
+ });
65
66
  }
66
67
  return addressString;
67
68
  };
68
69
 
69
70
  const getDataPriceItem = (value: number, label: string): {value: string, label: string} | [] => {
70
71
  if (!!value && value !== 0) {
71
- return { value: getFormattedPrice(value, '$,.2f', ' €'), label };
72
+ return { label, value: getFormattedPrice(value, '$,.2f', ' €') };
72
73
  }
73
- }
74
+ };
74
75
 
75
76
  const renderRequestedCars = () => {
76
77
  return (
@@ -78,7 +79,7 @@ const OrderStatusSection = ({
78
79
  {!!orderedCars && orderedCars.map((orderedCar: any, index: number) => {
79
80
  const { car: { _id } } = orderedCar;
80
81
  const { car: { mainData: { make, model, subModel } } } = orderedCar;
81
- const { car: { metaData: { mainImageId } }} = orderedCar;
82
+ const { car: { metaData: { mainImageId } } } = orderedCar;
82
83
  const {
83
84
  buyingType,
84
85
  selfPickup,
@@ -110,11 +111,11 @@ const OrderStatusSection = ({
110
111
  ...transportationCost ? [getDataPriceItem(transportationCost, t('MyOrderPage:delivery'))] : [],
111
112
  ...buyingType !== 'buy' ? [
112
113
  ...monthlyInstallment ? [
113
- {
114
+ {
114
115
  label: t(`MyOrderPage:${buyingType}Rate`),
115
116
  value: t('MyOrderPage:monthlyInstallment', { monthlyInstallment: getFormattedPrice(monthlyInstallment, '$,.2f', '', '€') })
116
117
  }] : [],
117
- ...paybackPeriod ? [{ label: t('MyOrderPage:runningTime'), value: t('MyOrderPage:paybackPeriod', { paybackPeriod })}] : [],
118
+ ...paybackPeriod ? [{ label: t('MyOrderPage:runningTime'), value: t('MyOrderPage:paybackPeriod', { paybackPeriod }) }] : [],
118
119
  ...deposit ? [getDataPriceItem(deposit, t('MyOrderPage:deposit'))] : []
119
120
  ] : []
120
121
  ],
@@ -168,7 +169,7 @@ const OrderStatusSection = ({
168
169
 
169
170
  return (
170
171
  <>
171
- {isFetching ?
172
+ {isFetching ?
172
173
  <div className={styles.skeletonBlock}>
173
174
  <Skeleton animation='wave' variant='rectangular' width='100%' />
174
175
  </div>
@@ -11,7 +11,7 @@ import { getFormattedPrice } from '../../../../framework/utils/CommonUtils';
11
11
  import Button from '../../../_common/Button/Button';
12
12
 
13
13
  // tslint:disable-next-line:interface-name
14
- interface TFunction {
14
+ interface ITFunction {
15
15
  <T = string>(key: string, options?: object): T;
16
16
  <T = string>(keys: string[], options?: object): T;
17
17
  }
@@ -20,7 +20,7 @@ interface IRequestedCarsSection {
20
20
  redirectToCar: (id: string) => void;
21
21
  getSupportedImageFormat: (id: string, mainImageId: string, size: 'small' | 'medium' | 'large') => string;
22
22
  requestedCars: any[];
23
- t: TFunction;
23
+ t: ITFunction;
24
24
  LinkRouter:any;
25
25
  // initHotjar:() => void;
26
26
  }
@@ -21,7 +21,7 @@ interface IFormCheckboxState {
21
21
  checked?: boolean;
22
22
  error?: boolean;
23
23
  disabled?: boolean
24
- }
24
+ };
25
25
  }
26
26
 
27
27
  class FormCheckbox extends React.Component<IFormCheckboxProps, IFormCheckboxState> {
@@ -68,11 +68,11 @@ class FormCheckbox extends React.Component<IFormCheckboxProps, IFormCheckboxStat
68
68
  checked,
69
69
  name,
70
70
  disabled,
71
- onChange: this.handleChange,
72
- error: customError,
73
71
  label,
74
72
  checkboxClassName,
75
- labelClassName
73
+ labelClassName,
74
+ onChange: this.handleChange,
75
+ error: customError
76
76
  };
77
77
 
78
78
  return (
@@ -3,7 +3,6 @@ import useModal from '../../../framework/hooks/useModal';
3
3
  import { updateCookieList } from '../../../framework/utils/CommonUtils';
4
4
  import Modal from './Modal';
5
5
 
6
-
7
6
  export interface ICookieModal {
8
7
  handleSentryInit?: () => void;
9
8
  }
@@ -43,9 +42,8 @@ const CookieModal = ({ handleSentryInit }: ICookieModal) => {
43
42
  : <></>;
44
43
  };
45
44
 
46
-
47
45
  CookieModal.defaultProps = {
48
- handleSentryInit: () => {},
46
+ handleSentryInit: () => {}
49
47
  };
50
48
 
51
49
  export default CookieModal;
@@ -4,11 +4,11 @@ import TestModal from './modals/TestModal';
4
4
  import PreviewCookieModal from './modals/PreviewCookieModal/PreviewCookieModal';
5
5
  import ManageCookieModal from './modals/ManageCookieModal/ManageCookieModal';
6
6
 
7
- interface ModalConfigProps {
8
- [key: string]: (props: any) => JSX.Element;
7
+ interface IModalConfigProps {
8
+ [key: string]: (props: any) => JSX.Element;
9
9
  }
10
10
 
11
- const ModalsConfig: ModalConfigProps = {
11
+ const ModalsConfig: IModalConfigProps = {
12
12
  TEST_MODAL: (props: any) => {
13
13
  return <TestModal { ...props } />;
14
14
  },
@@ -23,11 +23,11 @@ const PreviewCookieModal = ({ toggleModal, setModal, handleSentryInit } : IPrevi
23
23
  <IconSVG name='autodeLogo' customDimensions />
24
24
  <div className={styles.modalTitle}>Nach den Cookies geht die Fahrt weiter.</div>
25
25
  <div className={styles.modalContent}>
26
- Wenn Sie auf "Zustimmen" klicken, ermöglichen Sie uns über Cookies das Nutzerverhalten
27
- für alle User zu optimieren und Ihnen individuelle Empfehlungen auch auf Drittseiten anzuzeigen.
28
- Durch die Zustimmung erteilen Sie uns Ihre ausdrückliche Einwilligung.
29
- Über "Anpassen" können Sie Ihre Einwilligungen individuell anpassen.
30
- Dies ist auch später jederzeit im Bereich "Cookie-Richtlinie" möglich.
26
+ Wenn Sie auf "Zustimmen" klicken, ermöglichen Sie uns über Cookies das Nutzerverhalten
27
+ für alle User zu optimieren und Ihnen individuelle Empfehlungen auch auf Drittseiten anzuzeigen.
28
+ Durch die Zustimmung erteilen Sie uns Ihre ausdrückliche Einwilligung.
29
+ Über "Anpassen" können Sie Ihre Einwilligungen individuell anpassen.
30
+ Dies ist auch später jederzeit im Bereich "Cookie-Richtlinie" möglich.
31
31
  Die relevante Datenschutzerklärung finden Sie&nbsp;
32
32
  <a href={`${environment}/datenschutz/`} target='_blank' style={{ textDecoration: 'underline', color: 'rgba(76,78,100,0.87)' }}>hier</a>.
33
33
  <a href={`${environment}/impressum/`} target='_blank' className={styles.outlinedBtnLeft}>Impressum</a>
@@ -24,7 +24,7 @@ const ListItem = ({ icon, label, amount, divider, onClick, href, isComponent, Li
24
24
  const onMenuItemClick = (e: React.MouseEvent<HTMLLIElement>) => {
25
25
  onClick(e);
26
26
  handleClose();
27
- }
27
+ };
28
28
 
29
29
  return !!href ? (
30
30
  <Link color='#4C4E64DE' variant='caption' to={href} underline='none' onClick={onClick}>
@@ -423,5 +423,5 @@ export default React.memo(FiltersContainer, (props, nextProps) => {
423
423
  return t === nextProps.t &&
424
424
  location.search === nextProps.location.search &&
425
425
  isEqual(aggregation, nextProps.aggregation) &&
426
- isEqual(filters.MMS_GROUPS, nextProps.filters.MMS_GROUPS)
427
- });
426
+ isEqual(filters.MMS_GROUPS, nextProps.filters.MMS_GROUPS);
427
+ });
@@ -343,7 +343,7 @@ export interface IVehicleCompareProps {
343
343
  onRemoveClick: () => void;
344
344
  }
345
345
 
346
- export interface TFunction {
346
+ export interface ITFunction {
347
347
  <T = string>(key: string, options?: object): T;
348
348
  <T = string>(keys: string[], options?: object): T;
349
- }
349
+ }
@@ -567,12 +567,17 @@ export const updateCookieList = (handleSentryInit: () => void) => {
567
567
  cookieConsentList = cookieConsentList.filter(i => i !== cookie); // deny google cookie consent for _gcl_au, _ga, _gid, _gat_UA-31842-13, etc
568
568
 
569
569
  isHomeGoogleGranted = false;
570
+ } else if (cookie === 'hotjar') {
571
+ isHotjarGranted = false;
572
+ } else if (cookie === '_uetvid' || cookie === '_uetsid') {
573
+ isMicrosoftGranted = false;
574
+ } else if (cookie === '_clck' || cookie === '_clsk') {
575
+ isMicrosoftClarity = false;
576
+ } else if (cookie === '_fbp') {
577
+ isFacebookGranted = false;
578
+ } else if (cookie === 'sentry') {
579
+ isSentryGranted = false;
570
580
  }
571
- else if (cookie === 'hotjar') isHotjarGranted = false;
572
- else if (cookie === '_uetvid' || cookie === '_uetsid') isMicrosoftGranted = false;
573
- else if (cookie === '_clck' || cookie === '_clsk') isMicrosoftClarity = false;
574
- else if (cookie === '_fbp') isFacebookGranted = false;
575
- else if (cookie === 'sentry') isSentryGranted = false;
576
581
  });
577
582
  });
578
583
 
@@ -11,7 +11,7 @@ export const timestampToDate = (timestamp: number) => {
11
11
  const date = new Date(timestamp * 1000);
12
12
  const year = date.getFullYear();
13
13
  const month = date.getMonth() + 1;
14
- const monthFormatted = month < 10 ? '0' + month : month;
14
+ const monthFormatted = month < 10 ? `0${month}` : month;
15
15
  return (`${monthFormatted}/${year}`);
16
16
  };
17
17
 
package/tslint.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "match-default-export-name": false,
14
14
  "import-name": false,
15
15
  "no-boolean-literal-compare": false,
16
- "max-line-length": [true, 200],
16
+ "max-line-length": [false],
17
17
  "semicolon": [true, "always", "ignore-bound-class-methods"],
18
18
  "variable-name": [true, "allow-pascal-case", "allow-leading-underscore", "allow-trailing-underscore"],
19
19
  "trailing-comma": [true, {"multiline": "never", "singleline": "never"}],
@@ -32,7 +32,6 @@
32
32
  "interface-name": [true, "always-prefix"],
33
33
  "class-name": true,
34
34
  "prefer-function-over-method": false,
35
- "prefer-switch": [true, {"min-cases": 2}],
36
35
  "switch-final-break": true
37
36
  },
38
37
  "rulesDirectory": []