mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-10-31 10:54:33 +01:00 
			
		
		
		
	Implement line editing (#1616)
* implement line editing * line editing with rotation * ensure adding new points is disabled on point dragging * fix hotkey replacement * don't paint bounding box when creating new multipoint * tweak points style, account for zoom and z-index * don't persist editingLinearElement to localStorage * don't mutate on noop points updates * account for rotation when adding new point * ensure clicking on points doesn't deselect element * tweak history handling around editingline element * update snapshots * refactor pointerMove handling * factor out point dragging * factor out pointerDown * improve positioning with rotation * revert to use roughjs for calculating points bounds * migrate from storing editingLinearElement.element to id * make GlobalScene.getElement into O(1) * use Alt for adding new points * fix adding and deleting a point with rotation * disable resize handlers & bounding box on line edit Co-authored-by: daishi <daishi@axlight.com>
This commit is contained in:
		| @@ -6,6 +6,7 @@ import { getSelectedElements } from "../scene"; | ||||
| import "./HintViewer.scss"; | ||||
| import { AppState } from "../types"; | ||||
| import { isLinearElement } from "../element/typeChecks"; | ||||
| import { getShortcutKey } from "../utils"; | ||||
|  | ||||
| interface Hint { | ||||
|   appState: AppState; | ||||
| @@ -43,11 +44,20 @@ const getHints = ({ appState, elements }: Hint) => { | ||||
|     return t("hints.rotate"); | ||||
|   } | ||||
|  | ||||
|   if (selectedElements.length === 1 && isLinearElement(selectedElements[0])) { | ||||
|     if (appState.editingLinearElement) { | ||||
|       return appState.editingLinearElement.activePointIndex | ||||
|         ? t("hints.lineEditor_pointSelected") | ||||
|         : t("hints.lineEditor_nothingSelected"); | ||||
|     } | ||||
|     return t("hints.lineEditor_info"); | ||||
|   } | ||||
|  | ||||
|   return null; | ||||
| }; | ||||
|  | ||||
| export const HintViewer = ({ appState, elements }: Hint) => { | ||||
|   const hint = getHints({ | ||||
|   let hint = getHints({ | ||||
|     appState, | ||||
|     elements, | ||||
|   }); | ||||
| @@ -55,6 +65,8 @@ export const HintViewer = ({ appState, elements }: Hint) => { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   hint = getShortcutKey(hint); | ||||
|  | ||||
|   return ( | ||||
|     <div className="HintViewer"> | ||||
|       <span>{hint}</span> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 David Luzar
					David Luzar