const saveSnapshot = () => {
const snapshot = chartRef.current?.getSnapshot();
if (!snapshot) {
return;
}
const savedData = JSON.stringify({
...snapshot,
charts: snapshot.charts.map((chart) => ({
...chart,
panes: chart.panes.map((pane) => ({
...pane,
indicators: pane.indicators.map((indicator) => {
const compareSeries = indicator.config?.series[0];
return {
...indicator,
dataSource: undefined,
config:
indicator.indicatorType === undefined &&
indicator.config?.label &&
compareSeries
? {
label: indicator.config.label,
newPane: indicator.config.newPane,
series: [
{
name: compareSeries.name,
seriesOptions: {
priceScaleId:
compareSeries.seriesOptions?.priceScaleId,
},
},
],
}
: undefined,
};
}),
})),
})),
});
savedDataRef.current = savedData;
updateProperties((state) => {
state.moexChartState = {
...state.moexChartState,
tf: timeframeRef.current || Timeframes['1m'],
savedData,
};
});
};