@oliasoft-open-source/charts-library 4.8.0 → 4.8.1-beta-2

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/dist/index.js CHANGED
@@ -26320,22 +26320,37 @@ const useUpdateAxesRanges = ({
26320
26320
  const useSaveInitialAxesRanges = (chartRef, dispatch, generatedDatasets) => {
26321
26321
  var _a2;
26322
26322
  const prevDatasets = useRef(null);
26323
+ const getDatasetsHash = (datasets) => {
26324
+ if (!datasets.length) return "";
26325
+ const datasetHashes = datasets.map((dataset) => {
26326
+ const data = dataset.data ?? [];
26327
+ if (!data.length) return "empty";
26328
+ const firstDataPoint = data.at(0);
26329
+ const lastDataPoint = data.at(-1);
26330
+ return `${firstDataPoint}-${lastDataPoint}`;
26331
+ });
26332
+ return `${datasets.length}-${datasetHashes.join("|")}`;
26333
+ };
26323
26334
  useEffect(() => {
26324
- var _a3, _b2;
26325
- if (((_a3 = chartRef == null ? void 0 : chartRef.current) == null ? void 0 : _a3.scales) && !isEqual(prevDatasets.current, generatedDatasets)) {
26326
- const scales = ((_b2 = chartRef == null ? void 0 : chartRef.current) == null ? void 0 : _b2.scales) ?? {};
26327
- const initialAxesRanges = Object.entries(scales).map(
26328
- ([id, { min, max, _range: range }]) => ({
26329
- id,
26330
- min: (range == null ? void 0 : range.min) ?? min,
26331
- max: (range == null ? void 0 : range.max) ?? max
26332
- })
26333
- );
26334
- dispatch({
26335
- type: SAVE_INITIAL_AXES_RANGES,
26336
- payload: { initialAxesRanges }
26337
- });
26338
- prevDatasets.current = generatedDatasets;
26335
+ var _a3;
26336
+ if ((_a3 = chartRef == null ? void 0 : chartRef.current) == null ? void 0 : _a3.scales) {
26337
+ const prevHash = prevDatasets.current ? getDatasetsHash(prevDatasets.current) : "";
26338
+ const currentHash = getDatasetsHash(generatedDatasets);
26339
+ if (prevHash !== currentHash) {
26340
+ const scales = chartRef.current.scales;
26341
+ const initialAxesRanges = Object.entries(scales).map(
26342
+ ([id, { min, max, _range: range }]) => ({
26343
+ id,
26344
+ min: (range == null ? void 0 : range.min) ?? min,
26345
+ max: (range == null ? void 0 : range.max) ?? max
26346
+ })
26347
+ );
26348
+ dispatch({
26349
+ type: SAVE_INITIAL_AXES_RANGES,
26350
+ payload: { initialAxesRanges }
26351
+ });
26352
+ prevDatasets.current = generatedDatasets;
26353
+ }
26339
26354
  }
26340
26355
  }, [(_a2 = chartRef == null ? void 0 : chartRef.current) == null ? void 0 : _a2.scales, generatedDatasets]);
26341
26356
  };