7daf1a7944
* feat: Add Eraser 🎉
* Eraser working
* remove unused state
* fix
* toggle eraser
* Support deselect with Alt/Option
* rename actionDelete -> actionErase
* Add util isEraserActive
* show eraser in mobile
* render eraser conditionally in mobile
* use selection if eraser in local storage state
* Add sampling to erase accurately
* use pointerDownState
* set eraser to false in AllowedExcalidrawElementTypes
* rename/reword fixes
* don't use updateScene
* handle bound text when erasing
* fix hover state in mobile
* consider all hitElements instead of a single
* code improvements
* revert to select if eraser active and elements selected
* show eraser in zenmode
* erase element when clicked on element while eraser active
* set groupIds to empty when eraser active
* fix test
* remove dragged distance
16 lines
499 B
TypeScript
16 lines
499 B
TypeScript
import { AppState } from "../types";
|
|
import { NonDeletedExcalidrawElement } from "./types";
|
|
import { getSelectedElements } from "../scene";
|
|
|
|
export const showSelectedShapeActions = (
|
|
appState: AppState,
|
|
elements: readonly NonDeletedExcalidrawElement[],
|
|
) =>
|
|
Boolean(
|
|
!appState.viewModeEnabled &&
|
|
(appState.editingElement ||
|
|
getSelectedElements(elements, appState).length ||
|
|
(appState.elementType !== "selection" &&
|
|
appState.elementType !== "eraser")),
|
|
);
|