From e525edd70dcfd9c75bd2853d0debb009f2ab3928 Mon Sep 17 00:00:00 2001 From: gitstart Date: Sun, 16 Oct 2022 06:57:51 +0000 Subject: [PATCH] chore: implements suggested improvements --- .../to-be-cleaned/SqlEditor/TabSqlQuery.js | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js b/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js index fc42aef8ec1..82973f2cfee 100644 --- a/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js +++ b/studio/components/to-be-cleaned/SqlEditor/TabSqlQuery.js @@ -1,11 +1,12 @@ import Split from 'react-split' import Editor from '@monaco-editor/react' import DataGrid from '@supabase/react-data-grid' +import classNames from 'classnames' import { CSVLink } from 'react-csv' import { debounce } from 'lodash' import { observer } from 'mobx-react-lite' import { useEffect, useRef, useState } from 'react' -import { Button, Dropdown, IconChevronDown, IconClipboard } from 'ui' +import { Button, Dropdown, IconCheck, IconChevronDown, IconClipboard } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useKeyboardShortcuts, useStore, useWindowDimensions, checkPermissions } from 'hooks' @@ -306,6 +307,7 @@ const UtilityTabResults = observer(() => { const Results = ({ results }) => { const [cellPosition, setCellPosition] = useState(undefined) + const [copiedCell, setCopiedCell] = useState(undefined) useKeyboardShortcuts( { @@ -336,7 +338,29 @@ const Results = ({ results }) => { ) } - const formatter = (column, row) => { + 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}`) + }) + } + + const formatter = (column, row, rowIndex) => { + const isCopied = copiedCell === `${column},${rowIndex}` + return (
{JSON.stringify(row[column])} @@ -344,9 +368,12 @@ const Results = ({ results }) => { {row[column] && (