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

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

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                          199x 102x     199x 102x   102x 102x          
import { state } from '../index';
import { removeSegmentationsFromToolGroup } from '../../stateManagement/segmentation';
import { segmentationRenderingEngine } from '../../utilities/segmentation/triggerSegmentationRender';
// ToolGroups function entirely by their "state" being queried and leveraged
// removing a ToolGroup from state is equivalent to killing it
 
/**
 * Given a tool group Id, destroy the toolGroup. It will also cleanup all segmentations
 * associated with that tool group too
 *
 * @param toolGroupId - The Id of the tool group to be destroyed.
 */
function destroyToolGroup(toolGroupId: string): void {
  const toolGroupIndex = state.toolGroups.findIndex(
    (tg) => tg.id === toolGroupId
  );
 
  if (toolGroupIndex > -1) {
    segmentationRenderingEngine.removeToolGroup(toolGroupId);
    // Todo: this should not happen here)
    removeSegmentationsFromToolGroup(toolGroupId);
    state.toolGroups.splice(toolGroupIndex, 1);
  }
}
 
export default destroyToolGroup;