UNPKG

awv3

Version:
45 lines (41 loc) 1.38 kB
import DragHandler from './drag'; import DrawHandler from './draw'; import AngleHandler from './angle'; import FilletHandler from './fillet'; import DuplicateHandler from './duplicate'; import TrimHandler from './trim'; function getHandlerClass(name) { switch (name) { case 'drag': return DragHandler; case 'point': case 'line': case 'arccenter': case 'arcmiddle': case 'arctangent': case 'circle': return DrawHandler; case 'angle': return AngleHandler; case 'fillet': return FilletHandler; case 'duplicate': return DuplicateHandler; case 'trim': return TrimHandler; } } // destroy oldHandler (if needed) and return the new handler export default function Handler(sketcher, name, oldHandler) { const oldClass = getHandlerClass(oldHandler && oldHandler.name), newClass = getHandlerClass(name); let handler = oldHandler; if (oldClass !== newClass) { oldHandler && oldHandler.destroy(); handler = new newClass(sketcher, name); handler.addInteractions(); } if (newClass === DrawHandler) handler.switchMode(name); return handler; } // Support hot reloading if (module.hot) module.hot.accept(['./drag', './draw', './angle', './fillet', './duplicate', './trim']);