Send to back (#98)

This commit is contained in:
Christopher Chedeau 2020-01-03 21:03:25 -08:00 committed by GitHub
parent b1a90c0020
commit 0d5272720f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 180 additions and 1 deletions

View file

@ -11,6 +11,8 @@ import {
faFont
} from "@fortawesome/free-solid-svg-icons";
import { moveOneLeft, moveAllLeft } from "./zindex";
import "./styles.css";
type ExcalidrawElement = ReturnType<typeof newElement>;
@ -647,6 +649,16 @@ function isArrowKey(keyCode: string) {
);
}
function getSelectedIndices() {
const selectedIndices: number[] = [];
elements.forEach((element, index) => {
if (element.isSelected) {
selectedIndices.push(index);
}
});
return selectedIndices;
}
const ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;
const ELEMENT_TRANSLATE_AMOUNT = 1;
@ -710,7 +722,26 @@ class App extends React.Component<{}, AppState> {
});
this.forceUpdate();
event.preventDefault();
} else if (event.key === "a" && event.metaKey) {
// Send backwards: Cmd-Shift-Alt-B
} else if (
event.metaKey &&
event.shiftKey &&
event.altKey &&
event.code === "KeyB"
) {
moveOneLeft(elements, getSelectedIndices());
this.forceUpdate();
event.preventDefault();
// Send to back: Cmd-Shift-B
} else if (event.metaKey && event.shiftKey && event.code === "KeyB") {
moveAllLeft(elements, getSelectedIndices());
this.forceUpdate();
event.preventDefault();
// Select all: Cmd-A
} else if (event.metaKey && event.code === "KeyA") {
elements.forEach(element => {
element.isSelected = true;
});