diff --git a/static/app/components/actions/archive.tsx b/static/app/components/actions/archive.tsx index b67bc20e8f4b..8c302d42f75f 100644 --- a/static/app/components/actions/archive.tsx +++ b/static/app/components/actions/archive.tsx @@ -305,7 +305,6 @@ export function ArchiveActions({ tooltipProps={{ delay: 1000, disabled, - isHoverable: true, title: tct( 'We’ll nag you with a notification if the issue gets worse. All archived issues can be found in the Archived tab. [docs:Read the docs]', { diff --git a/static/app/components/aiPrivacyTooltip.tsx b/static/app/components/aiPrivacyTooltip.tsx index 1b43e5941a08..905436edbc6a 100644 --- a/static/app/components/aiPrivacyTooltip.tsx +++ b/static/app/components/aiPrivacyTooltip.tsx @@ -33,9 +33,5 @@ function AiPrivacyNoticeShort() { * A tooltip wrapper for the privacy notice. */ export function AiPrivacyTooltip({children}: {children: ReactNode}) { - return ( - }> - {children} - - ); + return }>{children}; } diff --git a/static/app/components/assigneeBadge.tsx b/static/app/components/assigneeBadge.tsx index a0d0f8c4c403..e0a078df4695 100644 --- a/static/app/components/assigneeBadge.tsx +++ b/static/app/components/assigneeBadge.tsx @@ -62,7 +62,6 @@ export function AssigneeBadge({ if (assignedTo) { return ( } skipWrapper> + } skipWrapper> diff --git a/static/app/components/assigneeSelectorDropdown.tsx b/static/app/components/assigneeSelectorDropdown.tsx index 0ba026e3894b..1ed782a620c8 100644 --- a/static/app/components/assigneeSelectorDropdown.tsx +++ b/static/app/components/assigneeSelectorDropdown.tsx @@ -178,7 +178,6 @@ function AssigneeAvatar({ @@ -199,7 +198,6 @@ function AssigneeAvatar({ return ( @@ -604,11 +602,7 @@ export function AssigneeSelectorDropdown({ disabled={loading} ref={ref as Ref} size="xs" - tooltipProps={ - showLabel - ? undefined - : {isHoverable: true, maxWidth: 300, title: tooltipTitle} - } + tooltipProps={showLabel ? undefined : {maxWidth: 300, title: tooltipTitle}} /> ); @@ -617,7 +611,7 @@ export function AssigneeSelectorDropdown({ } return ( - + {avatarButton} {triggerLabel} diff --git a/static/app/components/commitRow.tsx b/static/app/components/commitRow.tsx index bff7479364cb..297e3aa1d739 100644 --- a/static/app/components/commitRow.tsx +++ b/static/app/components/commitRow.tsx @@ -115,7 +115,6 @@ function CommitRow({ disabled={!commit.author || commit.author.id !== undefined} overlayStyle={{maxWidth: '350px'}} skipWrapper - isHoverable > {isUser ? t('You') : (commit.author?.name ?? t('Unknown author'))} diff --git a/static/app/components/core/badge/featureBadge.tsx b/static/app/components/core/badge/featureBadge.tsx index 05f8d8e2f867..d968feb00a00 100644 --- a/static/app/components/core/badge/featureBadge.tsx +++ b/static/app/components/core/badge/featureBadge.tsx @@ -47,7 +47,7 @@ const iconMap: Record = { export interface FeatureBadgeProps { type: 'alpha' | 'beta' | 'new' | 'experimental' | 'debug'; - tooltipProps?: Omit, 'isHoverable' | 'skipWrapper'>; + tooltipProps?: Omit, 'skipWrapper'>; } export function FeatureBadge({type, tooltipProps}: FeatureBadgeProps) { @@ -62,7 +62,6 @@ export function FeatureBadge({type, tooltipProps}: FeatureBadgeProps) { title={title} position="right" {...tooltipProps} - isHoverable skipWrapper forceVisible={ isInteractiveElementFocusVisible ? 'delayed' : tooltipProps?.forceVisible diff --git a/static/app/components/core/breadcrumbList/items/breadcrumbItemPageTitle.tsx b/static/app/components/core/breadcrumbList/items/breadcrumbItemPageTitle.tsx index 0fadccdf829b..d2eca45f7dea 100644 --- a/static/app/components/core/breadcrumbList/items/breadcrumbItemPageTitle.tsx +++ b/static/app/components/core/breadcrumbList/items/breadcrumbItemPageTitle.tsx @@ -123,7 +123,6 @@ export function BreadcrumbItemPageTitle({ {pagination.previous.to ? ( )} - + {pagination.next.to ? ( diff --git a/static/app/components/core/info/infoTip.tsx b/static/app/components/core/info/infoTip.tsx index 1daea8152b2b..58fd42d9ed23 100644 --- a/static/app/components/core/info/infoTip.tsx +++ b/static/app/components/core/info/infoTip.tsx @@ -19,7 +19,7 @@ function IconWithTooltip({ ...props }: InfoTooltipProps & {icon: React.ComponentType}) { return ( - + diff --git a/static/app/components/core/tooltip/tooltip.spec.tsx b/static/app/components/core/tooltip/tooltip.spec.tsx index 8ed832d9b1d0..3616455bc797 100644 --- a/static/app/components/core/tooltip/tooltip.spec.tsx +++ b/static/app/components/core/tooltip/tooltip.spec.tsx @@ -207,7 +207,7 @@ describe('Tooltip', () => { render( diff --git a/static/app/components/core/tooltip/tooltip.tsx b/static/app/components/core/tooltip/tooltip.tsx index d0a5909775cd..4b190a5839d3 100644 --- a/static/app/components/core/tooltip/tooltip.tsx +++ b/static/app/components/core/tooltip/tooltip.tsx @@ -56,7 +56,6 @@ function TooltipComponent({ title, disabled = false, maxWidth, - isHoverable = true, ...hoverOverlayProps }: TooltipProps) { const theme = useTheme(); @@ -71,7 +70,7 @@ function TooltipComponent({ arrowProps, reset, update, - } = useHoverOverlay({...hoverOverlayProps, isHoverable}); + } = useHoverOverlay({...hoverOverlayProps}); const {forceVisible} = hoverOverlayProps; diff --git a/static/app/components/createAlertButton.tsx b/static/app/components/createAlertButton.tsx index 915870b509fb..4838856267b2 100644 --- a/static/app/components/createAlertButton.tsx +++ b/static/app/components/createAlertButton.tsx @@ -142,7 +142,6 @@ export function CreateAlertButton({ to={to ?? (projectSlug ? createAlertUrl(projectSlug) : '')} tooltipProps={{ title: canCreateAlert ? undefined : permissionTooltipText, - isHoverable: true, position: 'top', overlayStyle: { maxWidth: '270px', diff --git a/static/app/components/events/breadcrumbs/breadcrumbsTimeline.tsx b/static/app/components/events/breadcrumbs/breadcrumbsTimeline.tsx index dcc64b56977f..efce106e63c9 100644 --- a/static/app/components/events/breadcrumbs/breadcrumbsTimeline.tsx +++ b/static/app/components/events/breadcrumbs/breadcrumbsTimeline.tsx @@ -113,7 +113,6 @@ export function BreadcrumbsTimeline({ } - isHoverable maxWidth={400} > {isValidDate(startTimeDate) ? ( diff --git a/static/app/components/events/contexts/contextIcon.stories.tsx b/static/app/components/events/contexts/contextIcon.stories.tsx index e84f79a7d705..eb10a85c1b9e 100644 --- a/static/app/components/events/contexts/contextIcon.stories.tsx +++ b/static/app/components/events/contexts/contextIcon.stories.tsx @@ -18,7 +18,6 @@ export default Storybook.story('ContextIcon', story => { return ( } > diff --git a/static/app/components/events/highlights/highlightsIconSummary.tsx b/static/app/components/events/highlights/highlightsIconSummary.tsx index 974257996f0f..e1f822a7d808 100644 --- a/static/app/components/events/highlights/highlightsIconSummary.tsx +++ b/static/app/components/events/highlights/highlightsIconSummary.tsx @@ -121,7 +121,7 @@ export function HighlightsIconSummary({event, group}: HighlightsIconSummaryProps {runtimeInfo && ( - + {runtimeInfo.label} diff --git a/static/app/components/events/interfaces/frame/defaultTitle/index.tsx b/static/app/components/events/interfaces/frame/defaultTitle/index.tsx index 077f8f37c399..85f4c361c132 100644 --- a/static/app/components/events/interfaces/frame/defaultTitle/index.tsx +++ b/static/app/components/events/interfaces/frame/defaultTitle/index.tsx @@ -223,7 +223,6 @@ export function DefaultTitle({ title.push( diff --git a/static/app/components/events/meta/annotatedText/filteredAnnotatedTextValue.tsx b/static/app/components/events/meta/annotatedText/filteredAnnotatedTextValue.tsx index f9fefa55caba..354d532491ad 100644 --- a/static/app/components/events/meta/annotatedText/filteredAnnotatedTextValue.tsx +++ b/static/app/components/events/meta/annotatedText/filteredAnnotatedTextValue.tsx @@ -43,7 +43,7 @@ export function FilteredAnnotatedTextValue({value, meta}: Props) { }, [meta.rem, organization, projectDetails]); return ( - + ); diff --git a/static/app/components/feedback/list/mailboxPicker.tsx b/static/app/components/feedback/list/mailboxPicker.tsx index d039ff4f76d4..06c6033c854f 100644 --- a/static/app/components/feedback/list/mailboxPicker.tsx +++ b/static/app/components/feedback/list/mailboxPicker.tsx @@ -80,9 +80,7 @@ export function MailboxPicker({onChange, value}: Props) { {mailbox.tooltip ? ( - - {mailbox.label} - + {mailbox.label} ) : ( mailbox.label )} diff --git a/static/app/components/forms/controls/radioGroup.tsx b/static/app/components/forms/controls/radioGroup.tsx index 10382c4833da..341fc4fa9835 100644 --- a/static/app/components/forms/controls/radioGroup.tsx +++ b/static/app/components/forms/controls/radioGroup.tsx @@ -30,7 +30,6 @@ interface BaseRadioGroupProps { * Switch the radio items to flow left to right, instead of vertically. */ orientInline?: boolean; - tooltipIsHoverable?: boolean; tooltipPosition?: PopperProps['placement']; } @@ -58,7 +57,6 @@ export function RadioGroup({ onChange, orientInline, tooltipPosition, - tooltipIsHoverable, ...props }: RadioGroupProps) { return ( @@ -84,7 +82,6 @@ export function RadioGroup({ disabled={!disabledChoiceReason} title={disabledChoiceReason} position={tooltipPosition} - isHoverable={tooltipIsHoverable} > { +interface HovercardProps extends UseHoverOverlayProps { /** * Classname to apply to the hovercard */ @@ -132,7 +132,6 @@ function Hovercard({ const {wrapTrigger, isOpen, snapClosed, ...hoverOverlayState} = useHoverOverlay({ offset, displayTimeout, - isHoverable: true, className: containerClassName, ...hoverOverlayProps, }); diff --git a/static/app/components/modals/dataWidgetViewerModal.tsx b/static/app/components/modals/dataWidgetViewerModal.tsx index e57513af83be..b8967f41161f 100644 --- a/static/app/components/modals/dataWidgetViewerModal.tsx +++ b/static/app/components/modals/dataWidgetViewerModal.tsx @@ -809,7 +809,6 @@ function DataWidgetViewerModal(props: Props) { title={widget.description} containerDisplayMode="grid" showOnlyOnOverflow - isHoverable position="bottom" > {widget.description} diff --git a/static/app/components/modals/widgetBuilder/addToDashboardModal.tsx b/static/app/components/modals/widgetBuilder/addToDashboardModal.tsx index 8a840bac9744..812ad52d166a 100644 --- a/static/app/components/modals/widgetBuilder/addToDashboardModal.tsx +++ b/static/app/components/modals/widgetBuilder/addToDashboardModal.tsx @@ -383,7 +383,7 @@ function AddToDashboardModal({ value: 'new', disabled: hasReachedDashboardLimit || isLoading, tooltip: hasReachedDashboardLimit ? limitMessage : undefined, - tooltipOptions: {position: 'right', isHoverable: true}, + tooltipOptions: {position: 'right'}, } satisfies SelectValue, ...dashboards .filter(dashboard => diff --git a/static/app/components/onboarding/productSelection.tsx b/static/app/components/onboarding/productSelection.tsx index c11f68ee8b67..796817714f7e 100644 --- a/static/app/components/onboarding/productSelection.tsx +++ b/static/app/components/onboarding/productSelection.tsx @@ -551,7 +551,6 @@ function Product({ )) } - isHoverable > 0 && ( { size="lg" position="top" title="The top selectors your users have dead clicked on (i.e., a user click that does not result in any page activity after 7 seconds)." - isHoverable />

@@ -81,9 +80,6 @@ export default Storybook.story('QuestionTooltip', story => {

  • -
  • - -
  • diff --git a/static/app/components/questionTooltip.tsx b/static/app/components/questionTooltip.tsx index 037ad5141d89..62fc0665c973 100644 --- a/static/app/components/questionTooltip.tsx +++ b/static/app/components/questionTooltip.tsx @@ -9,12 +9,7 @@ import {SvgIcon, type SVGIconProps} from 'sentry/icons/svgIcon'; interface QuestionProps extends Partial< Pick< TooltipProps, - | 'containerDisplayMode' - | 'isHoverable' - | 'overlayStyle' - | 'position' - | 'skipWrapper' - | 'delay' + 'containerDisplayMode' | 'overlayStyle' | 'position' | 'skipWrapper' | 'delay' > > { /** diff --git a/static/app/components/replays/breadcrumbs/replayComparisonModal.tsx b/static/app/components/replays/breadcrumbs/replayComparisonModal.tsx index 09dd75a02eba..c77abf7bb42d 100644 --- a/static/app/components/replays/breadcrumbs/replayComparisonModal.tsx +++ b/static/app/components/replays/breadcrumbs/replayComparisonModal.tsx @@ -58,7 +58,6 @@ export default function ReplayComparisonModal({ {t('Hydration Error')} <Tooltip - isHoverable title={tct( 'This modal helps with debugging hydration errors by diffing the DOM before and after the app hydrated. [boldBefore:Before] refers to the HTML rendered on the server. [boldAfter:After] refers to the HTML rendered on the client. Read more about [link:resolving hydration errors].', { diff --git a/static/app/components/replays/breadcrumbs/replayTimelineEvents.tsx b/static/app/components/replays/breadcrumbs/replayTimelineEvents.tsx index 8e16c6b1ee30..0038ed612e8f 100644 --- a/static/app/components/replays/breadcrumbs/replayTimelineEvents.tsx +++ b/static/app/components/replays/breadcrumbs/replayTimelineEvents.tsx @@ -157,12 +157,7 @@ function Event({ return ( <IconPosition style={{marginLeft: `${markerWidth / 2}px`}}> - <Tooltip - title={title} - overlayStyle={overlayStyle} - containerDisplayMode="grid" - isHoverable - > + <Tooltip title={title} overlayStyle={overlayStyle} containerDisplayMode="grid"> <IconNode colorTokens={sortedUniqueColorTokens} frameCount={frameCount} diff --git a/static/app/components/replays/breadcrumbs/selectorList.tsx b/static/app/components/replays/breadcrumbs/selectorList.tsx index e2470a4c8260..50a2e23203d4 100644 --- a/static/app/components/replays/breadcrumbs/selectorList.tsx +++ b/static/app/components/replays/breadcrumbs/selectorList.tsx @@ -27,11 +27,7 @@ export function SelectorList({frame}: {frame: ClickFrame}) { return ( <Fragment> <span>{selectorPrefix}</span> - <Tooltip - title={t('Search by this component')} - containerDisplayMode="inline" - isHoverable - > + <Tooltip title={t('Search by this component')} containerDisplayMode="inline"> <Link to={{ pathname: makeReplaysPathname({ diff --git a/static/app/components/replays/breadcrumbs/timelineGaps.tsx b/static/app/components/replays/breadcrumbs/timelineGaps.tsx index a5966aaf6ca3..7cfc3ef398fc 100644 --- a/static/app/components/replays/breadcrumbs/timelineGaps.tsx +++ b/static/app/components/replays/breadcrumbs/timelineGaps.tsx @@ -66,7 +66,6 @@ export function TimelineGaps({durationMs, startTimestampMs, videoEvents}: Props) > <Tooltip title={t('Video Unavailable')} - isHoverable containerDisplayMode="block" position="top" > diff --git a/static/app/components/replays/replayCurrentUrl.tsx b/static/app/components/replays/replayCurrentUrl.tsx index 8139cc1199b4..7f24ecaa5c99 100644 --- a/static/app/components/replays/replayCurrentUrl.tsx +++ b/static/app/components/replays/replayCurrentUrl.tsx @@ -64,7 +64,6 @@ export function ReplayCurrentUrl() { ), } )} - isHoverable > <TextCopyInput aria-label={t('Current URL')} size="sm"> {url} diff --git a/static/app/components/replays/replayTagsTableRow.tsx b/static/app/components/replays/replayTagsTableRow.tsx index 1aec8cae38fb..e41803342a7b 100644 --- a/static/app/components/replays/replayTagsTableRow.tsx +++ b/static/app/components/replays/replayTagsTableRow.tsx @@ -125,7 +125,6 @@ export function ReplayTagsTableRow({name, values, generateUrl}: Props) { title={ expandedViewKeys.includes(name) ? renderValueList(values) : renderTagValue } - isHoverable showOnlyOnOverflow > {renderTagValue} diff --git a/static/app/components/replays/virtualizedGrid/headerCell.tsx b/static/app/components/replays/virtualizedGrid/headerCell.tsx index af744b55ed3f..51ed37f528b8 100644 --- a/static/app/components/replays/virtualizedGrid/headerCell.tsx +++ b/static/app/components/replays/virtualizedGrid/headerCell.tsx @@ -48,7 +48,7 @@ export function HeaderCell<T extends BaseRecord>({ > {label} {tooltipTitle ? ( - <Tooltip isHoverable title={<CatchClicks>{tooltipTitle}</CatchClicks>}> + <Tooltip title={<CatchClicks>{tooltipTitle}</CatchClicks>}> <StyledIconInfo size="xs" /> </Tooltip> ) : null} diff --git a/static/app/components/scoreCard.tsx b/static/app/components/scoreCard.tsx index 2ff57347b04c..1d03af0cbdf9 100644 --- a/static/app/components/scoreCard.tsx +++ b/static/app/components/scoreCard.tsx @@ -12,7 +12,6 @@ type ScoreCardProps = { title: React.ReactNode; className?: string; help?: React.ReactNode; - isTooltipHoverable?: boolean; score?: React.ReactNode; trend?: React.ReactNode; trendStatus?: 'good' | 'bad'; @@ -25,7 +24,6 @@ export function ScoreCard({ trend, trendStatus, className, - isTooltipHoverable, }: ScoreCardProps) { const displayScore = score ?? '\u2014'; @@ -34,14 +32,7 @@ export function ScoreCard({ <Flex wrap="wrap" align="center" justify="between"> <HeaderTitle> <Title>{title} - {help && ( - - )} + {help && }
    diff --git a/static/app/components/searchQueryBuilder/tokens/invalidTokenTooltip.tsx b/static/app/components/searchQueryBuilder/tokens/invalidTokenTooltip.tsx index 37f3ecbd3cc2..c92db74da3c7 100644 --- a/static/app/components/searchQueryBuilder/tokens/invalidTokenTooltip.tsx +++ b/static/app/components/searchQueryBuilder/tokens/invalidTokenTooltip.tsx @@ -71,7 +71,6 @@ export function InvalidTokenTooltip({ })} position="bottom" title={warning ?? tokenWarning ?? invalid?.reason ?? t('This token is invalid')} - isHoverable={hasWarning || hasTokenWarning || isInvalid || tooltipProps.isHoverable} {...tooltipProps} > {children} diff --git a/static/app/components/slider/index.tsx b/static/app/components/slider/index.tsx index 9ca3d184c7c8..36e7d0d7e3d2 100644 --- a/static/app/components/slider/index.tsx +++ b/static/app/components/slider/index.tsx @@ -204,7 +204,6 @@ export function Slider({ title={disabledReason} disabled={!disabled} skipWrapper - isHoverable position="bottom" offset={-15} > diff --git a/static/app/components/stackTrace/frame/frameHeader.tsx b/static/app/components/stackTrace/frame/frameHeader.tsx index 7eb33ce5165f..e6503370936f 100644 --- a/static/app/components/stackTrace/frame/frameHeader.tsx +++ b/static/app/components/stackTrace/frame/frameHeader.tsx @@ -248,7 +248,6 @@ function FrameLocationTooltip({ maxWidth={475} skipWrapper delay={1000} - isHoverable > {children}
    diff --git a/static/app/components/stream/group.tsx b/static/app/components/stream/group.tsx index 16d2e8b2ce64..b44037e5ae3d 100644 --- a/static/app/components/stream/group.tsx +++ b/static/app/components/stream/group.tsx @@ -605,7 +605,6 @@ export function StreamGroup({ const groupCount = (

    {issueTypeConfig.customCopy.eventUnits}

    @@ -643,7 +642,6 @@ export function StreamGroup({ const groupUsersCount = ( diff --git a/static/app/components/version.tsx b/static/app/components/version.tsx index 59858573c79e..8d93cd1bb406 100644 --- a/static/app/components/version.tsx +++ b/static/app/components/version.tsx @@ -109,7 +109,6 @@ export function Version({ diff --git a/static/app/icons/icons.stories.tsx b/static/app/icons/icons.stories.tsx index 3cfd18f0f38c..ec558494531b 100644 --- a/static/app/icons/icons.stories.tsx +++ b/static/app/icons/icons.stories.tsx @@ -1965,7 +1965,6 @@ function IconCard(props: IconCardProps) { return ( diff --git a/static/app/styles/images.stories.tsx b/static/app/styles/images.stories.tsx index 3d20b12a508d..a89747c8e513 100644 --- a/static/app/styles/images.stories.tsx +++ b/static/app/styles/images.stories.tsx @@ -48,7 +48,6 @@ export default Storybook.story('sentry-image/*', story => { {sectionImages.map(image => ( diff --git a/static/app/utils/dashboards/issueFieldRenderers.tsx b/static/app/utils/dashboards/issueFieldRenderers.tsx index d6bc7f328c2f..ca0bb78a9be6 100644 --- a/static/app/utils/dashboards/issueFieldRenderers.tsx +++ b/static/app/utils/dashboards/issueFieldRenderers.tsx @@ -206,7 +206,6 @@ const issuesCountRenderer = ( return ( = { renderFunc: data => { const label = ADOPTION_STAGE_LABELS[data.adoption_stage]; return data.adoption_stage && label ? ( - + {label.name} ) : ( @@ -1155,7 +1155,7 @@ const SPECIAL_FUNCTIONS: SpecialFunctions = { if (!(userMiseryField in data)) { return ( - + {emptyValue} ); @@ -1164,7 +1164,7 @@ const SPECIAL_FUNCTIONS: SpecialFunctions = { const userMisery = data[userMiseryField]; if (userMisery === null || isNaN(userMisery)) { return ( - + {emptyValue} ); diff --git a/static/app/utils/useHoverOverlay.timing.spec.tsx b/static/app/utils/useHoverOverlay.timing.spec.tsx index b50c9f46096d..42e92f36bd1f 100644 --- a/static/app/utils/useHoverOverlay.timing.spec.tsx +++ b/static/app/utils/useHoverOverlay.timing.spec.tsx @@ -18,16 +18,13 @@ const SKIP_DELAY_WINDOW = 600; function Trigger({ label, - isHoverable, onResetReady, }: { label: string; - isHoverable?: boolean; onResetReady?: (reset: () => void) => void; }) { - const {wrapTrigger, isOpen, snapClosed, reset} = useHoverOverlay({ + const {wrapTrigger, isOpen, snapClosed, overlayProps, reset} = useHoverOverlay({ skipWrapper: true, - isHoverable, }); useEffect(() => { @@ -38,7 +35,12 @@ function Trigger({ {wrapTrigger()} {isOpen && !snapClosed && ( -
    +
    Overlay
    )} @@ -123,6 +125,7 @@ describe('useHoverOverlay timing', () => { expect(screen.getByRole('tooltip')).toBeInTheDocument(); unhover(a); + advance(CLOSE_DELAY); expect(screen.queryByRole('tooltip')).not.toBeInTheDocument(); advance(SKIP_DELAY_WINDOW - 1); @@ -146,6 +149,9 @@ describe('useHoverOverlay timing', () => { advance(OPEN_DELAY); unhover(a); + advance(CLOSE_DELAY); + expect(screen.queryByRole('tooltip')).not.toBeInTheDocument(); + advance(SKIP_DELAY_WINDOW + 1); hover(b); @@ -175,8 +181,8 @@ describe('useHoverOverlay timing', () => { expect(screen.getByRole('tooltip')).toBeInTheDocument(); }); - it('holds a hoverable overlay open for CLOSE_DELAY after unhover', () => { - renderInGroup(); + it('holds an overlay open for CLOSE_DELAY after trigger unhover', () => { + renderInGroup(); const a = screen.getByRole('button', {name: 'a'}); hover(a); @@ -191,8 +197,8 @@ describe('useHoverOverlay timing', () => { expect(screen.queryByRole('tooltip')).not.toBeInTheDocument(); }); - it('re-entering during the cooling window keeps the tooltip open', () => { - renderInGroup(); + it('moving from the trigger to the overlay keeps it open', () => { + renderInGroup(); const a = screen.getByRole('button', {name: 'a'}); hover(a); @@ -200,11 +206,15 @@ describe('useHoverOverlay timing', () => { unhover(a); advance(CLOSE_DELAY - 10); - expect(screen.getByRole('tooltip')).toBeInTheDocument(); + const tooltip = screen.getByRole('tooltip'); - hover(a); + fireEvent.mouseEnter(tooltip); advance(CLOSE_DELAY); expect(screen.getByRole('tooltip')).toBeInTheDocument(); + + fireEvent.mouseLeave(tooltip); + advance(CLOSE_DELAY); + expect(screen.queryByRole('tooltip')).not.toBeInTheDocument(); }); it('reset() while open starts the group cooldown so neighbors open instantly', () => { @@ -253,7 +263,7 @@ describe('useHoverOverlay timing', () => { expect(screen.getByRole('tooltip')).toBeInTheDocument(); }); - it('snap-closes a non-hoverable sibling when a neighbor opens via warm-skip', () => { + it('snap-closes a sibling that is still in its cooling window', () => { renderInGroup( @@ -263,35 +273,10 @@ describe('useHoverOverlay timing', () => { const a = screen.getByRole('button', {name: 'a'}); const b = screen.getByRole('button', {name: 'b'}); - hover(a); - advance(OPEN_DELAY); - expect(screen.getByRole('tooltip', {name: 'a'})).toBeInTheDocument(); - - // A goes idle (non-hoverable closes instantly). The consumer still has - // AnimatePresence exit animating — snapClosed is the signal to unmount it. - unhover(a); - expect(screen.queryByRole('tooltip')).not.toBeInTheDocument(); - - // Within the warm window, hovering B should fire the snap signal on A. - hover(b); - expect(screen.queryByRole('tooltip', {name: 'a'})).not.toBeInTheDocument(); - expect(screen.getByRole('tooltip', {name: 'b'})).toBeInTheDocument(); - }); - - it('snap-closes a hoverable sibling that is still in its cooling window', () => { - renderInGroup( - - - - - ); - const a = screen.getByRole('button', {name: 'a'}); - const b = screen.getByRole('button', {name: 'b'}); - hover(a); advance(OPEN_DELAY); - // A is hoverable — unhover puts it in cooling, not idle. + // Unhover puts A in cooling, not idle. unhover(a); expect(screen.getByRole('tooltip', {name: 'a'})).toBeInTheDocument(); @@ -304,7 +289,7 @@ describe('useHoverOverlay timing', () => { it("does not let a snap-closed cooling overlay's hide timer cool the group", () => { renderInGroup( - + diff --git a/static/app/utils/useHoverOverlay.tsx b/static/app/utils/useHoverOverlay.tsx index 8891dacbe229..dc1640860aec 100644 --- a/static/app/utils/useHoverOverlay.tsx +++ b/static/app/utils/useHoverOverlay.tsx @@ -72,7 +72,7 @@ function makeDefaultPopperModifiers(arrowElement: HTMLElement | null, offset: nu const OPEN_DELAY = 400; /** - * How long to wait before closing the overlay when isHoverable or + * How long to wait before closing the overlay when * displayTimeout is set. */ const CLOSE_DELAY = 150; @@ -175,8 +175,8 @@ interface UseHoverOverlayProps { */ delay?: number; /** - * Time in ms until overlay is hidden. When used with isHoverable this is - * used as the time allowed for the user to move their cursor into the overlay) + * Time in ms until the overlay is hidden. This is the time allowed for the + * user to move their cursor into the overlay. */ displayTimeout?: number; /** @@ -184,11 +184,6 @@ interface UseHoverOverlayProps { * immediately, while `delayed` uses the normal open delay. */ forceVisible?: boolean | 'delayed'; - /** - * If true, user is able to hover overlay without it disappearing. (nice if - * you want the overlay to be interactive) - */ - isHoverable?: boolean; /** * Offset along the main axis. */ @@ -290,7 +285,6 @@ function useHoverOverlay({ style, delay, displayTimeout, - isHoverable, showUnderline, underlineColor, showOnlyOnOverflow, @@ -520,23 +514,12 @@ function useHoverOverlay({ return; } - // Note: the NODE_ENV === 'test' bypass is intentionally only applied on - // the open path. Tests that want to verify close-delay behavior (the - // `cooling` grace window) can do so by asserting isOpen mid-timeout, - // which requires the timer to actually run. - const hasCloseDelay = isHoverable || displayTimeout !== undefined; - if (!hasCloseDelay) { - commitStatus('idle'); - startGroupCoolDown(group); - return; - } - commitStatus('cooling'); hideTimerRef.current = window.setTimeout(() => { commitStatus('idle'); startGroupCoolDown(group); }, displayTimeout ?? CLOSE_DELAY); - }, [isHoverable, displayTimeout, commitStatus, group]); + }, [displayTimeout, commitStatus, group]); const previousForceVisibleRef = useRef(undefined); useEffect(() => { @@ -667,14 +650,13 @@ function useHoverOverlay({ id: describeById, ref: setOverlayElement, style: styles.popper, - onMouseEnter: isHoverable ? handleMouseEnter : undefined, - onMouseLeave: isHoverable ? handleMouseLeave : undefined, + onMouseEnter: handleMouseEnter, + onMouseLeave: handleMouseLeave, }; }, [ describeById, setOverlayElement, styles.popper, - isHoverable, handleMouseEnter, handleMouseLeave, ]); diff --git a/static/app/views/automations/components/disabledAlert.tsx b/static/app/views/automations/components/disabledAlert.tsx index f75380e576a0..ce50f91c3cd7 100644 --- a/static/app/views/automations/components/disabledAlert.tsx +++ b/static/app/views/automations/components/disabledAlert.tsx @@ -44,11 +44,7 @@ export function DisabledAlert({automation}: DisabledAlertProps) { + @@ -82,7 +82,7 @@ export function EditAutomationActions({automation, form}: EditAutomationActionsP variant="danger" onClick={handleDelete} disabled={!canEdit || isDeleting} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} size="sm" > {t('Delete')} @@ -103,7 +103,7 @@ export function EditAutomationActions({automation, form}: EditAutomationActionsP size="sm" busy={form.isSaving} disabled={!canEdit} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Save')} diff --git a/static/app/views/automations/detail.tsx b/static/app/views/automations/detail.tsx index 6b42d96272b5..0161cea0d2f2 100644 --- a/static/app/views/automations/detail.tsx +++ b/static/app/views/automations/detail.tsx @@ -280,14 +280,14 @@ function Actions({automation, size}: {automation: Automation; size?: 'sm'}) { onClick={toggleDisabled} busy={isUpdating} disabled={!canEdit} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {automation.enabled ? t('Disable') : t('Enable')} } size={size} diff --git a/static/app/views/automations/list.tsx b/static/app/views/automations/list.tsx index 64400b343807..61aad7938ac8 100644 --- a/static/app/views/automations/list.tsx +++ b/static/app/views/automations/list.tsx @@ -142,7 +142,6 @@ function TableHeader() { disabled={!canCreateAlert} tooltipProps={{ title: canCreateAlert ? undefined : getNoAlertWritePermissionTooltip(), - isHoverable: true, }} variant="primary" icon={} diff --git a/static/app/views/dashboards/controls.tsx b/static/app/views/dashboards/controls.tsx index 316dc77490d2..6c43f028d2e8 100644 --- a/static/app/views/dashboards/controls.tsx +++ b/static/app/views/dashboards/controls.tsx @@ -131,7 +131,7 @@ export function DashboardActionBar({ variant="primary" data-test-id="dashboard-commit" disabled={hasReachedDashboardLimit || isLoading} - tooltipProps={{isHoverable: true, title: limitMessage}} + tooltipProps={{title: limitMessage}} > {t('Save and Finish')} diff --git a/static/app/views/dashboards/editAccessSelector.tsx b/static/app/views/dashboards/editAccessSelector.tsx index e04fe4eeba69..203e8b5af8f4 100644 --- a/static/app/views/dashboards/editAccessSelector.tsx +++ b/static/app/views/dashboards/editAccessSelector.tsx @@ -163,7 +163,6 @@ export function EditAccessSelector({ return ( } disabled={hasReachedDashboardLimit || isLoadingDashboardsLimit} tooltipProps={{ - isHoverable: true, title: limitMessage, }} > diff --git a/static/app/views/dashboards/widgetBuilder/components/common/sectionHeader.tsx b/static/app/views/dashboards/widgetBuilder/components/common/sectionHeader.tsx index c9de030072db..1681b5e3d2ab 100644 --- a/static/app/views/dashboards/widgetBuilder/components/common/sectionHeader.tsx +++ b/static/app/views/dashboards/widgetBuilder/components/common/sectionHeader.tsx @@ -25,7 +25,6 @@ export function SectionHeader({ disabled={!tooltipText} position="right-end" delay={200} - isHoverable showUnderline > {title} diff --git a/static/app/views/dashboards/widgetBuilder/components/widgetOnDemandQueryWarning.tsx b/static/app/views/dashboards/widgetBuilder/components/widgetOnDemandQueryWarning.tsx index 893b64ec5c9e..42e8be12c316 100644 --- a/static/app/views/dashboards/widgetBuilder/components/widgetOnDemandQueryWarning.tsx +++ b/static/app/views/dashboards/widgetBuilder/components/widgetOnDemandQueryWarning.tsx @@ -58,15 +58,13 @@ export function WidgetOnDemandQueryWarning(props: { export function OnDemandWarningIcon({ msg, - isHoverable, variant = 'muted', }: { msg: React.ReactNode; - isHoverable?: boolean; variant?: 'primary' | 'warning' | 'danger' | 'muted'; }) { return ( - + ); diff --git a/static/app/views/dashboards/widgetCard/widgetFrame.tsx b/static/app/views/dashboards/widgetCard/widgetFrame.tsx index b747a2865b0a..fe770ed561f8 100644 --- a/static/app/views/dashboards/widgetCard/widgetFrame.tsx +++ b/static/app/views/dashboards/widgetCard/widgetFrame.tsx @@ -65,7 +65,7 @@ export function WidgetFrame(props: WidgetFrameProps) { Title={ {props.warnings && props.warnings.length > 0 && ( - } isHoverable> + }> @@ -207,9 +207,5 @@ function TitleActionsWrapper({disabled, disabledMessage, children}: TitleActions return children; } - return ( - - {children} - - ); + return {children}; } diff --git a/static/app/views/dashboards/widgets/bigNumberWidget/bigNumberWidgetVisualization.tsx b/static/app/views/dashboards/widgets/bigNumberWidget/bigNumberWidgetVisualization.tsx index 1a9117a943dd..3352172a18dc 100644 --- a/static/app/views/dashboards/widgets/bigNumberWidget/bigNumberWidgetVisualization.tsx +++ b/static/app/views/dashboards/widgets/bigNumberWidget/bigNumberWidgetVisualization.tsx @@ -125,7 +125,6 @@ function BigNumberWidgetVisualizationInner(props: BigNumberWidgetVisualizationPr } containerDisplayMode="grid" - isHoverable forceVisible={props.revealTooltip === 'always' ? true : undefined} > + } onClick={openCreateDrawer} disabled={!canEditWorkflowConnections} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('New Alert')} @@ -241,7 +241,7 @@ export function DetectorDetailsAutomations({detector}: Props) { size="xs" onClick={toggleDrawer} disabled={!canEditWorkflowConnections} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} icon={} > {t('Edit Alerts')} @@ -259,7 +259,7 @@ export function DetectorDetailsAutomations({detector}: Props) { size="sm" onClick={toggleDrawer} disabled={!canEditWorkflowConnections} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Connect Existing Alerts')} @@ -268,7 +268,7 @@ export function DetectorDetailsAutomations({detector}: Props) { icon={} onClick={openCreateDrawer} disabled={!canEditWorkflowConnections} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Create a New Alert')} diff --git a/static/app/views/detectors/components/forms/automateSection.tsx b/static/app/views/detectors/components/forms/automateSection.tsx index 0775cc973650..50c560022af1 100644 --- a/static/app/views/detectors/components/forms/automateSection.tsx +++ b/static/app/views/detectors/components/forms/automateSection.tsx @@ -153,7 +153,7 @@ function AutomateSectionInner({ icon={} onClick={openCreateDrawer} disabled={!canEditAutomation} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Create New Alert')} @@ -162,7 +162,7 @@ function AutomateSectionInner({ icon={} onClick={toggleDrawer} disabled={!canEditAutomation} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Edit Alerts')} @@ -191,7 +191,7 @@ function AutomateSectionInner({ style={{width: 'min-content'}} onClick={toggleDrawer} disabled={!canEditAutomation} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Connect Existing Alerts')} @@ -199,7 +199,7 @@ function AutomateSectionInner({ size="sm" onClick={openCreateDrawer} disabled={!canEditAutomation} - tooltipProps={{title: permissionTooltipText, isHoverable: true}} + tooltipProps={{title: permissionTooltipText}} > {t('Create New Alert')} diff --git a/static/app/views/detectors/components/forms/metric/metric.tsx b/static/app/views/detectors/components/forms/metric/metric.tsx index 057cd2419e5d..1bb30f43b6b8 100644 --- a/static/app/views/detectors/components/forms/metric/metric.tsx +++ b/static/app/views/detectors/components/forms/metric/metric.tsx @@ -474,7 +474,6 @@ function CustomizeMetricSection({step}: {step?: number}) { /> @@ -485,7 +484,6 @@ function CustomizeMetricSection({step}: {step?: number}) { @@ -496,7 +494,6 @@ function CustomizeMetricSection({step}: {step?: number}) { dataset === DetectorDataset.METRICS ? null : ( @@ -540,7 +537,6 @@ function DetectSection({step}: {step?: number}) { tct( 'The amount of time between each uptime check request. Selecting a period of [interval] means it will take at least [expectedFailureInterval] until you are notified of a failure. [link:Learn more].', @@ -145,7 +145,7 @@ export function UptimeDetectorFormDetectSection({step}: {step?: number}) { - + diff --git a/static/app/views/detectors/components/uptime/uptimeAlertForm.tsx b/static/app/views/detectors/components/uptime/uptimeAlertForm.tsx index 734caabf2ac8..08363c3219cc 100644 --- a/static/app/views/detectors/components/uptime/uptimeAlertForm.tsx +++ b/static/app/views/detectors/components/uptime/uptimeAlertForm.tsx @@ -342,7 +342,7 @@ function UptimeAlertFormContent({handleDelete, rule}: Props) { label={t('Interval')} defaultValue={60} flexibleControlStateSize - showHelpInTooltip={{isHoverable: true}} + showHelpInTooltip help={({model}) => tct( 'The amount of time between each uptime check request. Selecting a period of [interval] means it will take at least [expectedFailureInterval] until you are notified of a failure. [link:Learn more].', @@ -379,7 +379,7 @@ function UptimeAlertFormContent({handleDelete, rule}: Props) { )} > @@ -218,7 +217,6 @@ function CheckInBodyCell({ ) : hasOnlySystemSpans ? ( {t('Create Monitor')} diff --git a/static/app/views/discover/results.tsx b/static/app/views/discover/results.tsx index 8ae796fc60d1..954d57dfdd33 100644 --- a/static/app/views/discover/results.tsx +++ b/static/app/views/discover/results.tsx @@ -1152,7 +1152,7 @@ function DiscoverContextMenu({ key: 'add-to-dashboard', label: t('Add to Dashboard'), disabled: deprecatingTransactionsDataset, - tooltipOptions: {isHoverable: true}, + tooltipOptions: {}, tooltip: deprecatingTransactionsDataset && getTransactionDeprecationMessage(tracesUrl), onAction: () => { @@ -1367,7 +1367,6 @@ function SaveQueryButton({ deprecatingTransactionsDataset && getTransactionDeprecationMessage(tracesUrl) } - isHoverable >
    } maxWidth={400} - isHoverable > {children}
    diff --git a/static/app/views/explore/releases/detail/commitsAndFiles/releaseCommit.tsx b/static/app/views/explore/releases/detail/commitsAndFiles/releaseCommit.tsx index af8b8c56ddb5..ee15d5649756 100644 --- a/static/app/views/explore/releases/detail/commitsAndFiles/releaseCommit.tsx +++ b/static/app/views/explore/releases/detail/commitsAndFiles/releaseCommit.tsx @@ -83,7 +83,6 @@ export function ReleaseCommit({commit}: ReleaseCommitProps) { disabled={!commit.author || commit.author.id !== undefined} overlayStyle={{maxWidth: '350px'}} skipWrapper - isHoverable > {isUser ? t('You') : (commit.author?.name ?? t('Unknown author'))} diff --git a/static/app/views/explore/releases/detail/overview/sidebar/projectReleaseDetails.tsx b/static/app/views/explore/releases/detail/overview/sidebar/projectReleaseDetails.tsx index 7246ce6e7e1c..33cc48266d4c 100644 --- a/static/app/views/explore/releases/detail/overview/sidebar/projectReleaseDetails.tsx +++ b/static/app/views/explore/releases/detail/overview/sidebar/projectReleaseDetails.tsx @@ -56,7 +56,6 @@ export function ProjectReleaseDetails({release, releaseMeta, project}: Props) { {t('Finalized')} {adoptionStageLabel && !multipleEnvironments ? (
    - + {adoptionStageLabel.name} diff --git a/static/app/views/explore/releases/list/releaseCard/index.tsx b/static/app/views/explore/releases/list/releaseCard/index.tsx index 356bf77fe9b4..ee0caef40e5c 100644 --- a/static/app/views/explore/releases/list/releaseCard/index.tsx +++ b/static/app/views/explore/releases/list/releaseCard/index.tsx @@ -170,7 +170,6 @@ export function ReleaseCard({ {release.dateReleased ? ( ) : ( {adoptionStageLabel ? ( - + @@ -97,7 +96,7 @@ export function NetworkTableCell({ ), () => ( - + {operationName(frame.op)} diff --git a/static/app/views/explore/tables/tracesTable/fieldRenderers.tsx b/static/app/views/explore/tables/tracesTable/fieldRenderers.tsx index 657d9170519a..4d7fa4346cac 100644 --- a/static/app/views/explore/tables/tracesTable/fieldRenderers.tsx +++ b/static/app/views/explore/tables/tracesTable/fieldRenderers.tsx @@ -555,7 +555,6 @@ export function TraceIdRenderer({ return ( {tct('Trace is older than 30 days. [similarTraces] in the past 24 hours.', { diff --git a/static/app/views/insights/browser/webVitals/components/webVitalsDetailPanel.tsx b/static/app/views/insights/browser/webVitals/components/webVitalsDetailPanel.tsx index 93b1e0f4605d..227663960a08 100644 --- a/static/app/views/insights/browser/webVitals/components/webVitalsDetailPanel.tsx +++ b/static/app/views/insights/browser/webVitals/components/webVitalsDetailPanel.tsx @@ -150,7 +150,6 @@ export function WebVitalsDetailPanel({ if (col.key === 'opportunity') { return ( diff --git a/static/app/views/insights/common/components/tableCells/renderHeadCell.tsx b/static/app/views/insights/common/components/tableCells/renderHeadCell.tsx index 482f54d4f476..51d1256fd117 100644 --- a/static/app/views/insights/common/components/tableCells/renderHeadCell.tsx +++ b/static/app/views/insights/common/components/tableCells/renderHeadCell.tsx @@ -133,7 +133,7 @@ export const getColumnSort = ({ export const renderHeadCell = ({column}: Pick) => column.tooltip ? ( - + {column.name} ) : ( diff --git a/static/app/views/insights/common/components/tableCells/responseStatusCodeCell.tsx b/static/app/views/insights/common/components/tableCells/responseStatusCodeCell.tsx index c7caabe5a389..d513e19288dc 100644 --- a/static/app/views/insights/common/components/tableCells/responseStatusCodeCell.tsx +++ b/static/app/views/insights/common/components/tableCells/responseStatusCodeCell.tsx @@ -14,7 +14,6 @@ export function ResponseStatusCodeCell({code}: Props) { return ( - + {subtitle} diff --git a/static/app/views/issueDetails/header/header.tsx b/static/app/views/issueDetails/header/header.tsx index d700ea5b4329..49d4c9c376ed 100644 --- a/static/app/views/issueDetails/header/header.tsx +++ b/static/app/views/issueDetails/header/header.tsx @@ -114,13 +114,7 @@ export function GroupHeader({event, group, project}: GroupHeaderProps) { - <Tooltip - title={primaryTitle} - skipWrapper - isHoverable - showOnlyOnOverflow - delay={1000} - > + <Tooltip title={primaryTitle} skipWrapper showOnlyOnOverflow delay={1000}> <PrimaryTitle>{primaryTitle}</PrimaryTitle> </Tooltip> {isAIDetectedIssue && <FeatureBadge type="new" />} diff --git a/static/app/views/issueDetails/header/issueIdBreadcrumb.tsx b/static/app/views/issueDetails/header/issueIdBreadcrumb.tsx index 78fabae95f19..ecd7e60e0990 100644 --- a/static/app/views/issueDetails/header/issueIdBreadcrumb.tsx +++ b/static/app/views/issueDetails/header/issueIdBreadcrumb.tsx @@ -79,7 +79,6 @@ export function useIssueIdBreadcrumbItem({project, group}: ShortIdBreadcrumbProp aria-label={t('View issue share settings')} icon={<IconGlobe size="xs" variant="muted" />} tooltipProps={{ - isHoverable: true, title: tct('This issue has been shared [link:with a public link].', { link: <ExternalLink href={shareUrl} />, }), @@ -180,7 +179,6 @@ export function IssueIdBreadcrumb({project, group}: ShortIdBreadcrumbProps) { aria-label={t('View issue share settings')} icon={<IconGlobe size="xs" variant="muted" />} tooltipProps={{ - isHoverable: true, title: tct('This issue has been shared [link:with a public link].', { link: <ExternalLink href={shareUrl} />, }), diff --git a/static/app/views/issueList/pages/inbox/issuePreview/issuePreview.tsx b/static/app/views/issueList/pages/inbox/issuePreview/issuePreview.tsx index 303d440a8372..a557ca6d5e44 100644 --- a/static/app/views/issueList/pages/inbox/issuePreview/issuePreview.tsx +++ b/static/app/views/issueList/pages/inbox/issuePreview/issuePreview.tsx @@ -186,13 +186,7 @@ function IssuePreviewContent() { <Container> <Flex align="center" justify="between" gap="md"> <Flex align="center" gap="md" minWidth={0}> - <Tooltip - title={primaryTitle} - skipWrapper - isHoverable - showOnlyOnOverflow - delay={1000} - > + <Tooltip title={primaryTitle} skipWrapper showOnlyOnOverflow delay={1000}> <TitleLink to={issueDetailsLocation} analyticsEventKey="issue_inbox.open_issue_clicked" diff --git a/static/app/views/navigation/secondary/sections/insights/insightsSecondaryNavigation.tsx b/static/app/views/navigation/secondary/sections/insights/insightsSecondaryNavigation.tsx index e1d9f198ac0e..28557ff6e615 100644 --- a/static/app/views/navigation/secondary/sections/insights/insightsSecondaryNavigation.tsx +++ b/static/app/views/navigation/secondary/sections/insights/insightsSecondaryNavigation.tsx @@ -123,7 +123,6 @@ function InsightsSecondaryNavigationImpl() { analyticsItemName="insights_crons" trailingItems={ <Tooltip - isHoverable title={ <Fragment> <Text as="p">{t('Crons now live under Monitors.')}</Text> @@ -153,7 +152,6 @@ function InsightsSecondaryNavigationImpl() { analyticsItemName="insights_uptime" trailingItems={ <Tooltip - isHoverable title={ <Fragment> <Text as="p">{t('Uptime now lives under Monitors.')}</Text> diff --git a/static/app/views/organizationStats/usageStatsOrg.tsx b/static/app/views/organizationStats/usageStatsOrg.tsx index 4b89733965dd..816d41576e6d 100644 --- a/static/app/views/organizationStats/usageStatsOrg.tsx +++ b/static/app/views/organizationStats/usageStatsOrg.tsx @@ -280,7 +280,6 @@ function ScoreCards({ score={loading ? undefined : card.score} help={card.help} trend={card.trend} - isTooltipHoverable /> )); } diff --git a/static/app/views/performance/landing/widgets/widgets/performanceScoreListWidget.tsx b/static/app/views/performance/landing/widgets/widgets/performanceScoreListWidget.tsx index 5899c106d556..0ef353a71f96 100644 --- a/static/app/views/performance/landing/widgets/widgets/performanceScoreListWidget.tsx +++ b/static/app/views/performance/landing/widgets/widgets/performanceScoreListWidget.tsx @@ -121,7 +121,6 @@ export function PerformanceScoreListWidget(props: PerformanceWidgetProps) { </ExternalLink> </span> } - isHoverable > <PerformanceBadge score={listItem.totalScore} /> </Tooltip> @@ -141,7 +140,6 @@ export function PerformanceScoreListWidget(props: PerformanceWidgetProps) { </ExternalLink> </span> } - isHoverable showUnderline skipWrapper > diff --git a/static/app/views/performance/newTraceDetails/traceDrawer/details/styles.tsx b/static/app/views/performance/newTraceDetails/traceDrawer/details/styles.tsx index d3e45f04bd55..263f9449ac8f 100644 --- a/static/app/views/performance/newTraceDetails/traceDrawer/details/styles.tsx +++ b/static/app/views/performance/newTraceDetails/traceDrawer/details/styles.tsx @@ -199,7 +199,6 @@ function TitleOp({text}: {text: string}) { </Fragment> } showOnlyOnOverflow - isHoverable > <TitleOpText>{text}</TitleOpText> </Tooltip> diff --git a/static/app/views/performance/newTraceDetails/traceLinksNavigation/traceLinkNavigationButton.tsx b/static/app/views/performance/newTraceDetails/traceLinksNavigation/traceLinkNavigationButton.tsx index 98b93cf98cb2..496189f624be 100644 --- a/static/app/views/performance/newTraceDetails/traceLinksNavigation/traceLinkNavigationButton.tsx +++ b/static/app/views/performance/newTraceDetails/traceLinksNavigation/traceLinkNavigationButton.tsx @@ -29,7 +29,6 @@ export function TraceLinkNavigationButton({ tooltipProps={{ position: 'top', delay: 400, - isHoverable: true, title: tooltip, }} onClick={onClick} diff --git a/static/app/views/performance/table.tsx b/static/app/views/performance/table.tsx index 1db7f205a501..6afddb2f67dc 100644 --- a/static/app/views/performance/table.tsx +++ b/static/app/views/performance/table.tsx @@ -473,7 +473,7 @@ export function Table({ ): React.ReactNode { const label = title.title || column.name; const content = title.tooltip ? ( - <Tooltip isHoverable title={title.tooltip} showUnderline> + <Tooltip title={title.tooltip} showUnderline> {label} </Tooltip> ) : ( diff --git a/static/app/views/preprod/buildComparison/main/insights/fileInsightDiffTable.tsx b/static/app/views/preprod/buildComparison/main/insights/fileInsightDiffTable.tsx index 041bf92efebc..6deb49d03b22 100644 --- a/static/app/views/preprod/buildComparison/main/insights/fileInsightDiffTable.tsx +++ b/static/app/views/preprod/buildComparison/main/insights/fileInsightDiffTable.tsx @@ -154,7 +154,6 @@ export function FileInsightItemDiffTable({fileDiffItems}: FileInsightItemDiffTab ) : null } disabled={!fileDiffItem.path} - isHoverable maxWidth={420} > <TextOverflow diff --git a/static/app/views/preprod/buildComparison/main/insights/groupInsightDiffTable.tsx b/static/app/views/preprod/buildComparison/main/insights/groupInsightDiffTable.tsx index e4b8ee8be3e6..b66064473500 100644 --- a/static/app/views/preprod/buildComparison/main/insights/groupInsightDiffTable.tsx +++ b/static/app/views/preprod/buildComparison/main/insights/groupInsightDiffTable.tsx @@ -201,7 +201,6 @@ export function GroupInsightItemDiffTable({ ) : null } disabled={!groupDiffItem.path} - isHoverable maxWidth={420} > <TextOverflow diff --git a/static/app/views/preprod/buildComparison/main/sizeCompareItemDiffTable.tsx b/static/app/views/preprod/buildComparison/main/sizeCompareItemDiffTable.tsx index e9cd4846727f..1a4bfd981bee 100644 --- a/static/app/views/preprod/buildComparison/main/sizeCompareItemDiffTable.tsx +++ b/static/app/views/preprod/buildComparison/main/sizeCompareItemDiffTable.tsx @@ -189,7 +189,6 @@ export function SizeCompareItemDiffTable({ ) : null } disabled={!diffItem.path} - isHoverable maxWidth={420} > <TextOverflow diff --git a/static/app/views/preprod/buildDetails/main/insights/appSizeInsightsSidebarRow.tsx b/static/app/views/preprod/buildDetails/main/insights/appSizeInsightsSidebarRow.tsx index 17555401481f..5975a6701b5a 100644 --- a/static/app/views/preprod/buildDetails/main/insights/appSizeInsightsSidebarRow.tsx +++ b/static/app/views/preprod/buildDetails/main/insights/appSizeInsightsSidebarRow.tsx @@ -386,7 +386,7 @@ function OptimizableImageFileRow({ {file.path} </Text> {hasMetadata && ( - <Tooltip title={tooltipContent} isHoverable skipWrapper> + <Tooltip title={tooltipContent} skipWrapper> <Flex align="center" flexShrink={0}> <IconFlag size="xs" variant="muted" /> </Flex> diff --git a/static/app/views/preprod/buildDetails/main/insights/insightTimedOutWarning.tsx b/static/app/views/preprod/buildDetails/main/insights/insightTimedOutWarning.tsx index ae86060572aa..8a0f0552066e 100644 --- a/static/app/views/preprod/buildDetails/main/insights/insightTimedOutWarning.tsx +++ b/static/app/views/preprod/buildDetails/main/insights/insightTimedOutWarning.tsx @@ -21,7 +21,6 @@ export function InsightTimedOutWarning({insight}: {insight: ProcessedInsight}) { return ( <Tooltip - isHoverable title={ <span> {t( diff --git a/static/app/views/preprod/snapshots/main/snapshotCards.tsx b/static/app/views/preprod/snapshots/main/snapshotCards.tsx index 66c9a146313f..7070ff06c666 100644 --- a/static/app/views/preprod/snapshots/main/snapshotCards.tsx +++ b/static/app/views/preprod/snapshots/main/snapshotCards.tsx @@ -414,7 +414,7 @@ function MetadataInfoButton({ onDoubleClick={e => e.stopPropagation()} onClick={e => e.stopPropagation()} > - <Tooltip title={<MetadataTooltip json={json} />} maxWidth={480} isHoverable> + <Tooltip title={<MetadataTooltip json={json} />} maxWidth={480}> <InfoIconButton type="button" aria-label={t('Copy metadata as JSON')} diff --git a/static/app/views/seerWorkflows/overview/projectSetupWarning.tsx b/static/app/views/seerWorkflows/overview/projectSetupWarning.tsx index f2b177084cb1..4e97d9d8f1b1 100644 --- a/static/app/views/seerWorkflows/overview/projectSetupWarning.tsx +++ b/static/app/views/seerWorkflows/overview/projectSetupWarning.tsx @@ -24,7 +24,6 @@ export function ProjectSetupWarning({unconfiguredProjects, orgSlug}: Props) { return ( <Flex align="center" flex="0 0 auto"> <Tooltip - isHoverable title={tct( "Seer automation isn't set up for [count] in the current filter. [link]", { diff --git a/static/app/views/settings/organizationIntegrations/integrationItem.tsx b/static/app/views/settings/organizationIntegrations/integrationItem.tsx index 77b36ddeba5d..f1839098e3ac 100644 --- a/static/app/views/settings/organizationIntegrations/integrationItem.tsx +++ b/static/app/views/settings/organizationIntegrations/integrationItem.tsx @@ -28,7 +28,6 @@ export function IntegrationItem({integration, requiresUpgrade}: Props) { </Text> {requiresUpgrade && ( <Tooltip - isHoverable containerDisplayMode="flex" title={tct( "There's a new update for your [displayName] integration, please update your [noun]", diff --git a/static/app/views/settings/organizationIntegrations/integrationRow.tsx b/static/app/views/settings/organizationIntegrations/integrationRow.tsx index 7f00061da07e..121a25d56ce9 100644 --- a/static/app/views/settings/organizationIntegrations/integrationRow.tsx +++ b/static/app/views/settings/organizationIntegrations/integrationRow.tsx @@ -157,11 +157,7 @@ export function IntegrationRow(props: Props) { <Flex gap="xs" align="center"> <IntegrationName to={baseUrl}>{displayName}</IntegrationName> {outdatedConfigurations > 0 && ( - <Tooltip - isHoverable - containerDisplayMode="flex" - title={getUpgradeTooltipTitle()} - > + <Tooltip containerDisplayMode="flex" title={getUpgradeTooltipTitle()}> <IconWarning variant="warning" aria-label={t('Integration alert')} /> </Tooltip> )} diff --git a/static/app/views/settings/organizationIntegrations/sentryAppDetailedView.tsx b/static/app/views/settings/organizationIntegrations/sentryAppDetailedView.tsx index a4d849a0760c..3ee27ec44b67 100644 --- a/static/app/views/settings/organizationIntegrations/sentryAppDetailedView.tsx +++ b/static/app/views/settings/organizationIntegrations/sentryAppDetailedView.tsx @@ -349,7 +349,6 @@ export default function SentryAppDetailedView() { disabled tooltipProps={{ title: t('Deletion is in progress. This may take a few minutes.'), - isHoverable: true, position: 'top', }} data-test-id="pending-deletion-button" diff --git a/static/app/views/settings/organizationRepositories/components/scmRepositoryTable.tsx b/static/app/views/settings/organizationRepositories/components/scmRepositoryTable.tsx index e0688dbb205d..51d1cebeed47 100644 --- a/static/app/views/settings/organizationRepositories/components/scmRepositoryTable.tsx +++ b/static/app/views/settings/organizationRepositories/components/scmRepositoryTable.tsx @@ -335,11 +335,7 @@ function InstallationRepoCountTag({installation}: {installation: ScmInstallation const isLoading = reposLoading || isSyncing; return ( - <Tooltip - isHoverable={!isLoading} - title={getRepoCountTooltip(installation, lastSync)} - skipWrapper - > + <Tooltip title={getRepoCountTooltip(installation, lastSync)} skipWrapper> <Tag variant="muted" icon={isLoading ? <StatusIndicator variant="accent" /> : <IconInfo />} diff --git a/static/app/views/settings/projectDebugFiles/debugFileRow.tsx b/static/app/views/settings/projectDebugFiles/debugFileRow.tsx index 36e38041bae7..ea83e634cfc0 100644 --- a/static/app/views/settings/projectDebugFiles/debugFileRow.tsx +++ b/static/app/views/settings/projectDebugFiles/debugFileRow.tsx @@ -122,7 +122,6 @@ export function DebugFileRow({ settingsLink: <Link to={`/settings/${orgSlug}/#debugFilesRole`} />, } )} - isHoverable > <LinkButton size="xs" diff --git a/static/app/views/settings/projectProguard/projectProguardRow.tsx b/static/app/views/settings/projectProguard/projectProguardRow.tsx index bfb02683dbca..f79121dc670b 100644 --- a/static/app/views/settings/projectProguard/projectProguardRow.tsx +++ b/static/app/views/settings/projectProguard/projectProguardRow.tsx @@ -54,7 +54,6 @@ export function ProjectProguardRow({mapping, onDelete, downloadUrl, orgSlug}: Pr } )} disabled={hasRole} - isHoverable > <LinkButton size="sm" diff --git a/static/app/views/settings/projectSourceMaps/sourceMapsDetails.tsx b/static/app/views/settings/projectSourceMaps/sourceMapsDetails.tsx index d2a502be96b7..64c5e88a7bff 100644 --- a/static/app/views/settings/projectSourceMaps/sourceMapsDetails.tsx +++ b/static/app/views/settings/projectSourceMaps/sourceMapsDetails.tsx @@ -89,7 +89,6 @@ function ArtifactsTableRow({ } )} disabled={hasRole} - isHoverable > <LinkButton size="sm" diff --git a/static/app/views/sharedGroupDetails/sharedGroupHeader.tsx b/static/app/views/sharedGroupDetails/sharedGroupHeader.tsx index 277352befb13..95ea51f4bcc1 100644 --- a/static/app/views/sharedGroupDetails/sharedGroupHeader.tsx +++ b/static/app/views/sharedGroupDetails/sharedGroupHeader.tsx @@ -37,7 +37,6 @@ export function SharedGroupHeader({group}: Props) { {t('Last seen ')} <EventTimeLabel> <Tooltip - isHoverable showUnderline title={<EventCreatedTooltip event={event} />} overlayStyle={{maxWidth: 300}} diff --git a/static/gsAdmin/views/dynamicSamplingPanel.tsx b/static/gsAdmin/views/dynamicSamplingPanel.tsx index bb0fbd00b0f2..55c812dda0f8 100644 --- a/static/gsAdmin/views/dynamicSamplingPanel.tsx +++ b/static/gsAdmin/views/dynamicSamplingPanel.tsx @@ -412,11 +412,8 @@ function DynamicSamplingRulesTable({ </SimpleTable.RowCell> <SimpleTable.RowCell>{row.formattedRateType}</SimpleTable.RowCell> <SimpleTable.RowCell justify="end" paddingRight="3xl" gap="md"> - <Tooltip isHoverable title={row.samplingValue.value}> - {row.formattedRateValue} - </Tooltip> + <Tooltip title={row.samplingValue.value}>{row.formattedRateValue}</Tooltip> <Tooltip - isHoverable title={`This rule ${ row.impact > 0 ? 'increases' : 'decreases' } sample rate of matching events`} diff --git a/static/gsApp/components/metricAlertQuotaMessage.tsx b/static/gsApp/components/metricAlertQuotaMessage.tsx index 06abb9e820cf..344101fa29cb 100644 --- a/static/gsApp/components/metricAlertQuotaMessage.tsx +++ b/static/gsApp/components/metricAlertQuotaMessage.tsx @@ -35,7 +35,6 @@ export function MetricAlertQuotaIcon() { if (metricAlertQuota?.hasReachedLimit) { return ( <Tooltip - isHoverable title={tct( "You have reached your plan's limit on metric monitors. [removeLink:Remove existing monitors] or [upgradeLink:upgrade your plan].", { diff --git a/static/gsApp/components/superuser/superuserWarning.tsx b/static/gsApp/components/superuser/superuserWarning.tsx index 9d22946b3ae8..76f5f13d044d 100644 --- a/static/gsApp/components/superuser/superuserWarning.tsx +++ b/static/gsApp/components/superuser/superuserWarning.tsx @@ -124,7 +124,6 @@ export function SuperuserWarning({organization}: Props) { display="flex" > <Tooltip - isHoverable position="bottom-start" containerDisplayMode="block" title={