1
1
import React from 'react' ;
2
2
3
3
import { Link } from '@gravity-ui/icons' ;
4
- import type { ButtonProps , CopyToClipboardProps , CopyToClipboardStatus } from '@gravity-ui/uikit' ;
4
+ import type { ButtonProps , CopyToClipboardStatus } from '@gravity-ui/uikit' ;
5
5
import { ActionTooltip , Button , CopyToClipboard , Icon } from '@gravity-ui/uikit' ;
6
6
7
- import { cn } from '../../../../utils/cn' ;
8
-
9
- import i18n from './i18n' ;
7
+ import { cn } from '../../../../../utils/cn' ;
8
+ import i18n from '../i18n' ;
10
9
11
10
import './QueryDetails.scss' ;
12
11
13
12
const b = cn ( 'kv-query-details' ) ;
14
13
15
- export interface ClipboardButtonProps
16
- extends Omit < CopyToClipboardProps , 'children' > ,
17
- Omit < ClipboardButtonComponentProps , 'status' | 'closeDelay' | 'onClick' > { }
18
-
19
- interface ClipboardButtonComponentProps
20
- extends Omit < ButtonProps , 'href' | 'component' | 'target' | 'rel' | 'loading' > {
21
- status : CopyToClipboardStatus ;
22
- closeDelay : number | undefined ;
23
- /** Disable tooltip. Tooltip won't be shown */
14
+ interface LinkButtonComponentProps extends ButtonProps {
15
+ size ?: ButtonProps [ 'size' ] ;
24
16
hasTooltip ?: boolean ;
25
- /** Text shown before copy */
26
- tooltipInitialText ?: string ;
27
- /** Text shown after copy */
28
- tooltipSuccessText ?: string ;
29
- /** Position of clipboard icon */
30
- iconPosition ?: 'start' | 'end' ;
17
+ status : CopyToClipboardStatus ;
18
+ closeDelay ?: number ;
31
19
}
32
20
33
21
const DEFAULT_TIMEOUT = 1200 ;
34
22
const TOOLTIP_ANIMATION = 200 ;
35
23
36
- const LinkButtonComponent = ( props : ClipboardButtonComponentProps ) => {
24
+ const LinkButtonComponent = ( props : LinkButtonComponentProps ) => {
37
25
const { size = 'm' , hasTooltip = true , status, closeDelay, ...rest } = props ;
38
26
39
27
return (
@@ -55,7 +43,11 @@ const LinkButtonComponent = (props: ClipboardButtonComponentProps) => {
55
43
) ;
56
44
} ;
57
45
58
- export function CopyLinkButton ( props : ClipboardButtonProps ) {
46
+ export interface CopyLinkButtonProps extends ButtonProps {
47
+ text : string ;
48
+ }
49
+
50
+ export function CopyLinkButton ( props : CopyLinkButtonProps ) {
59
51
const { text, ...buttonProps } = props ;
60
52
61
53
const timerIdRef = React . useRef < number > ( ) ;
0 commit comments