@gridsuite/commons-ui 0.138.0 → 0.140.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 (66) hide show
  1. package/dist/components/cardErrorBoundary/CardErrorBoundary.d.ts +1 -1
  2. package/dist/components/csvDownloader/csv-export.d.ts +1 -1
  3. package/dist/components/csvDownloader/csv-export.js +5 -14
  4. package/dist/components/csvDownloader/csv-export.type.d.ts +1 -1
  5. package/dist/components/csvDownloader/use-csv-export.d.ts +1 -1
  6. package/dist/components/csvDownloader/use-csv-export.js +11 -11
  7. package/dist/components/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js +2 -6
  8. package/dist/components/directoryItemSelector/DirectoryItemSelector.js +2 -4
  9. package/dist/components/elementSearch/hooks/useElementSearch.js +2 -4
  10. package/dist/components/filter/FilterCreationDialog.js +5 -17
  11. package/dist/components/filter/FilterForm.d.ts +16 -2
  12. package/dist/components/filter/FilterForm.js +5 -10
  13. package/dist/components/filter/HeaderFilterForm.d.ts +7 -11
  14. package/dist/components/filter/expert/ExpertFilterEditionDialog.js +4 -23
  15. package/dist/components/filter/expert/expertFilterUtils.d.ts +0 -1
  16. package/dist/components/filter/expert/expertFilterUtils.js +0 -11
  17. package/dist/components/filter/expert/index.js +1 -2
  18. package/dist/components/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js +11 -8
  19. package/dist/components/filter/explicitNaming/ExplicitNamingFilterForm.d.ts +3 -1
  20. package/dist/components/filter/explicitNaming/ExplicitNamingFilterForm.js +11 -6
  21. package/dist/components/filter/index.js +1 -2
  22. package/dist/components/filter/utils/filterApi.js +1 -1
  23. package/dist/components/index.js +1 -2
  24. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +7 -4
  25. package/dist/components/inputs/reactHookForm/OverflowableChipWithHelperText.js +1 -1
  26. package/dist/components/parameters/common/parameters-creation-dialog.js +4 -9
  27. package/dist/components/parameters/loadflow/load-flow-parameters-inline.js +3 -6
  28. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +3 -5
  29. package/dist/components/parameters/network-visualizations/network-visualizations-parameters-inline.js +2 -5
  30. package/dist/components/parameters/network-visualizations/use-network-visualizations-parameters-form.js +4 -12
  31. package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.js +2 -5
  32. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +3 -5
  33. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +3 -9
  34. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +4 -12
  35. package/dist/components/parameters/short-circuit/short-circuit-parameters-inline.js +2 -5
  36. package/dist/components/parameters/short-circuit/use-short-circuit-parameters-form.js +5 -16
  37. package/dist/components/parameters/voltage-init/use-voltage-init-parameters-form.js +4 -12
  38. package/dist/components/parameters/voltage-init/voltage-init-parameters-inline.js +3 -8
  39. package/dist/hooks/use-parameters-backend.js +10 -20
  40. package/dist/hooks/usePredefinedProperties.js +2 -3
  41. package/dist/hooks/useSnackMessage.d.ts +1 -2
  42. package/dist/index.js +11 -4
  43. package/dist/services/index.d.ts +0 -1
  44. package/dist/services/index.js +1 -4
  45. package/dist/services/utils.d.ts +0 -1
  46. package/dist/services/utils.js +7 -10
  47. package/dist/translations/en/businessErrorsEn.d.ts +18 -0
  48. package/dist/translations/en/businessErrorsEn.js +19 -1
  49. package/dist/translations/en/equipmentShortEn.js +3 -3
  50. package/dist/translations/fr/businessErrorsFr.d.ts +18 -0
  51. package/dist/translations/fr/businessErrorsFr.js +19 -1
  52. package/dist/translations/fr/equipmentShortFr.js +3 -3
  53. package/dist/utils/error.d.ts +4 -0
  54. package/dist/utils/error.js +28 -0
  55. package/dist/utils/index.d.ts +3 -0
  56. package/dist/utils/index.js +11 -0
  57. package/dist/utils/labelUtils.d.ts +8 -0
  58. package/dist/utils/labelUtils.js +17 -0
  59. package/dist/utils/navigator-clipboard.d.ts +7 -0
  60. package/dist/utils/navigator-clipboard.js +16 -0
  61. package/dist/{services/businessErrorCode.d.ts → utils/types/CustomError.d.ts} +3 -1
  62. package/dist/utils/types/CustomError.js +20 -0
  63. package/dist/utils/types/index.d.ts +1 -0
  64. package/dist/utils/types/index.js +3 -0
  65. package/package.json +1 -1
  66. package/dist/services/businessErrorCode.js +0 -10
@@ -4,6 +4,7 @@ import "react-intl";
4
4
  import "../../../utils/types/equipmentType.js";
5
5
  import { createParameter, updateParameter } from "../../../services/explore.js";
6
6
  import "../../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../../utils/error.js";
