@@ -9,10 +9,10 @@ import {Tooltip} from 'sentry/components/core/tooltip';
9
9
import { DropdownMenu , type MenuItemProps } from 'sentry/components/dropdownMenu' ;
10
10
import EmptyStateWarning from 'sentry/components/emptyStateWarning' ;
11
11
import LoadingError from 'sentry/components/loadingError' ;
12
- import Panel from 'sentry/components/panels/panel' ;
13
12
import Placeholder from 'sentry/components/placeholder' ;
14
13
import { ProjectList } from 'sentry/components/projectList' ;
15
14
import { ProvidedFormattedQuery } from 'sentry/components/searchQueryBuilder/formattedQuery' ;
15
+ import { SimpleTable } from 'sentry/components/tables/simpleTable' ;
16
16
import { getAbsoluteSummary } from 'sentry/components/timeRangeSelector/utils' ;
17
17
import TimeSince from 'sentry/components/timeSince' ;
18
18
import { IconEllipsis , IconStar } from 'sentry/icons' ;
@@ -62,90 +62,36 @@ export function SavedEntityTable({
62
62
'data-test-id' : dataTestId ,
63
63
} : SavedEntityTableProps ) {
64
64
return (
65
- < StyledPanelTable className = { className } data-test-id = { dataTestId } >
65
+ < SimpleTable className = { className } data-test-id = { dataTestId } >
66
66
{ header }
67
- { isError && < LoadingError /> }
67
+ { isError && (
68
+ < SimpleTable . Empty >
69
+ < LoadingError />
70
+ </ SimpleTable . Empty >
71
+ ) }
68
72
{ isLoading && < LoadingSkeleton pageSize = { pageSize } /> }
69
73
{ ! isError && ! isLoading && isEmpty && (
70
- < EmptyContainer >
74
+ < SimpleTable . Empty >
71
75
< EmptyStateWarning small > { emptyMessage } </ EmptyStateWarning >
72
- </ EmptyContainer >
76
+ </ SimpleTable . Empty >
73
77
) }
74
78
{ children }
75
- </ StyledPanelTable >
79
+ </ SimpleTable >
76
80
) ;
77
81
}
78
82
79
- SavedEntityTable . Header = styled ( 'div' ) `
80
- display: grid;
81
- grid-template-columns: subgrid;
82
- grid-column: 1/-1;
83
+ SavedEntityTable . Header = SimpleTable . Header ;
83
84
84
- height: 36px;
85
- background-color: ${ p => p . theme . backgroundSecondary } ;
86
- border-radius: ${ p => p . theme . borderRadius } ${ p => p . theme . borderRadius } 0 0;
87
- ` ;
85
+ SavedEntityTable . HeaderCell = SimpleTable . HeaderCell ;
88
86
89
- SavedEntityTable . HeaderCell = styled ( 'div' ) < {
90
- gridArea ?: string ;
91
- noBorder ?: boolean ;
87
+ SavedEntityTable . Row = styled ( SimpleTable . Row , {
88
+ shouldForwardProp : prop => prop !== 'isFirst' && prop !== 'disableHover' ,
89
+ } ) < {
90
+ isFirst : boolean ;
91
+ disableHover ?: boolean ;
92
92
} > `
93
- display: flex;
94
- align-items: center;
95
- padding: 0 ${ space ( 1.5 ) } ;
96
- white-space: nowrap;
97
- text-overflow: ellipsis;
98
- border-width: 0 1px 0 0;
99
- border-style: solid;
100
- border-image: linear-gradient(
101
- to bottom,
102
- transparent,
103
- transparent 30%,
104
- ${ p => p . theme . border } 30%,
105
- ${ p => p . theme . border } 70%,
106
- transparent 70%,
107
- transparent
108
- )
109
- 1;
110
-
111
- &:last-child,
112
- &:empty {
113
- border: 0;
114
- }
115
-
116
- ${ p =>
117
- p . noBorder &&
118
- css `
119
- border : 0 ;
120
- ` }
121
-
122
- color: ${ p => p . theme . subText } ;
123
- font-weight: ${ p => p . theme . fontWeight . bold } ;
124
-
125
- ${ p =>
126
- p . gridArea &&
127
- css `
128
- grid-area : ${ p . gridArea } ;
129
- ` }
130
- ` ;
131
-
132
- SavedEntityTable . Row = styled ( 'div' ) < { isFirst : boolean ; disableHover ?: boolean } > `
133
- display: grid;
134
- position: relative;
135
- grid-template-columns: subgrid;
136
- grid-column: 1/-1;
137
93
height: 40px;
138
94
139
- ${ p =>
140
- p . isFirst &&
141
- css `
142
- border-top : 1px solid ${ p . theme . border } ;
143
- ` }
144
-
145
- &:not(:last-child) {
146
- border-bottom: 1px solid ${ p => p . theme . innerBorder } ;
147
- }
148
-
149
95
&:last-child {
150
96
border-radius: 0 0 ${ p => p . theme . borderRadius } ${ p => p . theme . borderRadius } ;
151
97
}
@@ -159,14 +105,11 @@ SavedEntityTable.Row = styled('div')<{isFirst: boolean; disableHover?: boolean}>
159
105
` }
160
106
` ;
161
107
162
- SavedEntityTable . Cell = styled ( 'div' ) < {
163
- 'data-column' ?: string ;
164
- gridArea ?: string ;
108
+ SavedEntityTable . Cell = styled ( SimpleTable . RowCell , {
109
+ shouldForwardProp : prop => prop !== 'hasButton' ,
110
+ } ) < {
165
111
hasButton ?: boolean ;
166
112
} > `
167
- display: flex;
168
- align-items: center;
169
- padding: ${ space ( 1 ) } ${ space ( 1.5 ) } ;
170
113
height: 40px;
171
114
172
115
/* Buttons already provide some padding */
@@ -175,12 +118,6 @@ SavedEntityTable.Cell = styled('div')<{
175
118
css `
176
119
padding : 0 ${ space ( 0.5 ) } ;
177
120
` }
178
-
179
- ${ p =>
180
- p . gridArea &&
181
- css `
182
- grid-area : ${ p [ 'data-column' ] } ;
183
- ` }
184
121
` ;
185
122
186
123
SavedEntityTable . CellStar = function CellStar ( {
@@ -349,19 +286,6 @@ const LoadingCell = styled(SavedEntityTable.Cell)`
349
286
grid-column: 1/-1;
350
287
` ;
351
288
352
- const StyledPanelTable = styled ( Panel ) `
353
- display: grid;
354
- white-space: nowrap;
355
- font-size: ${ p => p . theme . fontSize . md } ;
356
- ` ;
357
-
358
- const EmptyContainer = styled ( 'div' ) `
359
- grid-column: 1/-1;
360
- display: flex;
361
- align-items: center;
362
- justify-content: center;
363
- ` ;
364
-
365
289
const FormattedQueryNoWrap = styled ( ProvidedFormattedQuery ) `
366
290
flex-wrap: nowrap;
367
291
overflow: hidden;
0 commit comments