1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import React from "react";
- import { ExcalidrawElement } from "../element/types";
- import { AppState } from "../types";
- import { TFunction } from "i18next";
- export type ActionResult = {
- elements?: ExcalidrawElement[];
- appState?: AppState;
- };
- type ActionFn = (
- elements: readonly ExcalidrawElement[],
- appState: AppState,
- formData: any,
- ) => ActionResult;
- export type UpdaterFn = (res: ActionResult) => void;
- export type ActionFilterFn = (action: Action) => void;
- export interface Action {
- name: string;
- PanelComponent?: React.FC<{
- elements: readonly ExcalidrawElement[];
- appState: AppState;
- updateData: (formData: any) => void;
- t: TFunction;
- }>;
- perform: ActionFn;
- keyPriority?: number;
- keyTest?: (
- event: KeyboardEvent,
- elements?: readonly ExcalidrawElement[],
- appState?: AppState,
- ) => boolean;
- contextItemLabel?: string;
- contextMenuOrder?: number;
- }
- export interface ActionsManagerInterface {
- actions: {
- [keyProp: string]: Action;
- };
- registerAction: (action: Action) => void;
- handleKeyDown: (
- event: KeyboardEvent,
- elements: readonly ExcalidrawElement[],
- appState: AppState,
- ) => ActionResult | {};
- getContextMenuItems: (
- elements: readonly ExcalidrawElement[],
- appState: AppState,
- updater: UpdaterFn,
- actionFilter: ActionFilterFn,
- ) => { label: string; action: () => void }[];
- renderAction: (
- name: string,
- elements: readonly ExcalidrawElement[],
- appState: AppState,
- updater: UpdaterFn,
- t: TFunction,
- ) => React.ReactElement | null;
- }
|