7
8
  import "@mui/icons-material";
8
9
  import "../../../utils/yupConfig.js";
9
10
  import "@mui/material";
@@ -41,11 +42,7 @@ function CreateParameterDialog({
41
42
  }
42
43
  });
43
44
  }).catch((error) => {
44
- console.error(error);
45
- snackError({
46
- messageTxt: error.message,
47
- headerId: "paramsCreatingError"
48
- });
45
+ snackWithFallback(snackError, error, { headerId: "paramsCreatingError" });
49
46
  });
50
47
  },
51
48
  [parameterFormatter, parameterType, parameterValues, snackError, snackInfo]
@@ -59,10 +56,8 @@ function CreateParameterDialog({
59
56
  }
60
57
  });
61
58
  }).catch((error) => {
62
- console.error(error);
63
- snackError({
64
- messageTxt: error.message,
65
- headerId: "paramsUpdatingError",
59
+ snackWithFallback(snackError, error, {
60
+ headerId: "paramsUpdateError",
66
61
  headerValues: {
67
62
  item: elementFullPath
68
63
  }
@@ -6,6 +6,7 @@ import { LoadFlowProvider } from "./load-flow-parameters-provider.js";
6
6
  import { parametersStyles } from "../parameters-style.js";
7
7
  import "../../../utils/types/equipmentType.js";
8
8
  import "../../../utils/conversionUtils.js";
9
+ import { snackWithFallback } from "../../../utils/error.js";
9
10
  import "@mui/icons-material";
10
11
  import { ElementType } from "../../../utils/types/elementType.js";
11
12
  import { mergeSx } from "../../../utils/styles.js";
@@ -50,7 +51,7 @@ function LoadFlowParametersInline({
50
51
  setHaveDirtyFields,
51
52
  enableDeveloperMode
52
53
  }) {
53
- const [, , , , resetProvider, , , , resetParameters, , ,] = parametersBackend;
54
+ const [, , , , resetProvider, , , , resetParameters, ,] = parametersBackend;
54
55
  const loadflowMethods = useLoadFlowParametersForm(parametersBackend, enableDeveloperMode, null, null, null);
55
56
  const intl = useIntl();
56
57
  const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
@@ -92,11 +93,7 @@ function LoadFlowParametersInline({
92
93
  keepDefaultValues: true
93
94
  });
94
95
  }).catch((error) => {
95
- console.error(error);
96
- snackError({
97
- messageTxt: error.message,
98
- headerId: "paramsRetrievingError"
99
- });
96
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
100
97
  });
101
98
  }
102
99
  setOpenSelectParameterDialog(false);
@@ -10,6 +10,7 @@ import "react-intl";
10
10
  import "../../../utils/types/equipmentType.js";
11
11
  import { updateParameter } from "../../../services/explore.js";
12
12
  import "../../../utils/conversionUtils.js";
13
+ import { snackWithFallback } from "../../../utils/error.js";
13
14
  import "@mui/icons-material";
14
15
  import { ElementType } from "../../../utils/types/elementType.js";
15
16
  import "../../../utils/yupConfig.js";
@@ -222,11 +223,8 @@ const useLoadFlowParametersForm = (parametersBackend, enableDeveloperMode, param
222
223
  formData[NAME],
223
224
  ElementType.LOADFLOW_PARAMETERS,
224
225
  formData[DESCRIPTION] ?? ""
225
- ).catch((errmsg) => {
226
- snackError({
227
- messageTxt: errmsg,
228
- headerId: "updateLoadFlowParametersError"
229
- });
226
+ ).catch((error) => {
227
+ snackWithFallback(snackError, error, { headerId: "updateLoadFlowParametersError" });
230
228
  });
231
229
  }
232
230
  },
@@ -4,6 +4,7 @@ import { Box, Grid } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/types/equipmentType.js";
6
6
  import "../../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../../utils/error.js";
7
8
  import "@mui/icons-material";
8
9
  import { ElementType } from "../../../utils/types/elementType.js";
9
10
  import "../../../utils/yupConfig.js";
@@ -63,11 +64,7 @@ function NetworkVisualizationParametersInline({
63
64
  keepDefaultValues: true
64
65
  });
65
66
  }).catch((error) => {
66
- console.error(error);
67
- snackError({
68
- messageTxt: error.message,
69
- headerId: "paramsRetrievingError"
70
- });
67
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
71
68
  });
72
69
  }
73
70
  setOpenSelectParameterDialog(false);
@@ -9,6 +9,7 @@ import "../../overflowableText/OverflowableText.js";
9
9
  import "../../../utils/types/equipmentType.js";
10
10
  import { updateParameter } from "../../../services/explore.js";
11
11
  import "../../../utils/conversionUtils.js";
12
+ import { snackWithFallback } from "../../../utils/error.js";
12
13
  import "@mui/icons-material";
13
14
  import { ElementType } from "../../../utils/types/elementType.js";
14
15
  import { setStudyNetworkVisualizationParameters } from "../../../services/study.js";
