fix(app): remove input event listener from scrollbar hook that raced with RNW controlled input
The scrollbar hook's raw DOM `input` listener on the textarea called setState before React Native Web's delegated handler could process the same event, causing a re-render with the stale controlled value and swallowing the edit. Scroll and ResizeObserver already cover all scrollbar metric updates.
This commit is contained in:
@@ -77,7 +77,6 @@ export function useWebElementScrollbar(
|
|||||||
}
|
}
|
||||||
|
|
||||||
element.addEventListener("scroll", update, { passive: true });
|
element.addEventListener("scroll", update, { passive: true });
|
||||||
element.addEventListener("input", update, { passive: true });
|
|
||||||
|
|
||||||
const resizeObserver = new ResizeObserver(update);
|
const resizeObserver = new ResizeObserver(update);
|
||||||
resizeObserver.observe(element);
|
resizeObserver.observe(element);
|
||||||
@@ -90,7 +89,6 @@ export function useWebElementScrollbar(
|
|||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
element.removeEventListener("scroll", update);
|
element.removeEventListener("scroll", update);
|
||||||
element.removeEventListener("input", update);
|
|
||||||
resizeObserver.disconnect();
|
resizeObserver.disconnect();
|
||||||
element.removeAttribute("data-hide-scrollbar");
|
element.removeAttribute("data-hide-scrollbar");
|
||||||
(element.style as any).scrollbarWidth = "";
|
(element.style as any).scrollbarWidth = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user