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

75% Statements 6/8
50% Branches 1/2
100% Functions 2/2
75% Lines 6/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                            340x 4x     340x         340x     340x     340x        
import { state } from '../state';
import ToolGroup from './ToolGroup';
import type { 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
  );
 
  Iif (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;