Skip to content

Commit 56eeedd

Browse files
committed
Improve input element detection for resize observer
1 parent 40045dd commit 56eeedd

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

Diff for: src/webchat-ui/components/history/ChatScroller.tsx

+18-10
Original file line numberDiff line numberDiff line change
@@ -158,20 +158,28 @@ const ScrollerContent = ({ children, scrolledToLastInput, setShouldScrollToLastI
158158
const [inputHeight, setInputHeight] = useState(0);
159159

160160
useEffect(() => {
161-
const resizeObserver = new ResizeObserver(entries => {
162-
for (const entry of entries) {
163-
setInputHeight(entry.contentRect.height);
161+
const observeElement = element => {
162+
const resizeObserver = new ResizeObserver(entries => {
163+
for (const entry of entries) {
164+
setInputHeight(entry.contentRect.height);
165+
}
166+
});
167+
resizeObserver.observe(element);
168+
169+
return () => resizeObserver.disconnect();
170+
};
171+
172+
const mutationObserver = new MutationObserver(() => {
173+
const inputElement = document.querySelector(".webchat-input");
174+
if (inputElement) {
175+
observeElement(inputElement);
176+
mutationObserver.disconnect();
164177
}
165178
});
166179

167-
const inputElement = document.querySelector(".webchat-input");
168-
if (inputElement) {
169-
resizeObserver.observe(inputElement);
170-
}
180+
mutationObserver.observe(document.body, { childList: true, subtree: true });
171181

172-
return () => {
173-
resizeObserver.disconnect();
174-
};
182+
return () => mutationObserver.disconnect();
175183
}, []);
176184

177185
return (

0 commit comments

Comments
 (0)