From 57babbdab3ece638ec81438a78d90533ed91e6f1 Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Tue, 15 Feb 2022 18:41:52 -0500 Subject: [PATCH 1/4] fix(15849): Removed the tooltip from CopyToClipboard button in sqllab --- .../src/components/CopyToClipboard/index.jsx | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/superset-frontend/src/components/CopyToClipboard/index.jsx b/superset-frontend/src/components/CopyToClipboard/index.jsx index cfd607bdef306..3400711f9510e 100644 --- a/superset-frontend/src/components/CopyToClipboard/index.jsx +++ b/superset-frontend/src/components/CopyToClipboard/index.jsx @@ -88,15 +88,7 @@ class CopyToClipboard extends React.Component { renderNotWrapped() { return ( - - {this.getDecoratedCopyNode()} - + this.getDecoratedCopyNode() ); } @@ -108,14 +100,7 @@ class CopyToClipboard extends React.Component { {this.props.text} )} - - {this.getDecoratedCopyNode()} - + {this.getDecoratedCopyNode()} ); } From f31d405625617567ec7c7b964caf43bd8faf17dc Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Wed, 16 Feb 2022 15:41:06 -0500 Subject: [PATCH 2/4] chore(sqllab): added props for tooltip in CopyToClipboard component --- .../src/SqlLab/components/ResultSet/index.tsx | 1 + .../src/components/CopyToClipboard/index.jsx | 31 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx index aa4abb9fe45f8..71514fa3b3901 100644 --- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx +++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx @@ -550,6 +550,7 @@ export default class ResultSet extends React.PureComponent< {t('Copy to Clipboard')} } + hasTooltip={false} /> {this.props.search && ( diff --git a/superset-frontend/src/components/CopyToClipboard/index.jsx b/superset-frontend/src/components/CopyToClipboard/index.jsx index 3400711f9510e..6dd5554149cfe 100644 --- a/superset-frontend/src/components/CopyToClipboard/index.jsx +++ b/superset-frontend/src/components/CopyToClipboard/index.jsx @@ -33,6 +33,7 @@ const propTypes = { tooltipText: PropTypes.string, addDangerToast: PropTypes.func.isRequired, addSuccessToast: PropTypes.func.isRequired, + hasTooltip: PropTypes.bool, }; const defaultProps = { @@ -41,6 +42,7 @@ const defaultProps = { shouldShowText: true, wrapped: true, tooltipText: t('Copy to clipboard'), + hasTooltip: true, }; class CopyToClipboard extends React.Component { @@ -88,7 +90,21 @@ class CopyToClipboard extends React.Component { renderNotWrapped() { return ( - this.getDecoratedCopyNode() + <> + {this.props.hasTooltip ? ( + + {this.getDecoratedCopyNode()} + + ) : ( + this.getDecoratedCopyNode() + )} + ); } @@ -100,7 +116,18 @@ class CopyToClipboard extends React.Component { {this.props.text} )} - {this.getDecoratedCopyNode()} + {this.props.hasTooltip ? ( + + {this.getDecoratedCopyNode()} + + ) : ( + this.getDecoratedCopyNode() + )} ); } From 239135fde7bd4f31b21e5865d972605f883e2654 Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Wed, 16 Feb 2022 16:28:54 -0500 Subject: [PATCH 3/4] fix(sqllab): Added arg to storybook and refactor the component --- .../src/SqlLab/components/ResultSet/index.tsx | 2 +- .../CopyToClipboard.stories.tsx | 1 + .../src/components/CopyToClipboard/index.jsx | 27 +++++++------------ 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx index 71514fa3b3901..01292d78e6a7e 100644 --- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx +++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx @@ -550,7 +550,7 @@ export default class ResultSet extends React.PureComponent< {t('Copy to Clipboard')} } - hasTooltip={false} + hideTooltip /> {this.props.search && ( diff --git a/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx b/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx index adb44a36f6556..3a52af59918db 100644 --- a/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx +++ b/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx @@ -49,6 +49,7 @@ InteractiveCopyToClipboard.args = { text: 'http://superset.apache.org/', wrapped: true, tooltipText: 'Copy to clipboard', + hideTooltip: false, }; InteractiveCopyToClipboard.argTypes = { diff --git a/superset-frontend/src/components/CopyToClipboard/index.jsx b/superset-frontend/src/components/CopyToClipboard/index.jsx index 6dd5554149cfe..00a23b166231d 100644 --- a/superset-frontend/src/components/CopyToClipboard/index.jsx +++ b/superset-frontend/src/components/CopyToClipboard/index.jsx @@ -33,7 +33,7 @@ const propTypes = { tooltipText: PropTypes.string, addDangerToast: PropTypes.func.isRequired, addSuccessToast: PropTypes.func.isRequired, - hasTooltip: PropTypes.bool, + hideTooltip: PropTypes.bool, }; const defaultProps = { @@ -42,7 +42,7 @@ const defaultProps = { shouldShowText: true, wrapped: true, tooltipText: t('Copy to clipboard'), - hasTooltip: true, + hideTooltip: false, }; class CopyToClipboard extends React.Component { @@ -88,14 +88,14 @@ class CopyToClipboard extends React.Component { }); } - renderNotWrapped() { + renderTooltip(cursor) { return ( <> - {this.props.hasTooltip ? ( + {!this.props.hideTooltip ? ( @@ -108,6 +108,10 @@ class CopyToClipboard extends React.Component { ); } + renderNotWrapped() { + return this.renderTooltip('pointer'); + } + renderLink() { return ( @@ -116,18 +120,7 @@ class CopyToClipboard extends React.Component { {this.props.text} )} - {this.props.hasTooltip ? ( - - {this.getDecoratedCopyNode()} - - ) : ( - this.getDecoratedCopyNode() - )} + {this.renderTooltip()} ); } From 04c1c35a5f835ebaacbd36b6a72970c26793f3e0 Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Thu, 17 Feb 2022 10:49:30 -0500 Subject: [PATCH 4/4] fix(sqllab): added a test case for hideTooltip --- .../CopyToClipboard/CopyToClipboard.test.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.test.tsx b/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.test.tsx index 81103a8a080ef..87dbca404b0fd 100644 --- a/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.test.tsx +++ b/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.test.tsx @@ -58,6 +58,16 @@ test('renders tooltip on hover', async () => { expect(tooltip).toHaveTextContent(tooltipText); }); +test('not renders tooltip on hover with hideTooltip props', async () => { + const tooltipText = 'Tooltip'; + render(, { + useRedux: true, + }); + userEvent.hover(screen.getByText('Copy')); + const tooltip = screen.queryByRole('tooltip'); + expect(tooltip).toBe(null); +}); + test('triggers onCopyEnd', async () => { const onCopyEnd = jest.fn(); render(, {