-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathDismissButton.tsx
More file actions
84 lines (75 loc) · 1.86 KB
/
DismissButton.tsx
File metadata and controls
84 lines (75 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Libraries
import React, {forwardRef} from 'react'
import classnames from 'classnames'
// Components
import {ButtonBase, ButtonBaseRef} from '../Base/ButtonBase'
// Styles
import './DismissButton.scss'
// Types
import {
ComponentStatus,
ComponentColor,
ButtonShape,
ComponentSize,
ButtonType,
} from '../../../Types'
import {ButtonBaseProps} from '../Base/ButtonBase'
export interface DismissButtonProps extends ButtonBaseProps {}
export type DismissButtonRef = ButtonBaseRef
export const DismissButton = forwardRef<DismissButtonRef, DismissButtonProps>(
(
{
id,
style,
onClick,
tabIndex,
titleText,
disabledTitleText,
className,
onMouseOut,
onMouseOver,
onMouseEnter,
onMouseLeave,
active = false,
type = ButtonType.Button,
testID = 'dismiss-button',
color = ComponentColor.Primary,
size = ComponentSize.ExtraSmall,
status = ComponentStatus.Default,
},
ref
) => {
const SquareButtonClass = classnames('cf-dismiss-button', {
[`${className}`]: className,
})
const dismissButtonClass = classnames(
`cf-dismiss-button--x cf-dismiss-button--${color}`
)
return (
<ButtonBase
tabIndex={tabIndex}
titleText={titleText}
disabledTitleText={disabledTitleText}
shape={ButtonShape.Square}
color={color}
className={SquareButtonClass}
testID={testID}
id={id}
size={size}
onClick={onClick}
onMouseOut={onMouseOut}
onMouseOver={onMouseOver}
onMouseEnter={onMouseEnter}
onMouseLeave={onMouseLeave}
status={status}
active={active}
type={type}
style={style}
ref={ref}
>
<div className={dismissButtonClass} />
</ButtonBase>
)
}
)
DismissButton.displayName = 'DismissButton'