From ec06fbc1fcad2a8fa9ebfd971f29b7301c15245e Mon Sep 17 00:00:00 2001 From: David Luzar <5153846+dwelle@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:30:15 +0100 Subject: [PATCH] fix: do not refocus element link input on unrelated updates (#9037) --- .../components/hyperlink/Hyperlink.tsx | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/packages/excalidraw/components/hyperlink/Hyperlink.tsx b/packages/excalidraw/components/hyperlink/Hyperlink.tsx index f94f6f392d..da187ef8da 100644 --- a/packages/excalidraw/components/hyperlink/Hyperlink.tsx +++ b/packages/excalidraw/components/hyperlink/Hyperlink.tsx @@ -171,15 +171,17 @@ export const Hyperlink = ({ }, [handleSubmit]); useEffect(() => { - let timeoutId: number | null = null; - if ( - inputRef && - inputRef.current && + isEditing && + inputRef?.current && !(device.viewport.isMobile || device.isTouchScreen) ) { inputRef.current.select(); } + }, [isEditing, device.viewport.isMobile, device.isTouchScreen]); + + useEffect(() => { + let timeoutId: number | null = null; const handlePointerMove = (event: PointerEvent) => { if (isEditing) { @@ -207,15 +209,7 @@ export const Hyperlink = ({ clearTimeout(timeoutId); } }; - }, [ - appState, - element, - isEditing, - setAppState, - elementsMap, - device.viewport.isMobile, - device.isTouchScreen, - ]); + }, [appState, element, isEditing, setAppState, elementsMap]); const handleRemove = useCallback(() => { trackEvent("hyperlink", "delete");