@@ -96,10 +97,7 @@ const useNetworkVisualizationParametersForm = ({
96
97
  (formData) => {
97
98
  if (studyUuid) {
98
99
  setStudyNetworkVisualizationParameters(studyUuid, formData).catch((error) => {
99
- snackError({
100
- messageTxt: error.message,
101
- headerId: "updateNetworkVisualizationsParametersError"
102
- });
100
+ snackWithFallback(snackError, error, { headerId: "updateNetworkVisualizationsParametersError" });
103
101
  });
104
102
  }
105
103
  },
@@ -115,10 +113,7 @@ const useNetworkVisualizationParametersForm = ({
115
113
  ElementType.NETWORK_VISUALIZATIONS_PARAMETERS,
116
114
  formData[DESCRIPTION] ?? ""
117
115
  ).catch((error) => {
118
- snackError({
119
- messageTxt: error.message,
120
- headerId: "updateNetworkVisualizationsParametersError"
121
- });
116
+ snackWithFallback(snackError, error, { headerId: "updateNetworkVisualizationsParametersError" });
122
117
  });
123
118
  }
124
119
  },
@@ -132,10 +127,7 @@ const useNetworkVisualizationParametersForm = ({
132
127
  getNetworkVisualizationsParameters(parametersUuid).then((params) => {
133
128
  reset(params);
134
129
  }).catch((error) => {
135
- snackError({
136
- messageTxt: error.message,
137
- headerId: "getNetworkVisualizationsParametersError"
138
- });
130
+ snackWithFallback(snackError, error, { headerId: "getNetworkVisualizationsParametersError" });
139
131
  }).finally(() => {
140
132
  clearTimeout(timer);
141
133
  setParamsLoading(false);
@@ -3,6 +3,7 @@ import { useState, useCallback, useEffect } from "react";
3
3
  import { Box, Grid } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/conversionUtils.js";
6
+ import { snackWithFallback } from "../../../utils/error.js";
6
7
  import "@mui/icons-material";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
8
9
  import { mergeSx } from "../../../utils/styles.js";
@@ -90,11 +91,7 @@ function SecurityAnalysisParametersInline({
90
91
  keepDefaultValues: true
91
92
  });
92
93
  }).catch((error) => {
93
- console.error(error);
94
- snackError({
95
- messageTxt: error.message,
96
- headerId: "paramsRetrievingError"
97
- });
94
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
98
95
  });
99
96
  }
100
97
  setOpenSelectParameterDialog(false);
@@ -2,6 +2,7 @@ import { useForm } from "react-hook-form";
2
2
  import { useState, useMemo, useCallback, useEffect } from "react";
3
3
  import { yupResolver } from "@hookform/resolvers/yup";
4
4
  import "../../../utils/conversionUtils.js";
5
+ import { snackWithFallback } from "../../../utils/error.js";
5
6
  import "react/jsx-runtime";
6
7
  import "@mui/icons-material";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
@@ -118,11 +119,8 @@ const useSecurityAnalysisParametersForm = (parametersBackend, parametersUuid, na
118
119
  formData[NAME],
119
120
  ElementType.SECURITY_ANALYSIS_PARAMETERS,
120
121
  formData[DESCRIPTION] ?? ""
121
- ).catch((errmsg) => {
122
- snackError({
123
- messageTxt: errmsg,
124
- headerId: "updateSecurityAnalysisParametersError"
125
- });
122
+ ).catch((error) => {
123
+ snackWithFallback(snackError, error, { headerId: "updateSecurityAnalysisParametersError" });
126
124
  });
127
125
  }
128
126
  },
@@ -3,6 +3,7 @@ import { Grid, DialogActions, Button } from "@mui/material";
3
3
  import { useState, useCallback, useEffect } from "react";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/conversionUtils.js";
6
+ import { snackWithFallback } from "../../../utils/error.js";
6
7
  import "@mui/icons-material";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
8
9
  import { mergeSx } from "../../../utils/styles.js";
@@ -74,11 +75,7 @@ function SensitivityAnalysisParametersInline({
74
75
  });
75
76
  sensitivityAnalysisMethods.initRowsCount();
76
77
  }).catch((error) => {
77
- console.error(error);
78
- snackError({
79
- messageTxt: error.message,
80
- headerId: "paramsRetrievingError"
81
- });
78
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
82
79
  });
83
80
  }
84
81
  setOpenSelectParameterDialog(false);
