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

100% Statements 6/6
100% Branches 0/0
100% Functions 1/1
100% Lines 5/5

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                          240x 80x   80x 74x     80x        
// `BaseManager` or IManager interface for duplicate API between ToolGroup/Synchronizer?
import { state as csToolsState } from '../index';
import destroyToolGroup from './destroyToolGroup';
 
// ToolGroups function entirely by their "state" being queried and leveraged
// removing a ToolGroup from state is equivalent to killing it. Calling
// destroyToolGroup() to make sure the SegmentationDisplayTools
// have been removed from the toolGroup Viewports. //Todo: this makes more sense
// to be based on events, but we don't have any toolGroup created/removed events
 
/**
 * Destroy all tool groups
 */
function destroy(): void {
  const toolGroups = [...csToolsState.toolGroups];
 
  for (const toolGroup of toolGroups) {
    destroyToolGroup(toolGroup.id);
  }
 
  csToolsState.toolGroups = [];
}
 
export default destroy;