redux-devtools/packages/redux-devtools-chart-monitor/src/reducers.ts
Nathan Bierema 65205f9078
Replace Action<unknown> with Action<string> (#1525)
* Replace Action<unknown> with Action<string>

In anticipation of Redux 5 type changes

* Fix lint errors

* Create yellow-steaks-marry.md
2023-11-04 21:04:23 +00:00

34 lines
811 B
TypeScript

import { Action } from 'redux';
import { ChartMonitorAction, TOGGLE_VISIBILITY } from './actions';
import { ChartMonitorProps } from './ChartMonitor';
function toggleVisibility<S, A extends Action<string>>(
props: ChartMonitorProps<S, A>,
state = props.defaultIsVisible,
action: ChartMonitorAction,
): boolean {
if (action.type === TOGGLE_VISIBILITY) {
return !state;
}
if (props.defaultIsVisible !== undefined) {
return props.defaultIsVisible;
}
return true;
}
export interface ChartMonitorState {
isVisible?: boolean;
}
export default function reducer<S, A extends Action<string>>(
props: ChartMonitorProps<S, A>,
state: ChartMonitorState | undefined = {},
action: ChartMonitorAction,
) {
return {
isVisible: toggleVisibility(props, state.isVisible, action),
};
}