diff --git a/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js b/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js index 82973f2cfee..3663daf9d33 100644 --- a/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js +++ b/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js @@ -323,6 +323,22 @@ const Results = ({ results }) => { ['INPUT', 'TEXTAREA'] ) + useEffect(() => { + let timeoutId = 0 + + if (copiedCell) { + timeoutId = setTimeout(() => { + setCopiedCell(undefined) + }, 1000) + } + + return () => { + // we need to clear previous timeout to prevent checkmark flickering + // when clicking `Copy` btn multiple times in a short time + timeoutId && clearTimeout(timeoutId) + } + }, [copiedCell]) + if (results?.error) { return (
@@ -338,20 +354,6 @@ const Results = ({ results }) => { ) } - useEffect(() => { - let timeoutId = 0 - - if (copiedCell) { - timeoutId = setTimeout(() => { - setCopiedCell(undefined) - }, 1000) - } - - return () => { - timeoutId && clearTimeout(timeoutId) - } - }, [copiedCell]) - const handleCopyClick = (column, row, rowIndex) => { copyToClipboard(formatClipboardValue(row[column]), () => { setCopiedCell(`${column},${rowIndex}`)