Type action names (#1079)

* Type action names

* improve typing

Co-authored-by: dwelle <luzar.david@gmail.com>
This commit is contained in:
Faustino Kialungila
2020-03-25 14:13:59 +01:00
committed by GitHub
parent 9cc1037e7b
commit 4442addc02
2 changed files with 39 additions and 5 deletions

View File

@ -17,8 +17,41 @@ type ActionFn = (
export type UpdaterFn = (res: ActionResult, commitToHistory?: boolean) => void;
export type ActionFilterFn = (action: Action) => void;
export type ActionName =
| "sendBackward"
| "bringForward"
| "sendToBack"
| "bringToFront"
| "copyStyles"
| "selectAll"
| "pasteStyles"
| "changeStrokeColor"
| "changeBackgroundColor"
| "changeFillStyle"
| "changeStrokeWidth"
| "changeSloppiness"
| "changeOpacity"
| "changeFontSize"
| "toggleCanvasMenu"
| "toggleEditMenu"
| "undo"
| "redo"
| "finalize"
| "changeProjectName"
| "changeExportBackground"
| "saveScene"
| "loadScene"
| "duplicateSelection"
| "deleteSelectedElements"
| "changeViewBackgroundColor"
| "clearCanvas"
| "zoomIn"
| "zoomOut"
| "resetZoom"
| "changeFontFamily";
export interface Action {
name: string;
name: ActionName;
PanelComponent?: React.FC<{
elements: readonly ExcalidrawElement[];
appState: AppState;
@ -37,12 +70,12 @@ export interface Action {
export interface ActionsManagerInterface {
actions: {
[keyProp: string]: Action;
[actionName in ActionName]: Action;
};
registerAction: (action: Action) => void;
handleKeyDown: (event: KeyboardEvent) => boolean;
getContextMenuItems: (
actionFilter: ActionFilterFn,
) => { label: string; action: () => void }[];
renderAction: (name: string) => React.ReactElement | null;
renderAction: (name: ActionName) => React.ReactElement | null;
}