Skip to content

Commit e1d0286

Browse files
committed
Implement height adjustment for textarea on mount
Add useEffect to adjust textarea height on mount Issue : #647
1 parent a48e6ef commit e1d0286

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/components/EditorCanvas/Note.jsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useMemo, useState, useRef } from "react";
1+
import { useMemo, useState, useRef, useEffect } from "react";
22
import { Action, ObjectType, Tab, State } from "../../data/constants";
33
import { Input, Button, Popover } from "@douyinfe/semi-ui";
44
import ColorPicker from "../EditorSidePanel/ColorPicker";
@@ -169,6 +169,14 @@ export default function Note({ data, onPointerDown }) {
169169
);
170170
}, [selectedElement, data, bulkSelectedElements]);
171171

172+
useEffect(() => {
173+
const textarea = document.getElementById(`note_${data.id}`);
174+
textarea.style.height = "0";
175+
textarea.style.height = textarea.scrollHeight + "px";
176+
const newHeight = textarea.scrollHeight + 42;
177+
updateNote(data.id, { height: newHeight });
178+
});
179+
172180
return (
173181
<g
174182
onPointerEnter={(e) => e.isPrimary && setHovered(true)}
@@ -364,4 +372,4 @@ export default function Note({ data, onPointerDown }) {
364372
</foreignObject>
365373
</g>
366374
);
367-
}
375+
}

0 commit comments

Comments
 (0)