fix style pasting (#832)

* fix style pasting

* Update src/actions/actionStyles.ts
This commit is contained in:
Faustino Kialungila 2020-02-24 15:21:13 +01:00 committed by GitHub
parent fbab93baff
commit 2ad0716f3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 2 deletions

View File

@ -1,5 +1,9 @@
import { Action } from "./types";
import { isTextElement, redrawTextBoundingBox } from "../element";
import {
isTextElement,
isExcalidrawElement,
redrawTextBoundingBox,
} from "../element";
import { KEYS } from "../keys";
let copiedStyles: string = "{}";
@ -22,6 +26,9 @@ export const actionPasteStyles: Action = {
name: "pasteStyles",
perform: elements => {
const pastedElement = JSON.parse(copiedStyles);
if (!isExcalidrawElement(pastedElement)) {
return { elements };
}
return {
elements: elements.map(element => {
if (element.isSelected) {

View File

@ -14,7 +14,7 @@ export {
getCursorForResizingElement,
normalizeResizeHandle,
} from "./resizeTest";
export { isTextElement } from "./typeChecks";
export { isTextElement, isExcalidrawElement } from "./typeChecks";
export { textWysiwyg } from "./textWysiwyg";
export { redrawTextBoundingBox } from "./textElement";
export {

View File

@ -5,3 +5,14 @@ export function isTextElement(
): element is ExcalidrawTextElement {
return element.type === "text";
}
export function isExcalidrawElement(element: any): boolean {
return (
element?.type === "text" ||
element?.type === "diamond" ||
element?.type === "rectangle" ||
element?.type === "ellipse" ||
element?.type === "arrow" ||
element?.type === "line"
);
}