diff --git a/JSDemos/Demos/Charts/LoadDataOnDemand/React/App.tsx b/JSDemos/Demos/Charts/LoadDataOnDemand/React/App.tsx
index 68cff5d134d..c8afe69c7c5 100644
--- a/JSDemos/Demos/Charts/LoadDataOnDemand/React/App.tsx
+++ b/JSDemos/Demos/Charts/LoadDataOnDemand/React/App.tsx
@@ -1,4 +1,4 @@
-import React, { useCallback, useState } from 'react';
+import React, { useState } from 'react';
import DataSource from 'devextreme/data/data_source';
import {
Chart,
@@ -36,72 +36,16 @@ function App() {
endValue: new Date(2017, 3, 15),
});
- const uploadDataByVisualRange = useCallback((component) => {
- const dataSource = component.getDataSource();
- const storage = dataSource.items();
- const ajaxArgs = {
- startVisible: getDateString(visualRange.startValue),
- endVisible: getDateString(visualRange.endValue),
- startBound: getDateString(storage.length ? storage[0].date : null),
- endBound: getDateString(
- storage.length ? storage[storage.length - 1].date : null,
- ),
- };
-
- if (
- ajaxArgs.startVisible !== ajaxArgs.startBound
- && ajaxArgs.endVisible !== ajaxArgs.endBound
- && !packetsLock
- ) {
- packetsLock += 1;
- component.showLoadingIndicator();
-
- getDataFrame(ajaxArgs)
- .then((dataFrame) => {
- packetsLock -= 1;
-
- const componentStorage = dataSource.store();
-
- dataFrame
- .map((i) => ({
- date: new Date(i.Date),
- minTemp: i.MinTemp,
- maxTemp: i.MaxTemp,
- }))
- .forEach((item) => componentStorage.insert(item));
-
- dataSource.reload();
-
- onVisualRangeChanged(component);
- })
- .catch(() => {
- packetsLock -= 1;
- dataSource.reload();
- });
- }
- }, [visualRange]);
-
- const onVisualRangeChanged = useCallback((component) => {
- const items = component.getDataSource().items();
- if (
- !items.length
- || items[0].date - visualRange.startValue.getTime() >= HALFDAY
- || visualRange.endValue.getTime() - items[items.length - 1].date >= HALFDAY
- ) {
- uploadDataByVisualRange(component);
- }
- }, [visualRange, uploadDataByVisualRange]);
-
- const handleChange = useCallback((e: ChartTypes.OptionChangedEvent) => {
+ const handleChange = (e: ChartTypes.OptionChangedEvent) => {
if (e.fullName === 'argumentAxis.visualRange') {
const stateStart = visualRange.startValue;
const currentStart = e.value.startValue;
if (stateStart.valueOf() !== currentStart.valueOf()) {
setVisualRange(e.value);
}
- onVisualRangeChanged(e.component);
+ onVisualRangeChanged(e.value, e.component);
}
- }, [setVisualRange, visualRange, onVisualRangeChanged]);
+ };
return (
-
+