@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
40 lines (36 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useChart = useChart;
var _react = require("react");
var _chart = require("../utils/chart");
function useChart(_ref) {
let {
id,
analytics,
config
} = _ref;
const [chart, setChart] = (0, _react.useState)((0, _chart.getChartInstance)(id, analytics, config).getOptions());
const changeChartType = (0, _react.useCallback)(type => {
const updatedLayout = (0, _chart.updateLayout)(config, {
type
});
const updatedConfig = { ...config,
layout: updatedLayout,
type
};
const chartInstance = (0, _chart.getChartInstance)(id, analytics, updatedConfig);
setChart(chartInstance.getOptions());
}, [config, id, analytics]);
(0, _react.useEffect)(() => {
if (analytics && config) {
const chartInstance = (0, _chart.getChartInstance)(id, analytics, config);
setChart(chartInstance.getOptions());
}
}, [analytics, config, id]);
return {
chart,
changeChartType
};
}