@iotready/nextjs-components-library 1.0.0-preview6 → 1.0.0-preview7

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.
@@ -222,6 +222,7 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
222
222
  }
223
223
  });
224
224
  const [zoomed, setZoomed] = useState(false);
225
+ const prevMeasures = useRef();
225
226
  const resetChart = () => {
226
227
  setOptions({
227
228
  ...options,
@@ -245,6 +246,7 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
245
246
  setSpanGapsOption(spanG);
246
247
  };
247
248
  const handleChange = (event, newPeriod) => {
249
+ setChartLoading(true);
248
250
  setZoomed(false);
249
251
  setDatePickerUsed(false);
250
252
  setCsvData('');
@@ -277,7 +279,6 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
277
279
  }
278
280
  }, [csvData]);
279
281
  const loadDatasets = async (chartPeriod) => {
280
- setChartLoading(true);
281
282
  let intervalInSeconds = chartPeriod === "ALL" && !datePickerUsed && !zoomed ? 31536000 : timeEnd - timeStart;
282
283
  const rawQuery = intervalInSeconds < 86400; //
283
284
  // Inizializza un array di promesse per ottenere i dati per ciascuna misura
@@ -368,10 +369,17 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
368
369
  newChartPeriod = '1Y'; // Set to 1 year
369
370
  }
370
371
  setChartPeriodConfig(chartConfigByPeriod[newChartPeriod]);
372
+ // check prev measures value in order to show the loader
373
+ // hide the loader if measure is the same (for interval get measure value)
374
+ const prevMeasuresValue = prevMeasures.current;
375
+ prevMeasures.current = measures;
376
+ if (!prevMeasuresValue || prevMeasuresValue.length !== measures.length || (prevMeasuresValue[0] && prevMeasuresValue[0].name !== measures[0].name)) {
377
+ setChartLoading(true);
378
+ }
371
379
  loadDatasets(chartPeriod).then(() => {
372
380
  setChartLoading(false);
373
381
  });
374
- }, [timeEnd, timeStart]);
382
+ }, [measures, timeEnd, timeStart]);
375
383
  useEffect(() => {
376
384
  const loadZoomPlugin = async () => {
377
385
  const zoomPlugin = (await import('chartjs-plugin-zoom')).default;
@@ -401,6 +409,7 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
401
409
  resetChart();
402
410
  }, []);
403
411
  const datePicker = _jsx(Box, { sx: { display: 'flex', alignItems: 'center', mr: { xs: 0, lg: 2 } }, children: _jsxs(LocalizationProvider, { dateAdapter: AdapterMoment, adapterLocale: "it", children: [_jsx(DateTimePicker, { value: moment(timeStartPicker * 1000), onChange: (newValue) => {
412
+ setChartLoading(true);
404
413
  setDatePickerUsed(true);
405
414
  setZoomed(false);
406
415
  setPickerTimeStart(moment(newValue).unix());
@@ -408,6 +417,7 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
408
417
  }, maxDateTime: moment(timeEnd * 1000), slotProps: {
409
418
  textField: { size: 'small', sx: { width: { sm: 210 } } }
410
419
  } }), " \u00A0\u00A0 ", _jsx(Box, { children: "\u2013" }), " \u00A0\u00A0", _jsx(DateTimePicker, { value: moment(timeEnd * 1000), onChange: (newValue) => {
420
+ setChartLoading(true);
411
421
  setDatePickerUsed(true);
412
422
  setZoomed(false);
413
423
  setPickerTimeEnd(moment(newValue).unix());
@@ -420,6 +430,7 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
420
430
  , {
421
431
  //@ts-ignore
422
432
  ref: csvLinkRef, data: csvData, filename: `export_${moment().toISOString()}.csv`, separator: ';' })] })), zoomed && (_jsxs(Button, { sx: { minWidth: '40px !important', boxShadow: 1, px: 1 }, variant: "contained", color: "secondary", size: 'small', onClick: () => {
433
+ setChartLoading(true);
423
434
  setZoomed(false);
424
435
  if (chartPeriod === "ALL") {
425
436
  setDatePickerUsed(false);
@@ -460,7 +471,7 @@ const TrendChart = ({ deviceId, measures, enableExportData, enableDatePicker, ha
460
471
  alignItems: 'center',
461
472
  justifyContent: 'center',
462
473
  textAlign: 'center',
463
- height: '100%'
474
+ height: 'calc(100% - 50px)'
464
475
  }, children: _jsx(CircularProgress, {}) })) })] }));
465
476
  };
466
477
  export default TrendChart;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iotready/nextjs-components-library",
3
- "version": "1.0.0-preview6",
3
+ "version": "1.0.0-preview7",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "build": "rm -rf dist && tsc --project tsconfig.build.json && cp package.json dist/",