@centreon/ui 23.10.1-MON-23386-Improve-filters.0 → 23.10.1-MON-integrate-cypress-code-coverage.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/package.json +14 -12
  2. package/src/Button/Save/StartIcon.tsx +3 -3
  3. package/src/Dashboard/Dashboard.styles.ts +1 -7
  4. package/src/Dashboard/Item.tsx +7 -7
  5. package/src/Dashboard/Layout.tsx +2 -2
  6. package/src/FileDropZone/index.tsx +3 -1
  7. package/src/Form/Inputs/CheckboxGroup.tsx +1 -4
  8. package/src/Form/Inputs/index.tsx +1 -1
  9. package/src/Graph/Gauge/Gauge.stories.tsx +15 -1
  10. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +2 -2
  11. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/index.tsx +5 -4
  12. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +2 -2
  13. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +1 -1
  14. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +2 -2
  15. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/index.tsx +2 -3
  16. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +1 -1
  17. package/src/Graph/LineChart/Legend/useLegend.ts +5 -5
  18. package/src/Graph/LineChart/helpers/doc.ts +16 -13
  19. package/src/Graph/LineChart/helpers/index.ts +1 -1
  20. package/src/Graph/LineChart/index.stories.tsx +1 -2
  21. package/src/Graph/SingleBar/Thresholds.tsx +2 -2
  22. package/src/Graph/Text/Text.stories.tsx +60 -4
  23. package/src/Graph/common/timeSeries/index.ts +3 -3
  24. package/src/InputField/Select/Autocomplete/Connected/index.tsx +10 -7
  25. package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
  26. package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +1 -1
  27. package/src/InputField/Select/Autocomplete/Draggable/index.tsx +1 -1
  28. package/src/InputField/Select/Autocomplete/Multi/index.tsx +18 -21
  29. package/src/InputField/Select/IconPopover/index.tsx +2 -2
  30. package/src/InputField/Select/index.tsx +1 -1
  31. package/src/Listing/Header/ListingHeader.tsx +1 -1
  32. package/src/Listing/index.tsx +1 -1
  33. package/src/RichTextEditor/RichTextEditor.tsx +12 -4
  34. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +4 -6
  35. package/src/SortableItems/index.tsx +2 -7
  36. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +8 -3
  37. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -2
  38. package/src/TimePeriods/DateTimePickerInput.tsx +45 -17
  39. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +9 -33
  40. package/src/TimePeriods/helpers/index.ts +1 -1
  41. package/src/TimePeriods/index.tsx +2 -2
  42. package/src/Wizard/index.tsx +2 -5
  43. package/src/Wizard/models.ts +0 -1
  44. package/src/api/QueryProvider.tsx +1 -1
  45. package/src/api/TestQueryProvider.tsx +1 -1
  46. package/src/api/useFetchQuery/index.ts +28 -24
  47. package/src/api/useMutationQuery/index.ts +39 -17
  48. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +1 -1
  49. package/src/components/Form/Dashboard/DashboardForm.tsx +15 -12
  50. package/src/index.ts +1 -0
  51. package/src/queryParameters/url/index.ts +5 -1
  52. package/src/utils/index.ts +0 -1
  53. package/src/utils/{useLicenseExpirationWarning.cypress.spec.tsx → useLicenseExpirationWarning.test.tsx} +48 -37
  54. package/src/utils/useLicenseExpirationWarning.ts +18 -18
  55. package/src/utils/useDateTimePickerAdapter.ts +0 -309
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@centreon/ui",
3
- "version": "23.10.1-MON-23386-Improve-filters.0",
3
+ "version": "23.10.1-MON-integrate-cypress-code-coverage.0",
4
4
  "description": "Centreon UI Components",
