Skip to content

Commit a079f9e

Browse files
committed
address comments
1 parent f07c59e commit a079f9e

File tree

5 files changed

+59
-55
lines changed

5 files changed

+59
-55
lines changed

static/app/components/core/tabs/tab.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type {Node, Orientation} from '@react-types/shared';
99

1010
import InteractionStateLayer from 'sentry/components/core/interactionStateLayer';
1111
import {Link} from 'sentry/components/core/link';
12+
import {Tooltip, type TooltipProps} from 'sentry/components/core/tooltip';
1213
import {space} from 'sentry/styles/space';
1314
import {isChonkTheme, withChonk} from 'sentry/utils/theme/withChonk';
1415

@@ -33,6 +34,7 @@ interface TabProps extends AriaTabProps {
3334
state: TabListState<any>;
3435
as?: React.ElementType;
3536
ref?: React.Ref<HTMLLIElement>;
37+
tooltipProps?: TooltipProps;
3638
variant?: BaseTabProps['variant'];
3739
}
3840

@@ -156,6 +158,7 @@ export function Tab({
156158
variant,
157159
size,
158160
as = 'li',
161+
tooltipProps,
159162
}: TabProps) {
160163
const objectRef = useObjectRef(ref);
161164

@@ -167,6 +170,28 @@ export function Tab({
167170

168171
const {tabProps, isSelected} = useTab({key, isDisabled: hidden}, state, objectRef);
169172

173+
if (tooltipProps) {
174+
return (
175+
<Tooltip {...tooltipProps}>
176+
<BaseTab
177+
tabProps={tabProps}
178+
isSelected={isSelected}
179+
to={to}
180+
hidden={hidden}
181+
disabled={disabled}
182+
orientation={orientation}
183+
overflowing={overflowing}
184+
ref={objectRef}
185+
variant={variant}
186+
as={as}
187+
size={size}
188+
>
189+
{rendered}
190+
</BaseTab>
191+
</Tooltip>
192+
);
193+
}
194+
170195
return (
171196
<BaseTab
172197
tabProps={tabProps}

static/app/components/core/tabs/tabList.tsx

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import type {Node, Orientation} from '@react-types/shared';
1111

1212
import type {SelectOption} from 'sentry/components/core/compactSelect';
1313
import {CompactSelect} from 'sentry/components/core/compactSelect';
14-
import {Tooltip} from 'sentry/components/core/tooltip';
1514
import DropdownButton from 'sentry/components/dropdownButton';
1615
import {IconEllipsis} from 'sentry/icons';
1716
import {t} from 'sentry/locale';
@@ -237,30 +236,21 @@ function BaseTabList({
237236
ref={tabListRef}
238237
variant={variant}
239238
>
240-
{[...state.collection].map(item => {
241-
const rendered = item.props.tooltip ? (
242-
<Tooltip {...item.props.tooltip}>{item.rendered}</Tooltip>
243-
) : (
244-
item.rendered
245-
);
246-
247-
return (
248-
<Tab
249-
key={item.key}
250-
item={{...item, rendered}}
251-
state={state}
252-
orientation={orientation}
253-
size={size}
254-
overflowing={
255-
orientation === 'horizontal' && overflowTabs.includes(item.key)
256-
}
257-
ref={element => {
258-
tabItemsRef.current[item.key] = element;
259-
}}
260-
variant={variant}
261-
/>
262-
);
263-
})}
239+
{[...state.collection].map(item => (
240+
<Tab
241+
key={item.key}
242+
item={item}
243+
state={state}
244+
orientation={orientation}
245+
size={size}
246+
overflowing={orientation === 'horizontal' && overflowTabs.includes(item.key)}
247+
tooltipProps={item.props.tooltip}
248+
ref={element => {
249+
tabItemsRef.current[item.key] = element;
250+
}}
251+
variant={variant}
252+
/>
253+
))}
264254
</TabListWrap>
265255

266256
{orientation === 'horizontal' && overflowMenuItems.length > 0 && (

static/app/views/discover/savedQuery/datasetSelectorTabs.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import {Link} from 'sentry/components/core/link';
21
import {TabList} from 'sentry/components/core/tabs';
32
import * as Layout from 'sentry/components/layouts/thirds';
4-
import {t, tct} from 'sentry/locale';
3+
import {t} from 'sentry/locale';
54
import type {SavedQuery} from 'sentry/types/organization';
65
import type EventView from 'sentry/utils/discover/eventView';
76
import {
@@ -20,6 +19,7 @@ import useOrganization from 'sentry/utils/useOrganization';
2019
import {
2120
getDatasetFromLocationOrSavedQueryDataset,
2221
getSavedQueryDataset,
22+
getTransactionDeprecationMessage,
2323
} from 'sentry/views/discover/savedQuery/utils';
2424
import {getExploreUrl} from 'sentry/views/explore/utils';
2525

@@ -129,12 +129,7 @@ export function DatasetSelectorTabs(props: Props) {
129129
disabled: deprecatingTransactionsDataset,
130130
tooltip: deprecatingTransactionsDataset
131131
? {
132-
title: tct(
133-
'Discover\u2192Transactions is going to be merged into Explore\u2192Traces soon. Please browse and save any transaction related queries from [traces:Explore\u2192Traces]',
134-
{
135-
traces: <Link to={tracesUrl} />,
136-
}
137-
),
132+
title: getTransactionDeprecationMessage(tracesUrl),
138133
isHoverable: true,
139134
}
140135
: undefined,

static/app/views/discover/savedQuery/index.tsx

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ import {ButtonBar} from 'sentry/components/core/button/buttonBar';
1616
import {LinkButton} from 'sentry/components/core/button/linkButton';
1717
import {Input} from 'sentry/components/core/input';
1818
import {Flex} from 'sentry/components/core/layout';
19-
import {Link} from 'sentry/components/core/link';
2019
import {Tooltip} from 'sentry/components/core/tooltip';
2120
import {CreateAlertFromViewButton} from 'sentry/components/createAlertButton';
2221
import type {MenuItemProps} from 'sentry/components/dropdownMenu';
2322
import {DropdownMenu} from 'sentry/components/dropdownMenu';
2423
import {Hovercard} from 'sentry/components/hovercard';
2524
import {Overlay, PositionWrapper} from 'sentry/components/overlay';
2625
import {IconBookmark, IconDelete, IconEllipsis, IconStar} from 'sentry/icons';
27-
import {t, tct} from 'sentry/locale';
26+
import {t} from 'sentry/locale';
2827
import {space} from 'sentry/styles/space';
2928
import type {InjectedRouter} from 'sentry/types/legacyReactRouter';
3029
import type {Organization, SavedQuery} from 'sentry/types/organization';
@@ -52,6 +51,7 @@ import {deprecateTransactionAlerts} from 'sentry/views/insights/common/utils/has
5251
import {
5352
getDatasetFromLocationOrSavedQueryDataset,
5453
getSavedQueryDataset,
54+
getTransactionDeprecationMessage,
5555
handleCreateQuery,
5656
handleDeleteQuery,
5757
handleResetHomepageQuery,
@@ -374,12 +374,7 @@ class SavedQueryButtonGroup extends PureComponent<Props, State> {
374374
!organization.features.includes('discover-saved-queries-deprecation')
375375
}
376376
isHoverable
377-
title={tct(
378-
'Discover\u2192Transactions is going to be merged into Explore\u2192Traces soon. Please save any transaction related queries from [traces:Explore\u2192Traces]',
379-
{
380-
traces: <Link to={tracesUrl} />,
381-
}
382-
)}
377+
title={getTransactionDeprecationMessage(tracesUrl)}
383378
>
384379
<SaveAsDropdown
385380
queryName={queryName}
@@ -426,12 +421,7 @@ class SavedQueryButtonGroup extends PureComponent<Props, State> {
426421
}}
427422
title={
428423
deprecatingTransactionsDataset &&
429-
tct(
430-
'Discover\u2192Transactions is going to be merged into Explore\u2192Traces soon. Please save any transaction related queries from [traces:Explore\u2192Traces]',
431-
{
432-
traces: <Link to={tracesUrl} />,
433-
}
434-
)
424+
getTransactionDeprecationMessage(tracesUrl)
435425
}
436426
>
437427
<IconUpdate />
@@ -667,13 +657,7 @@ class SavedQueryButtonGroup extends PureComponent<Props, State> {
667657
disabled: deprecatingTransactionsDataset,
668658
tooltipOptions: {isHoverable: true},
669659
tooltip:
670-
deprecatingTransactionsDataset &&
671-
tct(
672-
'Discover\u2192Transactions is going to be merged into Explore\u2192Traces soon. Please save any transaction related queries from [traces:Explore\u2192Traces]',
673-
{
674-
traces: <Link to={tracesUrl} />,
675-
}
676-
),
660+
deprecatingTransactionsDataset && getTransactionDeprecationMessage(tracesUrl),
677661
onAction: () => {
678662
handleAddQueryToDashboard({
679663
organization,

static/app/views/discover/savedQuery/utils.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import {
1111
} from 'sentry/actionCreators/discoverSavedQueries';
1212
import {addErrorMessage, addSuccessMessage} from 'sentry/actionCreators/indicator';
1313
import type {Client} from 'sentry/api';
14-
import {t} from 'sentry/locale';
14+
import {Link} from 'sentry/components/core/link';
15+
import {t, tct} from 'sentry/locale';
1516
import type {NewQuery, Organization, SavedQuery} from 'sentry/types/organization';
1617
import {trackAnalytics} from 'sentry/utils/analytics';
1718
import type {SaveQueryEventParameters} from 'sentry/utils/analytics/discoverAnalyticsEvents';
@@ -347,3 +348,12 @@ export function getSavedQueryDatasetFromLocationOrDataset(
347348
return undefined;
348349
}
349350
}
351+
352+
export function getTransactionDeprecationMessage(tracesUrl: string) {
353+
return tct(
354+
'Discover\u2192Transactions is going to be merged into Explore\u2192Traces soon. Please save any transaction related queries from [traces:Explore\u2192Traces]',
355+
{
356+
traces: <Link to={tracesUrl} />,
357+
}
358+
);
359+
}

0 commit comments

Comments
 (0)