|
@@ -64,7 +64,7 @@ import {
|
|
actionPasteStyles
|
|
actionPasteStyles
|
|
} from "./actions";
|
|
} from "./actions";
|
|
import { SidePanel } from "./components/SidePanel";
|
|
import { SidePanel } from "./components/SidePanel";
|
|
-import { ActionResult } from "./actions/types";
|
|
|
|
|
|
+import { Action, ActionResult } from "./actions/types";
|
|
import { getDefaultAppState } from "./appState";
|
|
import { getDefaultAppState } from "./appState";
|
|
|
|
|
|
let { elements } = createScene();
|
|
let { elements } = createScene();
|
|
@@ -123,6 +123,7 @@ export class App extends React.Component<{}, AppState> {
|
|
rc: RoughCanvas | null = null;
|
|
rc: RoughCanvas | null = null;
|
|
|
|
|
|
actionManager: ActionManager = new ActionManager();
|
|
actionManager: ActionManager = new ActionManager();
|
|
|
|
+ canvasOnlyActions: Array<Action>;
|
|
constructor(props: any) {
|
|
constructor(props: any) {
|
|
super(props);
|
|
super(props);
|
|
this.actionManager.registerAction(actionDeleteSelected);
|
|
this.actionManager.registerAction(actionDeleteSelected);
|
|
@@ -151,6 +152,8 @@ export class App extends React.Component<{}, AppState> {
|
|
|
|
|
|
this.actionManager.registerAction(actionCopyStyles);
|
|
this.actionManager.registerAction(actionCopyStyles);
|
|
this.actionManager.registerAction(actionPasteStyles);
|
|
this.actionManager.registerAction(actionPasteStyles);
|
|
|
|
+
|
|
|
|
+ this.canvasOnlyActions = [actionSelectAll];
|
|
}
|
|
}
|
|
|
|
|
|
private syncActionResult = (res: ActionResult) => {
|
|
private syncActionResult = (res: ActionResult) => {
|
|
@@ -398,7 +401,13 @@ export class App extends React.Component<{}, AppState> {
|
|
navigator.clipboard && {
|
|
navigator.clipboard && {
|
|
label: "Paste",
|
|
label: "Paste",
|
|
action: () => this.pasteFromClipboard()
|
|
action: () => this.pasteFromClipboard()
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ ...this.actionManager.getContextMenuItems(
|
|
|
|
+ elements,
|
|
|
|
+ this.state,
|
|
|
|
+ this.syncActionResult,
|
|
|
|
+ action => this.canvasOnlyActions.includes(action)
|
|
|
|
+ )
|
|
],
|
|
],
|
|
top: e.clientY,
|
|
top: e.clientY,
|
|
left: e.clientX
|
|
left: e.clientX
|
|
@@ -425,7 +434,8 @@ export class App extends React.Component<{}, AppState> {
|
|
...this.actionManager.getContextMenuItems(
|
|
...this.actionManager.getContextMenuItems(
|
|
elements,
|
|
elements,
|
|
this.state,
|
|
this.state,
|
|
- this.syncActionResult
|
|
|
|
|
|
+ this.syncActionResult,
|
|
|
|
+ action => !this.canvasOnlyActions.includes(action)
|
|
)
|
|
)
|
|
],
|
|
],
|
|
top: e.clientY,
|
|
top: e.clientY,
|