Skip to content

Commit

Permalink
ui: copy original content instead of formatted content for CopyLink (#…
Browse files Browse the repository at this point in the history
…802)

* ui: copy original content instead of formatted content for CopyLink component

* Revert "ui: copy original content instead of formatted content for CopyLink component"

This reverts commit fa2a709.

* ui: support copy original sql and formatted sql

* refine

* remove tooltip
  • Loading branch information
baurine authored and breezewish committed Nov 26, 2020
1 parent c844020 commit b2a389e
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 10 deletions.
18 changes: 16 additions & 2 deletions ui/lib/apps/SlowQuery/pages/Detail/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,14 @@ function DetailPage() {
expanded={detailExpand.query}
onClick={toggleQuery}
/>
<CopyLink data={formatSql(data.query!)} />
<CopyLink
displayVariant="formatted_sql"
data={formatSql(data.query!)}
/>
<CopyLink
displayVariant="original_sql"
data={data.query!}
/>
</Space>
}
>
Expand All @@ -117,7 +124,14 @@ function DetailPage() {
expanded={detailExpand.prev_query}
onClick={togglePrevQuery}
/>
<CopyLink data={formatSql(data.prev_stmt!)} />
<CopyLink
displayVariant="formatted_sql"
data={formatSql(data.prev_stmt!)}
/>
<CopyLink
displayVariant="original_sql"
data={data.prev_stmt!}
/>
</Space>
}
>
Expand Down
18 changes: 16 additions & 2 deletions ui/lib/apps/Statement/pages/Detail/PlanDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,14 @@ function PlanDetail({ query }: IPlanDetailProps) {
expanded={detailExpand.query}
onClick={toggleQuery}
/>
<CopyLink data={formatSql(data.query_sample_text)} />
<CopyLink
displayVariant="formatted_sql"
data={formatSql(data.query_sample_text)}
/>
<CopyLink
displayVariant="original_sql"
data={data.query_sample_text}
/>
</Space>
}
>
Expand All @@ -120,7 +127,14 @@ function PlanDetail({ query }: IPlanDetailProps) {
expanded={detailExpand.prev_query}
onClick={togglePrevQuery}
/>
<CopyLink data={formatSql(data.prev_sample_text)} />
<CopyLink
displayVariant="formatted_sql"
data={formatSql(data.prev_sample_text)}
/>
<CopyLink
displayVariant="original_sql"
data={data.prev_sample_text}
/>
</Space>
}
>
Expand Down
9 changes: 8 additions & 1 deletion ui/lib/apps/Statement/pages/Detail/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,14 @@ function DetailPage() {
expanded={sqlExpanded}
onClick={toggleSqlExpanded}
/>
<CopyLink data={formatSql(plans[0].digest_text!)} />
<CopyLink
displayVariant="formatted_sql"
data={formatSql(plans[0].digest_text!)}
/>
<CopyLink
displayVariant="original_sql"
data={plans[0].digest_text!}
/>
</Space>
}
>
Expand Down
23 changes: 18 additions & 5 deletions ui/lib/components/CopyLink/index.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
import React, { useState } from 'react'
import { CopyToClipboard } from 'react-copy-to-clipboard'
import { addTranslationResource } from '@lib/utils/i18n'
import { useTranslation } from 'react-i18next'
import { useTimeoutFn } from 'react-use'
import { CheckOutlined, CopyOutlined } from '@ant-design/icons'
import { addTranslationResource } from '@lib/utils/i18n'

import styles from './index.module.less'

type DisplayVariant = 'default' | 'original_sql' | 'formatted_sql'
const transKeys: { [K in DisplayVariant]: string } = {
default: 'copy',
original_sql: 'copyOriginal',
formatted_sql: 'copyFormatted',
}

export interface ICopyLinkProps {
data?: string
displayVariant?: DisplayVariant
}

const translations = {
en: {
text: 'Copy',
copy: 'Copy',
copyOriginal: 'Copy Original',
copyFormatted: 'Copy Formatted',
success: 'Copied',
},
zh: {
text: '复制',
copy: '复制',
copyOriginal: '复制原始 SQL',
copyFormatted: '复制格式化 SQL',
success: '已复制',
},
}
Expand All @@ -30,7 +42,7 @@ for (const key in translations) {
})
}

function CopyLink({ data }: ICopyLinkProps) {
function CopyLink({ data, displayVariant = 'default' }: ICopyLinkProps) {
const { t } = useTranslation()
const [showCopied, setShowCopied] = useState(false)

Expand All @@ -48,7 +60,8 @@ function CopyLink({ data }: ICopyLinkProps) {
{!showCopied && (
<CopyToClipboard text={data} onCopy={handleCopy}>
<a>
{t('component.copyLink.text')} <CopyOutlined />
{t(`component.copyLink.${transKeys[displayVariant]}`)}{' '}
<CopyOutlined />
</a>
</CopyToClipboard>
)}
Expand Down

0 comments on commit b2a389e

Please sign in to comment.