@@ -87,10 +84,7 @@ function SensitivityAnalysisParametersInline({
87
84
  );
88
85
  const resetSensitivityAnalysisParameters = useCallback(() => {
89
86
  setSensitivityAnalysisParameters(studyUuid, null).catch((error) => {
90
- snackError({
91
- messageTxt: error.message,
92
- headerId: "paramsChangingError"
93
- });
87
+ snackWithFallback(snackError, error, { headerId: "paramsChangingError" });
94
88
  });
95
89
  }, [studyUuid, snackError]);
96
90
  const clear = useCallback(() => {
@@ -9,6 +9,7 @@ import "../../../utils/types/equipmentType.js";
9
9
  import { updateParameter } from "../../../services/explore.js";
10
10
  import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
11
11
  import "../../../utils/conversionUtils.js";
12
+ import { snackWithFallback } from "../../../utils/error.js";
12
13
  import "@mui/icons-material";
13
14
  import { ElementType } from "../../../utils/types/elementType.js";
14
15
  import "../../../utils/yupConfig.js";
@@ -157,10 +158,7 @@ const useSensitivityAnalysisParametersForm = ({
157
158
  });
158
159
  }).catch((error) => {
159
160
  setLaunchLoader(false);
160
- snackError({
161
- messageTxt: error.message,
162
- headerId: "getSensitivityAnalysisFactorsCountError"
163
- });
161
+ snackWithFallback(snackError, error, { headerId: "getSensitivityAnalysisFactorsCountError" });
164
162
  });
165
163
  },
166
164
  [snackError, studyUuid, currentRootNetworkUuid, formatFilteredParams, setValue, getResultCount, currentNodeUuid]
@@ -332,10 +330,7 @@ const useSensitivityAnalysisParametersForm = ({
332
330
  updateParameters(formattedParams);
333
331
  initRowsCount();
334
332
  }).catch((error) => {
335
- snackError({
336
- messageTxt: error.message,
337
- headerId: "updateSensitivityAnalysisParametersError"
338
- });
333
+ snackWithFallback(snackError, error, { headerId: "updateSensitivityAnalysisParametersError" });
339
334
  });
340
335
  },
341
336
  [setSensitivityAnalysisParams, snackError, studyUuid, formatNewParams, initRowsCount, updateParameters]
@@ -350,10 +345,7 @@ const useSensitivityAnalysisParametersForm = ({
350
345
  ElementType.SENSITIVITY_PARAMETERS,
351
346
  formData[FieldConstants.DESCRIPTION] ?? ""
352
347
  ).catch((error) => {
353
- snackError({
354
- messageTxt: error.message,
355
- headerId: "updateSensitivityAnalysisParametersError"
356
- });
348
+ snackWithFallback(snackError, error, { headerId: "updateSensitivityAnalysisParametersError" });
357
349
  });
358
350
  }
359
351
  },
@@ -4,6 +4,7 @@ import { Box, Grid } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/types/equipmentType.js";
6
6
  import "../../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../../utils/error.js";
7
8
  import "@mui/icons-material";
8
9
  import { ElementType } from "../../../utils/types/elementType.js";
9
10
  import "../../../utils/yupConfig.js";
@@ -81,11 +82,7 @@ function ShortCircuitParametersInLine({
81
82
  fetchShortCircuitParameters(paramUuid).then((parameters) => {
82
83
  replaceFormValues(parameters);
83
84
  }).catch((error) => {
84
- console.error(error);
85
- snackError({
86
- messageTxt: error.message,
87
- headerId: "paramsRetrievingError"
88
- });
85
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
89
86
  });
90
87
  }
91
88
  setOpenSelectParameterDialog(false);
@@ -9,6 +9,7 @@ import "../../overflowableText/OverflowableText.js";
9
9
  import "../../../utils/types/equipmentType.js";
10
10
  import { updateParameter } from "../../../services/explore.js";
11
11
  import "../../../utils/conversionUtils.js";
12
+ import { snackWithFallback } from "../../../utils/error.js";
12
13
  import "@mui/icons-material";
13
14
  import { ElementType } from "../../../utils/types/elementType.js";
14
15
  import { setStudyShortCircuitParameters, invalidateStudyShortCircuitStatus } from "../../../services/study.js";
@@ -145,17 +146,11 @@ const useShortCircuitParametersForm = ({
145
146
  ...prepareDataToSend(shortCircuitParameters, formData)
146
147
  }).then(() => {
147
148
  invalidateStudyShortCircuitStatus(studyUuid).catch((error) => {
148
- snackError({
149
- messageTxt: error.message,
150
- headerId: "invalidateShortCircuitStatusError"
151
- });
149
+ snackWithFallback(snackError, error, { headerId: "invalidateShortCircuitStatusError" });
152
150
  });
153
151
  }).catch((error) => {
154
152
  setShortCircuitParameters(oldParams);
155
- snackError({
156
- messageTxt: error.message,
157
- headerId: "paramsChangingError"
158
- });
153
+ snackWithFallback(snackError, error, { headerId: "paramsChangingError" });
159
154
  });
160
155
  }
161
156
  },
@@ -171,10 +166,7 @@ const useShortCircuitParametersForm = ({
171
166
  ElementType.SHORT_CIRCUIT_PARAMETERS,
172
167
  formData[DESCRIPTION] ?? ""
173
168
  ).catch((error) => {
174
- snackError({
175
- messageTxt: error.message,
176
- headerId: "paramsChangingError"
177
- });
169
+ snackWithFallback(snackError, error, { headerId: "paramsChangingError" });
178
170
  });
179
171
  }
