UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

34 lines (33 loc) 1.45 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from 'react'; import { useSelector } from 'react-redux'; import { isEqual } from '../../../../Utilities/Extensions/ObjectExtensions'; import * as InternalRedux from '../../../../Redux/ActionsReducers/InternalRedux'; import { useAdaptable } from '../../../AdaptableContext'; export const PreviewChartSection = (props) => { const currentChartModels = useSelector((state) => InternalRedux.ChartingCurrentChartModelsSelector(state.Internal)); const [localChartId, setLocalChartId] = React.useState(null); const adaptable = useAdaptable(); const divRef = React.useRef(null); React.useEffect(() => { if (!divRef.current) { return; } const chartRef = adaptable.api.chartingApi.showChartDefinition(props.chartDefinition, divRef.current); setLocalChartId(chartRef.chartId); chartRef.chart; return () => { chartRef.destroyChart(); }; }, [divRef]); React.useEffect(() => { const model = currentChartModels.find((model) => model.chartId == localChartId); if (model && !isEqual(model, props.chartDefinition.Model)) { props.onChange({ ...props.chartDefinition, Model: model, }); } }, [currentChartModels]); return _jsx("div", { ref: divRef, className: "twa:min-h-[280px] twa:h-full twa:w-full" }); };