All files / packages/tools/src/store/ToolGroupManager createToolGroup.ts

100% Statements 8/8
100% Branches 2/2
100% Functions 2/2
100% Lines 8/8

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                            103x 3x     103x 1x 1x     102x     102x     102x        
import { state } from '../index';
import ToolGroup from './ToolGroup';
import { IToolGroup } from '../../types';
 
/**
 * Create a new tool group with the given name. ToolGroups are the new way
 * in Cornerstone3DTools to share tool configuration, state (enabled, disabled, etc.)
 * across a set of viewports.
 *
 * @param toolGroupId - The unique ID of the tool group.
 * @returns A reference to the tool group that was created.
 */
function createToolGroup(toolGroupId: string): IToolGroup | undefined {
  // Exit early if ID conflict
  const toolGroupWithIdExists = state.toolGroups.some(
    (tg) => tg.id === toolGroupId
  );
 
  if (toolGroupWithIdExists) {
    console.warn(`'${toolGroupId}' already exists.`);
    return;
  }
 
  const toolGroup = new ToolGroup(toolGroupId);
 
  // Update state
  state.toolGroups.push(toolGroup);
 
  // Return reference
  return toolGroup;
}
 
export default createToolGroup;