1
1
import { useState } from 'react' ;
2
2
import { MetricsDataType , TSource } from '@hyperdx/common-utils/dist/types' ;
3
- import { Modal , Paper , Tabs , Text , TextProps , Tooltip } from '@mantine/core' ;
3
+ import { Modal , Paper , Tabs , TextProps , Tooltip } from '@mantine/core' ;
4
+ import { IconCode } from '@tabler/icons-react' ;
4
5
5
6
import { useTableMetadata } from '@/hooks/useMetadata' ;
6
7
@@ -11,13 +12,15 @@ interface SourceSchemaInfoIconProps {
11
12
isEnabled : boolean ;
12
13
tableCount : number ;
13
14
iconStyles ?: Pick < TextProps , 'size' | 'color' > ;
15
+ variant ?: 'icon' | 'text' ;
14
16
}
15
17
16
18
const SourceSchemaInfoIcon = ( {
17
19
onClick,
18
20
isEnabled,
19
21
tableCount,
20
22
iconStyles,
23
+ variant = 'icon' ,
21
24
} : SourceSchemaInfoIconProps ) => {
22
25
const tooltipText = isEnabled
23
26
? tableCount > 1
@@ -33,11 +36,15 @@ const SourceSchemaInfoIcon = ({
33
36
position = "right"
34
37
onClick = { ( ) => isEnabled && onClick ( ) }
35
38
>
36
- < Text { ...iconStyles } >
37
- < i
38
- className = { `bi bi-code-square ${ isEnabled ? 'cursor-pointer' : '' } ` }
39
- />
40
- </ Text >
39
+ { variant === 'text' ? (
40
+ < span
41
+ style = { { cursor : isEnabled ? 'pointer' : 'default' , ...iconStyles } }
42
+ >
43
+ Schema
44
+ </ span >
45
+ ) : (
46
+ < IconCode size = { 16 } />
47
+ ) }
41
48
</ Tooltip >
42
49
) ;
43
50
} ;
@@ -79,6 +86,7 @@ export interface SourceSchemaPreviewProps {
79
86
source ?: Pick < TSource , 'connection' | 'from' | 'metricTables' > &
80
87
Partial < Pick < TSource , 'kind' | 'name' > > ;
81
88
iconStyles ?: Pick < TextProps , 'size' | 'color' > ;
89
+ variant ?: 'icon' | 'text' ;
82
90
}
83
91
84
92
const METRIC_TYPE_NAMES : Record < MetricsDataType , string > = {
@@ -92,6 +100,7 @@ const METRIC_TYPE_NAMES: Record<MetricsDataType, string> = {
92
100
const SourceSchemaPreview = ( {
93
101
source,
94
102
iconStyles,
103
+ variant = 'icon' ,
95
104
} : SourceSchemaPreviewProps ) => {
96
105
const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
97
106
@@ -130,6 +139,7 @@ const SourceSchemaPreview = ({
130
139
onClick = { ( ) => setIsModalOpen ( true ) }
131
140
iconStyles = { iconStyles }
132
141
tableCount = { tables . length }
142
+ variant = { variant }
133
143
/>
134
144
{ isEnabled && (
135
145
< Modal
0 commit comments