5
5
  "scripts": {
6
6
  "eslint": "eslint ./src --ext .js,.jsx,.ts,.tsx --max-warnings 0",
@@ -73,13 +73,13 @@
73
73
  "@testing-library/react-hooks": "^8.0.1",
74
74
  "@types/cypress": "^1.1.3",
75
75
  "@types/jest": "^27.5.0",
76
- "@types/ramda": "^0.28.12",
76
+ "@types/ramda": "^0.29.6",
77
77
  "@types/react": "^18.0.26",
78
78
  "@types/testing-library__jest-dom": "^5.14.6",
79
79
  "@vitejs/plugin-react": "^4.0.0",
80
80
  "@vitejs/plugin-react-swc": "^3.3.0",
81
81
  "axios-mock-adapter": "^1.21.4",
82
- "cypress": "^12.8.0",
82
+ "cypress": "^13.3.1",
83
83
  "identity-obj-proxy": "^3.0.0",
84
84
  "jest-transform-stub": "^2.0.0",
85
85
  "mochawesome": "^7.1.3",
@@ -101,12 +101,13 @@
101
101
  "vite-plugin-turbosnap": "^1.0.2"
102
102
  },
103
103
  "dependencies": {
104
- "@lexical/link": "0.11.3",
105
- "@lexical/list": "^0.11.3",
106
- "@lexical/react": "0.11.3",
107
- "@lexical/rich-text": "^0.11.3",
108
- "@lexical/selection": "0.11.3",
109
- "@lexical/utils": "0.11.3",
104
+ "@lexical/html": "^0.12.2",
105
+ "@lexical/link": "^0.12.2",
106
+ "@lexical/list": "^0.12.2",
107
+ "@lexical/react": "^0.12.2",
108
+ "@lexical/rich-text": "^0.12.2",
109
+ "@lexical/selection": "^0.12.2",
110
+ "@lexical/utils": "^0.12.2",
110
111
  "@react-spring/web": "9.6.0",
111
112
  "@visx/curve": "^2.1.0",
112
113
  "@visx/group": "^3.3.0",
@@ -118,8 +119,9 @@
118
119
  "anylogger": "^1.0.11",
119
120
  "d3-array": "3.2.0",
120
121
  "humanize-duration": "^3.27.3",
121
- "lexical": "0.11.3",
122
- "notistack": "^2.0.8",
122
+ "lexical": "^0.12.2",
123
+ "notistack": "^3.0.1",
124
+ "ramda": "0.29.1",
123
125
  "react-grid-layout": "^1.3.4",
124
126
  "react-html-parser": "^2.0.2",
125
127
  "react-resizable": "^3.0.5",
@@ -135,7 +137,7 @@
135
137
  "@mui/icons-material": "5.x",
136
138
  "@mui/material": "5.x",
137
139
  "@mui/styles": "5.x",
138
- "@tanstack/react-query": "4.x",
140
+ "@tanstack/react-query": "5.x",
139
141
  "axios": "0.x",
140
142
  "dayjs": "1.x",
141
143
  "formik": "2.x",
@@ -15,9 +15,9 @@ interface Props {
15
15
 
16
16
  const StartIcon = ({ startIconConfig }: Props): JSX.Element | null =>
17
17
  cond<Array<StartIconConfigProps>, JSX.Element | null>([
18
- [pipe(propEq('hasLabel', true), not), always(null)],
19
- [propEq('succeeded', true), always(<CheckIcon />)],
20
- [propEq('loading', true), always(<SaveIcon />)],
18
+ [pipe(propEq(true, 'hasLabel'), not), always(null)],
19
+ [propEq(true, 'succeeded'), always(<CheckIcon />)],
20
+ [propEq(true, 'loading'), always(<SaveIcon />)],
21
21
  [T, always(<SaveIcon />)]
22
22
  ])(startIconConfig);
23
23
 
@@ -92,13 +92,7 @@ export const useDashboardItemStyles = makeStyles<{ hasHeader: boolean }>()(
92
92
  '&[data-canMove="true"]': {
93
93
  cursor: 'move'
94
94
  },
95
- padding: theme.spacing(0.5, 2),
96
- position: 'relative'
97
- },
98
- widgetHeaderDraggable: {
99
- height: '100%',
100
- position: 'absolute',
101
- width: '100%'
95
+ padding: theme.spacing(0.5, 2)
102
96
  },
103
97
  widgetPadding: {
104
98
  overflowX: 'auto',
@@ -27,7 +27,7 @@ interface DashboardItemProps {
27
27
  style?: CSSProperties;
28
28
  }
29
29
 
30
- const Item = forwardRef(
30
+ const Item = forwardRef<HTMLDivElement, DashboardItemProps>(
31
31
  (
32
32
  {
33
33
  children,
@@ -72,12 +72,12 @@ const Item = forwardRef(
72
72
  data-padding={!disablePadding}
73
73
  >
74
74
  {header && (
75
- <div className={classes.widgetHeader} data-canMove={canMove}>
76
- <div
77
- {...listeners}
78
- className={classes.widgetHeaderDraggable}
79
- data-testid={`${id}_move_panel`}
80
- />
75
+ <div
76
+ {...listeners}
77
+ className={classes.widgetHeader}
78
+ data-canMove={canMove}
79
+ data-testid={`${id}_move_panel`}
80
+ >
81
81
  {header}
82
82
  </div>
83
83
  )}
@@ -23,7 +23,7 @@ interface DashboardLayoutProps<T> {
23
23
  layout: Array<T>;
24
24
  }
25
25
 
26
- const Layout = <T extends Layout>({
26
+ const DashboardLayout = <T extends Layout>({
27
27
  children,
28
28
  changeLayout,
29
29
  displayGrid,
@@ -76,4 +76,4 @@ const Layout = <T extends Layout>({
76
76
  });
77
77
  };
78
78
 
79
- export default Layout;
79
+ export default DashboardLayout;
@@ -98,7 +98,9 @@ const getExtensions = cond([
98
98
  [T, identity]
99
99
  ]) as (accept: string) => Array<string>;
100
100
 
101
- export const transformFileListToArray = (files: FileList | null): Array<File> =>
101
+ export const transformFileListToArray = (
102
+ files: FileList | null
103
+ ): Array<File> =>
102
104
  isNil(files)
103
105
  ? []
104
106
  : (Array(files.length)
@@ -46,10 +46,7 @@ const CheckboxGroup = ({
46
46
  return;
47
47
  }
48
48
 
49
- setFieldValue(
50
- fieldName,
51
- value?.filter((elm) => !equals(elm, label))
52
- );
49
+ setFieldValue(fieldName, value?.filter((elm) => !equals(elm, label)));
53
50
  };
54
51
 
55
52
  return useMemoComponent({
@@ -185,7 +185,7 @@ const Inputs = ({
185
185
  const hasGroupTitle = R.not(R.isNil(groupName));
186
186
 
187
187
  const groupProps = hasGroupTitle
188
- ? R.find(R.propEq('name', groupName), groups)
188
+ ? R.find(R.propEq(groupName, 'name'), groups)
189
189
  : ({} as Group);
190
190
 
191
191
  const isFirstElement = areGroupsOpen || R.equals(index, 0);
@@ -140,7 +140,21 @@ export const RawValue: Story = {
140
140
  data: dataLastWeek,
141
141
  displayAsRaw: true,
142
142
  thresholdTooltipLabels: ['Warning', 'Critical'],
143
- thresholds: [0.5, 0.6]
143
+ thresholds: {
144
+ critical: [
145
+ {
146
+ label: 'Critical',
147
+ value: 0.6
148
+ }
149
+ ],
150
+ enabled: true,
151
+ warning: [
152
+ {
153
+ label: 'Warning',
154
+ value: 0.5
155
+ }
156
+ ]
157
+ }
144
158
  },
145
159
  render: Template
146
160
  };
@@ -1,7 +1,7 @@
1
1
  import { Shape } from '@visx/visx';
2
2
  import { isEmpty, isNil } from 'ramda';
3
3
 
4
- import { Circle } from './models';
4
+ import { Circle as CircleModel } from './models';
5
5
  import useCoordinateCircle from './useCoordinateCircle';
6
6
 
7
7
  const Circle = ({
@@ -11,7 +11,7 @@ const Circle = ({
11
11
  timeSeries,
12
12
  getX,
13
13
  getCountDisplayedCircles
14
- }: Circle): JSX.Element | null => {
14
+ }: CircleModel): JSX.Element | null => {
15
15
  const coordinates = useCoordinateCircle({
16
16
  getCountDisplayedCircles,
17
17
  getX,
@@ -130,10 +130,11 @@ const WrapperThresholdLines = ({
130
130
 
131
131
  return (
132
132
  <g>
133
- {filteredThresholdLines.map((element) =>
134
- element?.map(({ Component, props, key }) => (
135
- <Component {...props} id={key} key={key} />
136
- ))
133
+ {filteredThresholdLines.map(
134
+ (element) =>
135
+ element?.map(({ Component, props, key }) => (
136
+ <Component {...props} id={key} key={key} />
137
+ ))
137
138
  )}
138
139
  </g>
139
140
  );
@@ -2,7 +2,7 @@ import { equals, isNil } from 'ramda';
2
2
 
3
3
  import { getUnits, getYScale } from '../../common/timeSeries';
4
4
  import { Line } from '../../common/timeSeries/models';
5
- import { Thresholds } from '../../common/models';
5
+ import { Thresholds as ThresholdsModel } from '../../common/models';
6
6
 
7
7
  import { ThresholdLine } from './ThresholdLine';
8
8
 
@@ -13,7 +13,7 @@ interface Props {
13
13
  rightScale: (value: number) => number;
14
14
  showTooltip: (props) => void;
15
15
  thresholdUnit?: string;
16
- thresholds: Thresholds;
16
+ thresholds: ThresholdsModel;
17
17
  width: number;
18
18
  }
19
19
 
@@ -28,7 +28,7 @@ const useFilterLines = ({
28
28
  linesGraph,
29
29
  setLinesGraph
30
30
  }: UseFilterLines): Result => {
31
- const displayedLines = reject(propEq('display', false), linesGraph ?? lines);
31
+ const displayedLines = reject(propEq(false, 'display'), linesGraph ?? lines);
32
32
  const filterLines = (): Array<Line> => {
33
33
  const lineOriginMetric = findLineOfOriginMetricThreshold(lines);
34
34
 
@@ -2,7 +2,7 @@ import { Shape } from '@visx/visx';
2
2
 
3
3
  import { grey } from '@mui/material/colors';
4
4
 
5
- import { GuidingLines } from './models';
5
+ import { GuidingLines as GuidingLinesModel } from './models';
6
6
  import useTickGraph from './useTickGraph';
7
7
 
8
8
  const GuidingLines = ({
@@ -10,7 +10,7 @@ const GuidingLines = ({
10
10
  xScale,
11
11
  graphHeight,
12
12
  graphWidth
13
- }: GuidingLines): JSX.Element | null => {
13
+ }: GuidingLinesModel): JSX.Element | null => {
14
14
  const { positionX, positionY } = useTickGraph({
15
15
  timeSeries,
16
16
  xScale
@@ -43,9 +43,8 @@ const Annotation = ({
43
43
 
44
44
  const setAnnotationHovered = useSetAtom(annotationHoveredAtom);
45
45
 
46
- const content = `${truncate(event.content)} (${t(labelBy)} ${
47
- event.contact?.name
48
- })`;
46
+ const content = `${truncate(event.content)} (${t(labelBy)} ${event.contact
47
+ ?.name})`;
49
48
 
50
49
  return (
51
50
  <g>
@@ -26,7 +26,7 @@ const EventAnnotations = ({
26
26
  color,
27
27
  annotationHoveredId
28
28
  }: Props): JSX.Element => {
29
- const events = filter(propEq('type', type), data);
29
+ const events = filter(propEq(type, 'type'), data);
30
30
 
31
31
  return (
32
32
  <>
@@ -27,15 +27,15 @@ interface Props {
27
27
  }
28
28
 
29
29
  const useLegend = ({ lines, setLinesGraph }: Props): LegendActions => {
30
- const displayedLines = reject(propEq('display', false), lines);
30
+ const displayedLines = reject(propEq(false, 'display'), lines);
31
31
  const getLineByMetric = (metric_id: number): Line =>
32
- find(propEq('metric_id', metric_id), lines) as Line;
32
+ find(propEq(metric_id, 'metric_id'), lines) as Line;
33
33
 
34
34
  const toggleMetricLine = (metric_id): void => {
35
35
  const line = getLineByMetric(metric_id);
36
36
 
37
37
  setLinesGraph([
38
- ...reject(propEq('metric_id', metric_id), lines),
38
+ ...reject(propEq(metric_id, 'metric_id'), lines),
39
39
  { ...line, display: !line.display }
40
40
  ]);
41
41
  };
@@ -43,7 +43,7 @@ const useLegend = ({ lines, setLinesGraph }: Props): LegendActions => {
43
43
  const highlightLine = (metric_id): void => {
44
44
  const fadedLines = map((line) => ({ ...line, highlight: false }), lines);
45
45
  const data = [
46
- ...reject(propEq('metric_id', metric_id), fadedLines),
46
+ ...reject(propEq(metric_id, 'metric_id'), fadedLines),
47
47
  { ...getLineByMetric(metric_id), highlight: true }
48
48
  ];
49
49
 
@@ -93,7 +93,7 @@ const useLegend = ({ lines, setLinesGraph }: Props): LegendActions => {
93
93
 
94
94
  const newLines = lines.map((line) => ({
95
95
  ...line,
96
- display: find(propEq('metric_id', line.metric_id), lines)?.display ?? true
96
+ display: find(propEq(line.metric_id, 'metric_id'), lines)?.display ?? true
97
97
  }));
98
98
 
99
99
  setLinesGraph(newLines);
@@ -69,21 +69,24 @@ export const getDescription = ({ sections }: Description): string => {
69
69
  })}<br></details>`;
70
70
  }
71
71
 
72
- const formattedProps = props.reduce((accumulator, currentValue, index) => {
73
- const key = Object.keys(currentValue)[0];
74
- const { description, type } = currentValue[key];
75
- const body = `${accumulator} ${getBodyDescription({
76
- description,
77
- key,
78
- type
79
- })}`;
72
+ const formattedProps = props.reduce(
73
+ (accumulator, currentValue, index) => {
74
+ const key = Object.keys(currentValue)[0];
75
+ const { description, type } = currentValue[key];
76
+ const body = `${accumulator} ${getBodyDescription({
77
+ description,
78
+ key,
79
+ type
80
+ })}`;
80
81
 
81
- if (!equals(index, props.length - 1)) {
82
- return body;
83
- }
82
+ if (!equals(index, props.length - 1)) {
83
+ return body;
84
+ }
84
85
 
85
- return `${body}</details>`;
86
- }, getInitialValue({ section: name, type: item?.type }));
86
+ return `${body}</details>`;
87
+ },
88
+ getInitialValue({ section: name, type: item?.type })
89
+ );
87
90
 
88
91
  return formattedProps as string;
89
92
  });
@@ -14,7 +14,7 @@ import { LineChartData } from '../../common/models';
14
14
  export const adjustGraphData = (graphData: LineChartData): LinesData => {
15
15
  const lines = getLineData(graphData);
16
16
  const sortedLines = sortBy(prop('name'), lines);
17
- const displayedLines = reject(propEq('display', false), sortedLines);
17
+ const displayedLines = reject(propEq(false, 'display'), sortedLines);
18
18
 
19
19
  const timeSeries = getTimeSeries(graphData);
20
20
 
@@ -39,8 +39,7 @@ import { Interval, ThresholdType, TooltipData } from './models';
39
39
  import WrapperLineChart from './index';
40
40
 
41
41
  const meta: Meta<typeof WrapperLineChart> = {
42
- component: WrapperLineChart,
43
- tags: ['autodocs']
42
+ component: WrapperLineChart
44
43
  };
45
44
  export default meta;
46
45
 
@@ -1,4 +1,4 @@
1
- import { Thresholds } from '../common/models';
1
+ import { Thresholds as ThresholdsModel } from '../common/models';
2
2
 
3
3
  import { ThresholdLine } from './ThresholdLine';
4
4
 
@@ -8,7 +8,7 @@ interface Props {
8
8
  hideTooltip: () => void;
9
9
  showTooltip: (args) => void;
10
10
  size: 'small' | 'medium';
11
- thresholds: Thresholds;
11
+ thresholds: ThresholdsModel;
12
12
  xScale: (value: number) => number;
13
13
  }
14
14
 
@@ -24,7 +24,21 @@ export const success: Story = {
24
24
  critical: 'Critical',
25
25
  warning: 'Warning'
26
26
  },
27
- thresholds: [0.5, 1.5]
27
+ thresholds: {
28
+ critical: [
29
+ {
30
+ label: 'Critical',
31
+ value: 1.5
32
+ }
33
+ ],
34
+ enabled: true,
35
+ warning: [
36
+ {
37
+ label: 'Warning',
38
+ value: 0.5
39
+ }
40
+ ]
41
+ }
28
42
  },
29
43
  render: Template
30
44
  };
@@ -36,7 +50,21 @@ export const warning: Story = {
36
50
  critical: 'Critical',
37
51
  warning: 'Warning'
38
52
  },
39
- thresholds: [0.2, 0.5]
53
+ thresholds: {
54
+ critical: [
55
+ {
56
+ label: 'Critical',
57
+ value: 1.5
58
+ }
59
+ ],
60
+ enabled: true,
61
+ warning: [
62
+ {
63
+ label: 'Warning',
64
+ value: 0.4
65
+ }
66
+ ]
67
+ }
40
68
  },
41
69
  render: Template
42
70
  };
@@ -48,7 +76,21 @@ export const critical: Story = {
48
76
  critical: 'Critical',
49
77
  warning: 'Warning'
50
78
  },
51
- thresholds: [0.13, 0.35]
79
+ thresholds: {
80
+ critical: [
81
+ {
82
+ label: 'Critical',
83
+ value: 0.3
84
+ }
85
+ ],
86
+ enabled: true,
87
+ warning: [
88
+ {
89
+ label: 'Warning',
90
+ value: 0.2
91
+ }
92
+ ]
93
+ }
52
94
  },
53
95
  render: Template
54
96
  };
@@ -61,7 +103,21 @@ export const rawValue: Story = {
61
103
  critical: 'Critical',
62
104
  warning: 'Warning'
63
105
  },
64
- thresholds: [0.5, 1.5]
106
+ thresholds: {
107
+ critical: [
108
+ {
109
+ label: 'Critical',
110
+ value: 1.5
111
+ }
112
+ ],
113
+ enabled: true,
114
+ warning: [
115
+ {
116
+ label: 'Warning',
117
+ value: 0.5
118
+ }
119
+ ]
120
+ }
65
121
  },
66
122
  render: Template
67
123
  };
@@ -179,7 +179,7 @@ const getMetricValuesForUnit = ({
179
179
  ) as Array<number>;
180
180
 
181
181
  return pipe(
182
- filter(propEq('unit', unit)) as (line) => Array<Line>,
182
+ filter(propEq(unit, 'unit')) as (line) => Array<Line>,
183
183
  map(prop('metric_id')),
184
184
  map(getTimeSeriesValuesForMetric),
185
185
  flatten,
@@ -203,7 +203,7 @@ const getLineForMetric = ({
203
203
  lines,
204
204
  metric_id
205
205
  }: LineForMetricProps): Line | undefined =>
206
- find(propEq('metric_id', metric_id), lines);
206
+ find(propEq(metric_id, 'metric_id'), lines);
207
207
 
208
208
  interface LinesTimeSeries {
209
209
  lines: Array<Line>;
@@ -275,7 +275,7 @@ interface HasStackedLines {
275
275
  }
276
276
 
277
277
  const hasUnitStackedLines = ({ lines, unit }: HasStackedLines): boolean =>
278
- pipe(getSortedStackedLines, any(propEq('unit', unit)))(lines);
278
+ pipe(getSortedStackedLines, any(propEq(unit, 'unit')))(lines);
279
279
 
280
280
  const getTimeSeriesForLines = ({
281
281
  lines,
@@ -280,13 +280,16 @@ const ConnectedAutocompleteField = (
280
280
  }
281
281
  }, [optionsOpen]);
282
282
 
283
- useEffect(() => {
284
- setSearchParameter(
285
- !isEmpty(searchConditions)
286
- ? { conditions: searchConditions }
287
- : undefined
288
- );
289
- }, useDeepCompare([searchConditions]));
283
+ useEffect(
284
+ () => {
285
+ setSearchParameter(
286
+ !isEmpty(searchConditions)
287
+ ? { conditions: searchConditions }
288
+ : undefined
289
+ );
290
+ },
291
+ useDeepCompare([searchConditions])
292
+ );
290
293
 
291
294
  useEffect(() => {
292
295
  if (!autocompleteChangedValue && !props?.value) {
@@ -49,7 +49,7 @@ const SortableList = ({
49
49
  const dragEnd = ({ items: newItems }): void =>
50
50
  changeItemsOrder(
51
51
  map(
52
- (item) => find(propEq('id', item), items),
52
+ (item) => find(propEq(item, 'id'), items),
53
53
  newItems
54
54
  ) as Array<DraggableSelectEntry>
55
55
  );
@@ -49,7 +49,7 @@ const SortableListContent = ({
49
49
  return;
50
50
  }
51
51
 
52
- const itemIndex = findIndex(propEq('id', id), items);
52
+ const itemIndex = findIndex(propEq(id, 'id'), items);
53
53
 
54
54
  itemHover?.(null);
55
55
  itemClick?.({ index: itemIndex, item: { createOption, id, name } });
@@ -77,7 +77,7 @@ const DraggableAutocomplete = (
77
77
  const deleteValue = (id): void => {
78
78
  itemHover?.(null);
79
79
  setSelectedValues((values: Array<DraggableSelectEntry>) => {
80
- const index = findIndex(propEq('id', id), values);
80
+ const index = findIndex(propEq(id, 'id'), values);
81
81
 
82
82
  const newSelectedValues = remove(index, 1, values);
83
83
 
@@ -53,27 +53,24 @@ const MultiAutocompleteField = ({
53
53
  const { classes } = useStyles();
54
54
 
55
55
  const renderTags = (renderedValue, getTagProps): Array<JSX.Element> =>
56
- renderedValue.map((option, index) => {
57
- return (
58
- <Tooltip
59
- key={option.id}
60
- placement="top"
61
- title={getOptionTooltipLabel?.(option)}
62
- >
63
- <Chip
64
- classes={{
65
- deleteIcon: classes.deleteIcon,
66
- root: classes.tag
67
- }}
68
- label={getTagLabel(option)}
69
- size="medium"
70
- {...getTagProps({ index })}
71
- {...chipProps}
72
- onDelete={(event) => chipProps?.onDelete?.(event, option)}
73
- />
74
- </Tooltip>
75
- );
76
- });
56
+ renderedValue.map((option, index) => (
57
+ <Tooltip
58
+ key={option.id}
59
+ placement="top"
60
+ title={getOptionTooltipLabel?.(option)}
61
+ >
62
+ <Chip
63
+ classes={{
64
+ deleteIcon: classes.deleteIcon,
65
+ root: classes.tag
66
+ }}
67
+ label={getTagLabel(option)}
68
+ size="medium"
69
+ {...getTagProps({ index })}
70
+ {...chipProps}
71
+ />
72
+ </Tooltip>
73
+ ));
77
74
 
78
75
  const getLimitTagsText = (more): JSX.Element => <Option>{`+${more}`}</Option>;
79
76
 
@@ -73,14 +73,14 @@ const IconPopoverMultiAutocomplete = ({
73
73
  };
74
74
 
75
75
  const isSelected = (id: number | string): boolean => {
76
- return pipe(find(propEq('id', id)), Boolean)(value);
76
+ return pipe(find(propEq(id, 'id')), Boolean)(value);
77
77
  };
78
78
 
79
79
  const unSelect = (option: SelectEntry): void => {
80
80
  const { id } = option;
81
81
 
82
82
  const updatedValue = isSelected(id)
83
- ? reject(propEq('id', id), value)
83
+ ? reject(propEq(id, 'id'), value)
84
84
  : [...value, option];
85
85
 
86
86
  onChange(updatedValue);