180
172
  },
@@ -188,10 +180,7 @@ const useShortCircuitParametersForm = ({
188
180
  fetchShortCircuitParameters(parametersUuid).then((params) => {
189
181
  setShortCircuitParameters(params);
190
182
  }).catch((error) => {
191
- snackError({
192
- messageTxt: error.message,
193
- headerId: "paramsRetrievingError"
194
- });
183
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
195
184
  }).finally(() => {
196
185
  clearTimeout(timer);
197
186
  setParamsLoading(false);
@@ -10,6 +10,7 @@ import "../../../utils/types/equipmentType.js";
10
10
  import { updateParameter } from "../../../services/explore.js";
11
11
  import { ID, FILTERS } from "../../../utils/constants/filterConstant.js";
12
12
  import { isBlankOrEmpty } from "../../../utils/conversionUtils.js";
13
+ import { snackWithFallback } from "../../../utils/error.js";
13
14
  import "@mui/icons-material";
14
15
  import { ElementType } from "../../../utils/types/elementType.js";
15
16
  import { updateVoltageInitParameters } from "../../../services/study.js";
@@ -151,10 +152,7 @@ const useVoltageInitParametersForm = ({
151
152
  if (studyUuid) {
152
153
  updateVoltageInitParameters(studyUuid, fromVoltageInitParametersFormToParamValues(formData)).catch(
153
154
  (error) => {
154
- snackError({
155
- messageTxt: error.message,
156
- headerId: "updateVoltageInitParametersError"
157
- });
155
+ snackWithFallback(snackError, error, { headerId: "updateVoltageInitParametersError" });
158
156
  }
159
157
  );
160
158
  }
@@ -171,10 +169,7 @@ const useVoltageInitParametersForm = ({
171
169
  ElementType.VOLTAGE_INIT_PARAMETERS,
172
170
  formData[DESCRIPTION] ?? ""
173
171
  ).catch((error) => {
174
- snackError({
175
- messageTxt: error.message,
176
- headerId: "updateVoltageInitParametersError"
177
- });
172
+ snackWithFallback(snackError, error, { headerId: "updateVoltageInitParametersError" });
178
173
  });
179
174
  }
180
175
  },
@@ -188,10 +183,7 @@ const useVoltageInitParametersForm = ({
188
183
  getVoltageInitParameters(parametersUuid).then((params) => {
189
184
  reset(fromVoltageInitParamsDataToFormValues(params));
190
185
  }).catch((error) => {
191
- snackError({
192
- messageTxt: error.message,
193
- headerId: "paramsRetrievingError"
194
- });
186
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
195
187
  }).finally(() => {
196
188
  clearTimeout(timer);
197
189
  setParamsLoading(false);
@@ -4,6 +4,7 @@ import { Box, Grid } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/types/equipmentType.js";
6
6
  import "../../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../../utils/error.js";
7
8
  import "@mui/icons-material";
8
9
  import { ElementType } from "../../../utils/types/elementType.js";
9
10
  import "../../../utils/yupConfig.js";
@@ -70,10 +71,7 @@ function VoltageInitParametersInLine({
70
71
  keepDefaultValues: true
71
72
  });
72
73
  }).catch((error) => {
73
- snackError({
74
- messageTxt: error.message,
75
- headerId: "paramsRetrievingError"
76
- });
74
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
77
75
  });
78
76
  }
79
77
  setOpenSelectParameterDialog(false);
@@ -86,10 +84,7 @@ function VoltageInitParametersInLine({
86
84
  computationParameters: null
87
85
  // null means Reset
88
86
  }).catch((error) => {
89
- snackError({
90
- messageTxt: error.message,
91
- headerId: "updateVoltageInitParametersError"
92
- });
87
+ snackWithFallback(snackError, error, { headerId: "updateVoltageInitParametersError" });
93
88
  });
94
89
  setOpenResetConfirmation(false);
95
90
  }, [studyUuid, snackError]);
@@ -2,6 +2,7 @@ import { useRef, useState, useMemo, useCallback, useEffect } from "react";
2
2
  import { useSnackMessage } from "./useSnackMessage.js";
3
3
  import { useDebounce } from "./useDebounce.js";
4
4
  import { formatComputingTypeLabel } from "../components/parameters/common/computing-type.js";
5
+ import { snackWithFallback } from "../utils/error.js";
5
6
  const INITIAL_PROVIDERS = {};
6
7
  var OptionalServicesStatus = /* @__PURE__ */ ((OptionalServicesStatus2) => {
7
8
  OptionalServicesStatus2["Up"] = "UP";
@@ -35,8 +36,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
35
36
  setProvider(newProvider);
36
37
  backendUpdateProvider?.(studyUuid, newProvider).catch((error) => {
37
38
  setProvider(oldProvider);
38
- snackError({
39
- messageTxt: error.message,
39
+ snackWithFallback(snackError, error, {
40
40
  headerId: `update${formatComputingTypeLabel(type)}ProviderError`
41
41
  });
42
42
  });
@@ -53,8 +53,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
53
53
  }
54
54
  }
55
55
  }).catch((error) => {
56
- snackError({
57
- messageTxt: error.message,
56
+ snackWithFallback(snackError, error, {
58
57
  headerId: `fetchDefault${formatComputingTypeLabel(type)}ProviderError`
59
58
  });
60
59
  });
@@ -69,8 +68,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
69
68
  }, {});
70
69
  providersRef.current = providersObj;
71
70
  }).catch((error) => {
72
- snackError({
73
- messageTxt: error.message,
71
+ snackWithFallback(snackError, error, {
74
72
  headerId: `fetch${formatComputingTypeLabel(type)}ProvidersError`
75
73
  });
76
74
  });
@@ -84,8 +82,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
84
82
  resetProvider();
85
83
  }
86
84
  }).catch((error) => {
87
- snackError({
88
- messageTxt: error.message,
85
+ snackWithFallback(snackError, error, {
89
86
  headerId: `fetch${formatComputingTypeLabel(type)}ProviderError`
90
87
  });
91
88
  });
@@ -101,8 +98,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
101
98
  backendFetchSpecificParametersDescription?.().then((specificParams) => {
102
99
  setSpecificParamsDescription(specificParams);
103
100
  }).catch((error) => {
104
- snackError({
105
- messageTxt: error.message,
101
+ snackWithFallback(snackError, error, {
106
102
  headerId: `fetch${formatComputingTypeLabel(type)}SpecificParametersError`
107
103
  });
108
104
  });
@@ -116,10 +112,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
116
112
  backendFetchDefaultLimitReductions?.().then((defaultLimits) => {
117
113
  setDefaultLimitReductions(defaultLimits);
118
114
  }).catch((error) => {
119
- snackError({
120
- messageTxt: error.message,
121
- headerId: "fetchDefaultLimitReductionsError"
122
- });
115
+ snackWithFallback(snackError, error, { headerId: "fetchDefaultLimitReductionsError" });
123
116
  });
124
117
  }, [backendFetchDefaultLimitReductions, snackError]);
125
118
  useEffect(() => {
@@ -136,8 +129,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
136
129
  } else {
137
130
  setProvider(void 0);
138
131
  }
139
- snackError({
140
- messageTxt: error.message,
132
+ snackWithFallback(snackError, error, {
141
133
  headerId: `update${formatComputingTypeLabel(type)}ParametersError`
142
134
  });
143
135
  });
@@ -172,8 +164,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
172
164
  });
173
165
  }
174
166
  }).catch((error) => {
175
- snackError({
176
- messageTxt: error.message,
167
+ snackWithFallback(snackError, error, {
177
168
  headerId: `update${formatComputingTypeLabel(type)}ParametersError`
178
169
  });
179
170
  });
@@ -186,8 +177,7 @@ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, back
186
177
  setProvider(_params.provider);
187
178
  }
188
179
  }).catch((error) => {
189
- snackError({
190
- messageTxt: error.message,
180
+ snackWithFallback(snackError, error, {
191
181
  headerId: `fetch${formatComputingTypeLabel(type)}ParametersError`
192
182
  });
193
183
  });
@@ -3,6 +3,7 @@ import { equipmentTypesForPredefinedPropertiesMapper } from "../utils/mapper/equ
3
3
  import { useSnackMessage } from "./useSnackMessage.js";
4
4
  import { fetchStudyMetadata } from "../services/appsMetadata.js";
5
5
  import "../utils/conversionUtils.js";
6
+ import { snackWithFallback } from "../utils/error.js";
6
7
  import "react/jsx-runtime";
7
8
  import "@mui/icons-material";
8
9
  import "../utils/types/equipmentType.js";
@@ -25,9 +26,7 @@ const usePredefinedProperties = (type) => {
25
26
  setEquipmentPredefinedProps(p);
26
27
  }
27
28
  }).catch((error) => {
28
- snackError({
29
- messageTxt: error.message ?? error
30
- });
29
+ snackWithFallback(snackError, error);
31
30
  });
