All files / publisher/pages/Releases/actions branches.ts

100% Statements 9/9
100% Branches 2/2
100% Functions 4/4
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37    4x 4x                 3x             3x             2x 2x   2x 1x   1x        
import { GenericReleasesAction, DispatchFn, ReleasesReduxState } from "../../../types/releaseTypes";
 
export const OPEN_BRANCHES = "OPEN_BRANCHES";
export const CLOSE_BRANCHES = "CLOSE_BRANCHES";
 
export type OpenBranchesAction = GenericReleasesAction<typeof OPEN_BRANCHES, string>;
 
export type CloseBranchesAction = GenericReleasesAction<typeof CLOSE_BRANCHES, string>;
 
export type BranchesAction = OpenBranchesAction | CloseBranchesAction;
 
export function openBranches(channelName: string): OpenBranchesAction {
  return {
    type: OPEN_BRANCHES,
    payload: channelName,
  };
}
 
export function closeBranches(channelName: string): CloseBranchesAction {
  return {
    type: CLOSE_BRANCHES,
    payload: channelName,
  };
}
 
export function toggleBranches(channelName: string) {
  return (dispatch: DispatchFn, getState: () => ReleasesReduxState) => {
    const { branches } = getState();
 
    if (branches.includes(channelName)) {
      dispatch(closeBranches(channelName));
    } else {
      dispatch(openBranches(channelName));
    }
  };
}