From ac65b1d97b2b675d2b5b59c885686e67b2b2b1ec Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 9 Sep 2024 19:24:43 +0530 Subject: [PATCH] fix: fixed problem related to widget selection --- src/canvas/canvas.js | 8 +++---- src/canvas/widgets/base.js | 39 +++++++++++++++-------------------- src/components/editableDiv.js | 13 +++++++++++- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/canvas/canvas.js b/src/canvas/canvas.js index 6ce0b3a..af11f16 100644 --- a/src/canvas/canvas.js +++ b/src/canvas/canvas.js @@ -96,10 +96,10 @@ class Canvas extends React.Component { this.canvasContainerRef.current.addEventListener("mousemove", this.mouseMoveEvent) - this.canvasRef.current.addEventListener("selection:created", () => { - console.log("selected") - this.currentMode = this.modes.DEFAULT - }) + // this.canvasRef.current.addEventListener("selection:created", () => { + // console.log("selected") + // this.currentMode = this.modes.DEFAULT + // }) this.canvasContainerRef.current.addEventListener('wheel', (event) => { this.wheelZoom(event) diff --git a/src/canvas/widgets/base.js b/src/canvas/widgets/base.js index 8acc012..8b03379 100644 --- a/src/canvas/widgets/base.js +++ b/src/canvas/widgets/base.js @@ -119,37 +119,32 @@ class Widget extends React.Component{ mousePress(event){ // event.preventDefault() if (!this._disableSelection){ - this.setState((prev) => ({ - ...prev, - selected: false - })) - const widgetSelected = new CustomEvent("selection:created", { - detail: { - event, - id: this.__id, - element: this - }, - // bubbles: true // Allow the event to bubble up the DOM tree - }) - // document.dispatchEvent(widgetSelected) - // console.log("dispatched", this.canvas) - this.canvas.dispatchEvent(widgetSelected) + // const widgetSelected = new CustomEvent("selection:created", { + // detail: { + // event, + // id: this.__id, + // element: this + // }, + // // bubbles: true // Allow the event to bubble up the DOM tree + // }) + // this.canvas.dispatchEvent(widgetSelected) } } select(){ - this.setState((prev) => ({ - ...prev, + this.setState({ selected: true - })) + }) + console.log("selected") } deSelect(){ - this.setState((prev) => ({ - ...prev, + this.setState({ selected: false - })) + }) + console.log("DeSelected") + } isSelected(){ @@ -240,7 +235,7 @@ class Widget extends React.Component{ } diff --git a/src/components/editableDiv.js b/src/components/editableDiv.js index de5e1ce..3230510 100644 --- a/src/components/editableDiv.js +++ b/src/components/editableDiv.js @@ -13,9 +13,19 @@ function EditableDiv({value, onChange, maxLength=Infinity, className='', inputCl }, [value]) const handleInput = (event) => { - console.log("value: ", event.target.value) + + console.log("Event key: ", event.key) onChange(event.target.value) + // if (event.key === "") + } + + const handleEnterKey = (event) => { + console.log("Event key: ", event.key) + + if (event.key === "Enter"){ + setIsEditable(false) + } } const handleDoubleClick = () => { @@ -38,6 +48,7 @@ function EditableDiv({value, onChange, maxLength=Infinity, className='', inputCl onInput={handleInput} maxLength={maxLength} ref={inputRef} + onKeyDown={handleEnterKey} className={`${!isEditable && "tw-hidden"} tw-outline-none tw-bg-transparent tw-border-none tw-p-1