32
31
  }
33
32
  }, [type, setEquipmentPredefinedProps, snackError]);
@@ -1,5 +1,5 @@
1
1
  import { closeSnackbar as closeSnackbarFromNotistack, OptionsObject } from 'notistack';
2
- interface SnackInputs extends Omit<OptionsObject, 'variant' | 'style'> {
2
+ export interface SnackInputs extends Omit<OptionsObject, 'variant' | 'style'> {
3
3
  messageTxt?: string;
4
4
  messageId?: string;
5
5
  messageValues?: Record<string, string>;
@@ -15,4 +15,3 @@ export interface UseSnackMessageReturn {
15
15
  closeSnackbar: typeof closeSnackbarFromNotistack;
16
16
  }
17
17
  export declare function useSnackMessage(): UseSnackMessageReturn;
18
- export {};
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ import { ExpertFilterEditionDialog } from "./components/filter/expert/ExpertFilt
44
44
  import { ExpertFilterForm, expertFilterSchema, getExpertFilterEmptyFormData } from "./components/filter/expert/ExpertFilterForm.js";
45
45
  import { CombinatorType, DataType, OperatorType } from "./components/filter/expert/expertFilter.type.js";
46
46
  import { COMBINATOR_OPTIONS, CONVERTERS_MODE_OPTIONS, ENERGY_SOURCE_OPTIONS, EXPERT_FILTER_EQUIPMENTS, EXPERT_FILTER_FIELDS, EXPERT_FILTER_QUERY, FIELDS_OPTIONS, LOAD_TYPE_OPTIONS, OPERATOR_OPTIONS, PHASE_REGULATION_MODE_OPTIONS, RATIO_REGULATION_MODE_OPTIONS, REGULATION_TYPE_OPTIONS, RULES, SHUNT_COMPENSATOR_TYPE_OPTIONS, SVAR_REGULATION_MODE_OPTIONS } from "./components/filter/expert/expertFilterConstants.js";
47
- import { countRules, exportExpertRules, getFilterEquipmentTypeLabel, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./components/filter/expert/expertFilterUtils.js";
47
+ import { countRules, exportExpertRules, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./components/filter/expert/expertFilterUtils.js";
48
48
  import { ExplicitNamingFilterEditionDialog } from "./components/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js";
49
49
  import { ExplicitNamingFilterForm, explicitNamingFilterSchema, getExplicitNamingFilterEmptyFormData } from "./components/filter/explicitNaming/ExplicitNamingFilterForm.js";
50
50
  import { FILTER_EQUIPMENTS_ATTRIBUTES } from "./components/filter/explicitNaming/ExplicitNamingFilterConstants.js";
@@ -189,7 +189,7 @@ import { OptionalServicesStatus, useParametersBackend } from "./hooks/use-parame
189
189
  import { useCreateRowDataSensi } from "./hooks/use-create-row-data-sensi.js";
190
190
  import { LOGOUT_ERROR, RESET_AUTHENTICATION_ROUTER_ERROR, SHOW_AUTH_INFO_LOGIN, SIGNIN_CALLBACK_ERROR, UNAUTHORIZED_USER_INFO, USER, USER_VALIDATION_ERROR, resetAuthenticationRouterError, setLoggedUser, setLogoutError, setShowAuthenticationRouterLogin, setSignInCallbackError, setUnauthorizedUserInfo, setUserValidationError } from "./redux/actions/authActions.js";
191
191
  import { getUserToken, setCommonStore } from "./redux/commonStore.js";
192
- import { NetworkTimeoutError, backendFetch, backendFetchFile, backendFetchJson, backendFetchText, catchErrorHandler, getRequestParamFromList } from "./services/utils.js";
192
+ import { NetworkTimeoutError, backendFetch, backendFetchFile, backendFetchJson, backendFetchText, getRequestParamFromList } from "./services/utils.js";
193
193
  import { createFilter, createParameter, fetchElementsInfos, saveFilter, updateParameter } from "./services/explore.js";
194
194
  import { fetchAppsMetadata, fetchDefaultCountry, fetchEnv, fetchFavoriteAndDefaultCountries, fetchStudyMetadata, isStudyMetadata } from "./services/appsMetadata.js";
195
195
  import { elementAlreadyExists, fetchConfigParameter, fetchConfigParameters, fetchDirectoryContent, fetchDirectoryElementPath, fetchRootFolders, getAppName, updateConfigParameter } from "./services/directory.js";
@@ -200,7 +200,6 @@ import { fetchCurrentAnnouncement, fetchUserDetails } from "./services/userAdmin
200
200
  import { getVoltageInitParameters, getVoltageInitUrl } from "./services/voltage-init.js";
201
201
  import { getPccMinStudyParameters, updatePccMinParameters } from "./services/pcc-min.js";
202
202
  import { fetchDefaultSecurityAnalysisProvider, fetchSecurityAnalysisParameters, fetchSecurityAnalysisProviders, getSecurityAnalysisDefaultLimitReductions, getSecurityAnalysisParameters, getStudyUrl, safeEncodeURIComponent, setSecurityAnalysisParameters, updateSecurityAnalysisParameters, updateSecurityAnalysisProvider } from "./services/security-analysis.js";
203
- import { CustomError } from "./services/businessErrorCode.js";
204
203
  import { equalsArray } from "./utils/algos.js";
205
204
  import { FetchStatus } from "./utils/constants/fetchStatus.js";
206
205
  import { FieldConstants } from "./utils/constants/fieldConstants.js";
@@ -209,12 +208,15 @@ import { AMPERE, DEGREE, KILO_AMPERE, KILO_METER, KILO_VOLT, MEGA_VAR, MEGA_VOLT
209
208
  import { COMMON_APP_NAME, COMMON_CONFIG_PARAMS_NAMES, LAST_SELECTED_DIRECTORY, PARAM_DEVELOPER_MODE, PARAM_LANGUAGE, PARAM_THEME } from "./utils/constants/configConstants.js";
210
209
  import { FILTERS, FILTER_ID, FILTER_NAME, ID } from "./utils/constants/filterConstant.js";
211
210
  import { GRIDSUITE_DEFAULT_PRECISION, convertInputValue, convertOutputValue, isBlankOrEmpty, kiloUnitToUnit, microUnitToUnit, roundToDefaultPrecision, roundToPrecision, unitToKiloUnit, unitToMicroUnit } from "./utils/conversionUtils.js";
211
+ import { catchErrorHandler, snackWithFallback } from "./utils/error.js";
212
212
  import { areArrayElementsUnique, isObjectEmpty, keyGenerator } from "./utils/functions.js";
213
213
  import { LANG_ENGLISH, LANG_FRENCH, LANG_SYSTEM } from "./utils/langs.js";
214
214
  import { getFileIcon } from "./utils/mapper/getFileIcon.js";
215
215
  import { equipmentTypesForPredefinedPropertiesMapper } from "./utils/mapper/equipmentTypesForPredefinedPropertiesMapper.js";
216
+ import { copyToClipboard } from "./utils/navigator-clipboard.js";
216
217
  import { NotificationsUrlKeys, PREFIX_CONFIG_NOTIFICATION_WS, PREFIX_DIRECTORY_NOTIFICATION_WS, PREFIX_STUDY_NOTIFICATION_WS } from "./utils/constants/notificationsProvider.js";
217
218
  import { DARK_THEME, LIGHT_THEME, makeComposeClasses, mergeSx, toNestedGlobalSelectors } from "./utils/styles.js";
219
+ import { CustomError, formatMessageValues } from "./utils/types/CustomError.js";
218
220
  import { ElementType } from "./utils/types/elementType.js";
219
221
  import { ALL_EQUIPMENTS, BASE_EQUIPMENTS, EquipmentType, ExtendedEquipmentType, HvdcType, OperatingStatus, SEARCH_EQUIPMENTS, TYPE_TAG_MAX_SIZE, VL_TAG_MAX_SIZE, equipmentStyles, getEquipmentsInfosForSearchBar } from "./utils/types/equipmentType.js";
220
222
  import { Battery, BusBar, DanglingLine, Generator, Hvdc, LCC, Line, Load, SVC, ShuntCompensator, Substation, ThreeWindingTransfo, TwoWindingTransfo, VSC, VoltageLevel } from "./utils/types/equipmentTypes.js";
@@ -225,6 +227,7 @@ import { ParameterType } from "./utils/types/parameters.type.js";
225
227
  import { SolverTypeInfos } from "./utils/types/dynamic-simulation.type.js";
226
228
  import { DistributionType, SensitivityType } from "./utils/types/sensitivity-analysis.type.js";
227
229
  import { toNumber, validateValueIsANumber } from "./utils/validation-functions.js";
230
+ import { getEquipmentTypeShortLabel, getEquipmentTypeTagLabel } from "./utils/labelUtils.js";
228
231
  import "./utils/yupConfig.js";
229
232
  import { cardErrorBoundaryEn } from "./translations/en/cardErrorBoundaryEn.js";
230
233
  import { businessErrorsEn } from "./translations/en/businessErrorsEn.js";
@@ -685,6 +688,7 @@ export {
685
688
  componentsFr,
686
689
  convertInputValue,
687
690
  convertOutputValue,
691
+ copyToClipboard,
688
692
  countRules,
689
693
  createFilter,
690
694
  createParameter,
@@ -744,17 +748,19 @@ export {
744
748
  flatParametersEn,
745
749
  flatParametersFr,
746
750
  formatComputingTypeLabel,
751
+ formatMessageValues,
747
752
  genHelperError,
748
753
  generateTreeViewFinderClass,
749
754
  getAppName,
750
755
  getAvailableComponentLibraries,
751
756
  getComputedLanguage,
752
757
  getDefaultLoadFlowProvider,
758
+ getEquipmentTypeShortLabel,
759
+ getEquipmentTypeTagLabel,
753
760
  getEquipmentsInfosForSearchBar,
754
761
  getExpertFilterEmptyFormData,
755
762
  getExplicitNamingFilterEmptyFormData,
756
763
  getFileIcon,
757
- getFilterEquipmentTypeLabel,
758
764
  getLimitReductionsFormSchema,
759
765
  getLoadFlowDefaultLimitReductions,
760
766
  getLoadFlowProviders,
@@ -836,6 +842,7 @@ export {
836
842
  setStudyShortCircuitParameters,
837
843
  setUnauthorizedUserInfo,
838
844
  setUserValidationError,
845
+ snackWithFallback,
839
846
  styles,
840
847
  default2 as svg,
841
848
  tableEn,
@@ -15,4 +15,3 @@ export * from './userAdmin';
15
15
  export * from './voltage-init';
16
16
  export * from './pcc-min';
17
17
  export * from './security-analysis';
18
- export { CustomError } from './businessErrorCode';