Add settings page for managing forecasting API key and URL via UI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jtricerolph 2026-07-20 14:37:36 +00:00
parent cae411eae7
commit 1c411e402e
19809 changed files with 1962608 additions and 97 deletions

View file

@ -0,0 +1,38 @@
import { memo, useEffect } from 'react';
import { useIsPanorama } from '../context/PanoramaContext';
import { setLayout, setMargin } from './layoutSlice';
import { useAppDispatch } from './hooks';
import { propsAreEqual } from '../util/propsAreEqual';
/**
* "Main" props are props that are only accepted on the main chart,
* as opposed to the small panorama chart inside a Brush.
*/
function ReportMainChartPropsImpl(_ref) {
var layout = _ref.layout,
margin = _ref.margin;
var dispatch = useAppDispatch();
/*
* Skip dispatching properties in panorama chart for two reasons:
* 1. The root chart should be deciding on these properties, and
* 2. Brush reads these properties from redux store, and so they must remain stable
* to avoid circular dependency and infinite re-rendering.
*/
var isPanorama = useIsPanorama();
/*
* useEffect here is required to avoid the "Cannot update a component while rendering a different component" error.
* https://github.com/facebook/react/issues/18178
*
* Reported in https://github.com/recharts/recharts/issues/5514
*/
useEffect(() => {
if (!isPanorama) {
dispatch(setLayout(layout));
dispatch(setMargin(margin));
}
}, [dispatch, isPanorama, layout, margin]);
return null;
}
export var ReportMainChartProps = /*#__PURE__*/memo(ReportMainChartPropsImpl, propsAreEqual);