fix: allow adding text via enter only for text containers (#5891)

* fix: allow adding text via enter only for text containers

* fix

* fix

* fix

* move check isTextElement outside
This commit is contained in:
Aakansha Doshi 2022-11-17 15:26:18 +05:30 committed by GitHub
parent 4709b953e7
commit 96a5d6548b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 9 deletions

View file

@ -259,6 +259,7 @@ import {
getApproxMinLineWidth,
getBoundTextElement,
getContainerDims,
isValidTextContainer,
} from "../element/textElement";
import { isHittingElementNotConsideringBoundingBox } from "../element/collision";
import {
@ -1974,7 +1975,9 @@ class App extends React.Component<AppProps, AppState> {
);
if (selectedElements.length === 1) {
if (isLinearElement(selectedElements[0])) {
const selectedElement = selectedElements[0];
if (isLinearElement(selectedElement)) {
if (
!this.state.editingLinearElement ||
this.state.editingLinearElement.elementId !==
@ -1983,14 +1986,15 @@ class App extends React.Component<AppProps, AppState> {
this.history.resumeRecording();
this.setState({
editingLinearElement: new LinearElementEditor(
selectedElements[0],
selectedElement,
this.scene,
),
});
}
} else {
const selectedElement = selectedElements[0];
} else if (
isTextElement(selectedElement) ||
isValidTextContainer(selectedElement)
) {
this.startTextEditing({
sceneX: selectedElement.x + selectedElement.width / 2,
sceneY: selectedElement.y + selectedElement.height / 2,
@ -2610,8 +2614,7 @@ class App extends React.Component<AppProps, AppState> {
);
if (selectedElements.length === 1) {
const selectedElement = selectedElements[0];
const canBindText = hasBoundTextElement(selectedElement);
if (canBindText) {
if (hasBoundTextElement(selectedElement)) {
sceneX = selectedElement.x + selectedElement.width / 2;
sceneY = selectedElement.y + selectedElement.height / 2;
}
@ -3913,8 +3916,7 @@ class App extends React.Component<AppProps, AppState> {
includeBoundTextElement: true,
});
const canBindText = hasBoundTextElement(element);
if (canBindText) {
if (hasBoundTextElement(element)) {
sceneX = element.x + element.width / 2;
sceneY = element.y + element.height / 2;
}