mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2025-05-05 15:43:43 +03:00
* Use rollup for d3tooltip * Use rollup for map2tree * Set moduleResolution * Use rollup for d3-state-visualizer * Use rollup for react-base16-styling * Use rollup for react-dock * Use rollup for react-json-tree * Use rollup for redux-devtools * Use rollup for redux-devtools-intrument * Use rollup for redux-devtools-chart-monitor * Update export * Use rollup for redux-devtools-dock-monitor * Use rollup for redux-devtools-inspector-monitor * Fix inspector demo * Fix invalid eslint config * Use rollup for inspector-monitor-test-tab * Use rollup for inspector-monitor-trace-tab * Use rollup for redux-devtools-log-monitor * Use rollup for redux-devtools-remote * Use rollup in redux-devtools-rtk-query-monitor * Use rollup for redux-devtools-serialize * Fix redux-devtools examples * Use rollup for redux-devtools-slider-monitor * Fix slider examples * Use rollup for redux-devtools-ui * Use rollup for redux-devtools-utils * Use rollup for redux-devtools-extension * Use rollup for redux-devtools-app * Fix Webpack app build * Fix extension build * Turn on minimization * Update CLI
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import {
|
|
getActiveInstance,
|
|
LIFTED_ACTION,
|
|
StoreAction,
|
|
StoreState,
|
|
TOGGLE_PERSIST,
|
|
UPDATE_STATE,
|
|
} from '@redux-devtools/app';
|
|
import { Dispatch, MiddlewareAPI, Store } from 'redux';
|
|
import { BackgroundState } from '../reducers/background';
|
|
import { WindowStoreAction } from '../stores/windowStore';
|
|
import { BackgroundAction } from '../stores/backgroundStore';
|
|
|
|
const syncStores =
|
|
(baseStore: Store<BackgroundState, BackgroundAction>) =>
|
|
(store: MiddlewareAPI<Dispatch<StoreAction>, StoreState>) =>
|
|
(next: Dispatch<WindowStoreAction>) =>
|
|
(action: StoreAction) => {
|
|
if (action.type === UPDATE_STATE) {
|
|
return next({
|
|
...action,
|
|
instances: baseStore.getState().instances,
|
|
});
|
|
}
|
|
if (action.type === LIFTED_ACTION || action.type === TOGGLE_PERSIST) {
|
|
const instances = store.getState().instances;
|
|
const instanceId = getActiveInstance(instances);
|
|
const id = instances.options[instanceId].connectionId;
|
|
baseStore.dispatch({ ...action, instanceId, id } as any);
|
|
}
|
|
return next(action);
|
|
};
|
|
|
|
export default syncStores;
|