| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { getNonDeletedElements } from "../element";
- import { LinearElementEditor } from "../element/linearElementEditor";
- import { isLinearElement } from "../element/typeChecks";
- import { ExcalidrawLinearElement } from "../element/types";
- import { getSelectedElements } from "../scene";
- import { register } from "./register";
- export const actionToggleLinearEditor = register({
- name: "toggleLinearEditor",
- trackEvent: {
- category: "element",
- },
- contextItemPredicate: (elements, appState) => {
- const selectedElements = getSelectedElements(elements, appState);
- if (selectedElements.length === 1 && isLinearElement(selectedElements[0])) {
- return true;
- }
- return false;
- },
- perform(elements, appState, _, app) {
- const selectedElement = getSelectedElements(
- getNonDeletedElements(elements),
- appState,
- true,
- )[0] as ExcalidrawLinearElement;
- const editingLinearElement =
- appState.editingLinearElement?.elementId === selectedElement.id
- ? null
- : new LinearElementEditor(selectedElement, app.scene);
- return {
- appState: {
- ...appState,
- editingLinearElement,
- },
- commitToHistory: false,
- };
- },
- contextItemLabel: (elements, appState) => {
- const selectedElement = getSelectedElements(
- getNonDeletedElements(elements),
- appState,
- true,
- )[0] as ExcalidrawLinearElement;
- return appState.editingLinearElement?.elementId === selectedElement.id
- ? "labels.lineEditor.exit"
- : "labels.lineEditor.edit";
- },
- });
|