export default function panelReducer()

in src/state/panel/panelReducer.ts [94:122]


export default function panelReducer<NodeType, EdgeType>(
  state: DiagramMakerPanels | undefined, action: DiagramMakerAction<NodeType, EdgeType>
): DiagramMakerPanels {
  if (state === undefined) {
    return {};
  }
  switch (action.type) {
    case PanelActionsType.PANEL_RESIZE:
      return produce(state, (draftState) => {
        if (draftState[action.payload.id]) {
          draftState[action.payload.id].size = action.payload.size;
        }
      });
    case PanelActionsType.PANEL_DRAG:
      return produce(state, (draftState) => {
        if (draftState[action.payload.id] && !draftState[action.payload.id].positionAnchor) {
          dragReducer(draftState, action);
        }
      });
    case PanelActionsType.PANEL_DRAG_START:
      return produce(state, (draftState) => {
        if (draftState[action.payload.id]) {
          dragStartReducer(draftState, action);
        }
      });
    default:
      return state;
  }
}