From e7e990f7576439a614e21e554f5552fa6ec89e08 Mon Sep 17 00:00:00 2001 From: Yuri Mutti Date: Tue, 26 Sep 2023 12:16:40 -0300 Subject: [PATCH] refactor: usecallback on copy cell content (#17686) * refactor: usecallback on copy cell content * Update studio/components/grid/components/menu/RowContextMenu.tsx --------- Co-authored-by: Ivan Vasilov Co-authored-by: Terry Sutton --- .../grid/components/menu/RowContextMenu.tsx | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/studio/components/grid/components/menu/RowContextMenu.tsx b/studio/components/grid/components/menu/RowContextMenu.tsx index 628bbf728fb..28883f3d610 100644 --- a/studio/components/grid/components/menu/RowContextMenu.tsx +++ b/studio/components/grid/components/menu/RowContextMenu.tsx @@ -7,6 +7,7 @@ import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmM import { useTableRowDeleteMutation } from 'data/table-rows/table-row-delete-mutation' import { useDispatch, useTrackedState } from '../../store' import { copyToClipboard, formatClipboardValue } from '../../utils' +import { useCallback } from 'react' export const ROW_CONTEXT_MENU_ID = 'row-context-menu-id' @@ -66,23 +67,26 @@ const RowContextMenu = ({ table, rows }: RowContextMenuProps) => { return false } - function onCopyCellContent(p: ItemParams) { - const { props } = p + const onCopyCellContent = useCallback( + (p: ItemParams) => { + const { props } = p - if (!state.selectedCellPosition || !props) { - return - } + if (!state.selectedCellPosition || !props) { + return + } - const { rowIdx } = props - const row = rows[rowIdx] + const { rowIdx } = props + const row = rows[rowIdx] - const columnKey = state.gridColumns[state.selectedCellPosition?.idx as number].key + const columnKey = state.gridColumns[state.selectedCellPosition?.idx as number].key - const value = row[columnKey] - const text = formatClipboardValue(value) + const value = row[columnKey] + const text = formatClipboardValue(value) - copyToClipboard(text) - } + copyToClipboard(text) + }, + [rows, state.gridColumns, state.selectedCellPosition] + ) return ( <>